본문 바로가기
Programing/How to Coding?

[How to Coding?] Design 작업에 대해 [업데이트 예정]

by 꾸압 2022. 8. 27.

 

<선 결론>

  - 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>

 

댓글