본문 바로가기
  • Where there is a will there is a way.

개발/clean code3

테스트 주도 개발 테스트 주도 개발 켄트백 아저씨 1. 작은 테스트를 하나 추가한다. 2. 모든 테스트를 실행해서 테스트가 실패하는 것을 확인한다. 3. 조금 수정한다. 4. 모든 테스트를 실행해서 테스트가 성공하는 것을 확인한다. 5. 중복을 제거하기 위해 리팩토링을 한다. 테스트 주도 개발이기 때문에 무턱대고 우선 시나리오 대로 코드를 작성한다. @RunWith(SpringJUnit4ClassRunner.class) public class DollarTests { @Test public void testMultiplication(){ Dollar five = new Dollar(5); five.times(2); assertEquals(10, five.amount); } } 여기서 1. 객체가 없을 것이고 2. 생성자가.. 2019. 8. 9.
나쁜 코드로 치르는 대가 나쁜 코드로 치르는 대가 현재 회사에서 php 레거시를 java spring 으로 바꾸는 프로젝트를 진행 중이다. 기존의 php는 하드코딩도 많이 되어있고 ORM 형식으로 되어있지 않지만 spring project 로 바꾸고 jpa 를 도입하기로 했다. 기존의 2 -3 년정도 예전에 작성 된 코드를 보면서 느끼는 생각이 clean code에 나와있는 원대한 재설계의 꿈을 꾸게 만든다. 결국엔 php가 모두 spring으로 바뀌어야 되지만 내가 입사한지 현재 시점으로 얼마 되지 않아서 정확한 요구사항을 파악하고 반영하는데 시간이 오래 걸린다 이런 이유 때문에라도 clean code 는 중요하다. 처음부터.. 태도 설계를 뒤집거나 일정이 촉박하다는 핑계로 코드를 제대로 짜지 않는다. 하지만 결국에 관리자는 .. 2019. 2. 13.
테스트 주도 개발 테스트 주도 개발1. Ask 테스트 작성을 통해 시스템에 질문한다. ( 테스트 수행결과는 실패 ) 2. Respond 테스트를 통과하는 코드를 작성해서 질문에 대답한다. ( 테스트 성공 ) 3. Refine 아이디어를 통합하고, 불필요한 것은 제거하고, 모호한 것은 명확히 해서 대답을 정제한다. ( 리펙토링 ) 4. Refeat 다음 질문을 통해 대화를 계속 진행한다. 일반적인 소프트웨어의 개발이 기능을 구현하고 테스트를 수행하는 형태라고 한다면, TDD에서는 그와 반대로 진행 딘다. case1 구현 대상 클래스의 외형에 해당하는 메소드들을 먼저 만들고 테스트 케이스를 일괄적으로 만드는 방식 case2 테스트 케이스를 하나씩 추가해나가면서 구현 클래스를 점진적으로 만드는 방식 2019. 2. 11.