<선 결론>
- Programmer 는 손보다 뇌가 빨라야 한다.
- Design 은 coding 의 필수 요소.
<설명>
- TDD 를 하고 있다면 'Test Code 작성' 단계에서 뇌를 최대로 사용하고, 'Production Code' 단계에선 뇌 사용을 최소로 하여 Test Code에 쓰인대로만 Typing 해야함.
<예시>
다음은 블로거 이규원님의 코드 리뷰 과정 글에서 발췌한 내용이다.
- 메서드 등의 이름은 가능하면 특정 기술에 종속적인 word 보다, process를 잘 설명 가능 할 수 있는 통상적인 word 를 사용하는데 합의. 구현체가 업데이트 되거나 새 기술로 교체되도, Client code가 영향을 받지 않도록 interface를 설계하는게 목적.
- User 입장에서 필수적이지 않은 process 는 중간에 실패해도 User 경험은 유지하도록 함. Service가 제고하는 기능의 일부가 장애를 일으켜도, 치명적이지 않다면 전체 Service는 계속 되어야 함. (향후 재시도 논리 추가로 보완 가능)
- 중복 code 가 발견됐을 때 code에 큰 영향을 주는게 아니라면 삭제.
- 새로운 code 가 interface 분리 원칙을 준수하도록 하고, 이를 위해 단일 멤버를 가지는 interface를 정의하는 것과 콜백 함수를 사용하는 것 중 어느게 나은지 논의하여 결정.
- Design 은 명확하고 단순하며, 높은 가독성과 testablility를 갖고, 과한 engineering이 되지 않아야 함.
==> 결론 : 2-3 줄의 간단한 interface code와 새 design을 사용하는 code 십여 줄이 production project에 추가되었으며, 이 production code design에 대한 명세와 검증은 test code가 담당.
==> 서로 다른 의존 요소의 API들과 본 production code 가 합치되기 가장 어울리는 Design이 무엇인가? 의 고민.
<출처 1> https://justhackem.wordpress.com/2015/05/05/about-coding/
<출처 2>
'Programing > How to Coding?' 카테고리의 다른 글
[How to Coding?] 좋은 코드를 위한 규칙 (0) | 2022.09.11 |
---|---|
[How to Coding?] 수준과 가성비에 대해 (0) | 2022.01.26 |
댓글