책을 읽기에 너무 멀리온것은 아닐까?
개발자라고 이름을 달고 다니는 사람이 이책을 읽기에 그 많은 시간을 방치했다는게
가장 미안한 생각이였다.
좀더 일찍 알았더라면 짜장면과 스파게티가 어울어져 레거시의 진수를 느낀 코드들에게
앙드래김 선생님의 백색옷을 입혀주었을 텐데 많이 미안하다.

책이 나에게 다가온것은 12월 어느날!!
갑자기 프로젝트들이 붕붕 뜬것이다.
왜 일까? 왜 떳나?
서버발주가 늦어지고 예정된 시간이 안맞아 살짝 일정들이 공중부양을 하기 시작한 것이다.
이것은 팀원들이 준 기회라 생각하고 평소 읽고 싶었던 책 목록에서 하나 꺼내어 읽기 시작했다.
바로 CleanCode.. 영어실력이 농약 먹은지라 역서를 보게 되었다.

구구 .. 절절..
감탄과 내가 지난날 요리사였는지 아키텍쳐였는지 구분이 안가는 대목들 뿐이였다.
개인의 설명은 좀 줄여보고 책에서 이야기 하고 있는 내용에 대해서 요약된 요약본을 쓰는게 좋을것 같다.,
===========================================================
1. javaDocs 에서의  @author 의 의미하는 바는 저자이다. 우리는 이야기를 하듯 코드를 짜야 한다.
2. 의미있는 이름을 사용하자. i, j, k는 올바른 이름이 아니다.
3. 발음하기 쉬운 이름을 사용하라 genymdhms -> generationTimestamp
4. 기발한 이름은 피하자.
5. 함수는 최대한 작게 만들어라 하나의 함수에는 하나의 함수가 좋습니다.
6. if/else는 하나의 블록을 넘지 않도록 합니다.
7. 함수의 인수는 없는게 가장 좋고 1개면 충분하며 2개면 어쩔 수 없고 3개면 튜닝해보자
8. if/else가 복잡해 진다 싶으며 예외처리로 퉁쳐보자
9. 나쁜코드에 주석을 달지 마라 새로짜라 주석 자체가 나쁘다 .
 > 글쎄. 나는 주석 좋던데..
10. 가로행은 45자 정도가 좋다
11. 디미터 법칙
 > 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙
  - (객체형 : 디미터 X )final String outputDir = ctxt.getOptions().getScratchDir().getAbsoiutePath();
  - (자료형 : 디미터 ○)final String outputDir = ctxt.Options.ScratchDir.absoiutePath;
12. null을 반환 하지 마라 (168p)
 > 한줄 건너 하나씩 null을 확인하는코드로 가득한 응용프로그램을 수도 없이 봐왔다
 > 확인해야 할것이 너무 많기 때문이다. 이때문에 예외처리로
13. 클린코드의 주 목적은 (가독성 입니다. ) 187p
14. StringBuffer 는 보기  흉하다 실제 코드에서 크게 무리가 아니라면 피한다 (193) 클린코드 저자
 > 특히나 테스트의 경우에는 정말 더 그렇다.
15. 단일책임 원칙 (203)
 > 클래스나 모듈을 변경할 이유가 하나 단 하나뿐이여만 한다.
16.  응집도 (Cohesion)
 > 모든 인스턴스 변수를 메소드마다 하나씩 사용하는 클래스는 응집도가 가장 높다 .
  응집도가 높은 클래스는 가능히자도 바람직하지도 않다 .
17. 모든테스트를 실행한다, 중복을 없앤다. 프로그래머의 의도를 표현한다, 클래스와 매소드 수를 최소로 줄인다 .(240)
18. 동기화 하는 부분은 작게 만든다. 그리고 안전하게 처리한다 (Synchronized) 를 설정해서 락을 건다 (256)
 > 하지만 쓰래드의 경우 남발하면 문제가 커진다.
19. 보이스카웃의 룰을 지킬 필요가 있다 (캠프장은 왔을때 보다 깨끗하게 해놓고 간다) (359)
20. 주석에 대한 추가적인 이야기  (386)
 > 부적절한 정보, 쓸모없는 정보, 중복된 주석, 성의없는주석, 주석처리된 코드,
21. 함수에 대한 추가적인 이야기 (388)
 > 너무많은 인수, 출력인수, 플래그인수(피함), 죽은함수
22. 매직숫자는 명명된 상수로 교체하라
23. 부정 조건을 피한다.
===========================================================

고수의 향수를 느낄 수 있었던 대목도 있었다.
아틀란타행 비행기 안에서 이뤄진 2명의 개발자. 한명은 java를 배우고 싶었고 다른 한명은 스몰토크를 배우고 싶었다.
그둘이 비행기에서 내릴때는 jUnit의 기본이 만들어졌고 그것은 TDD의 중심에 서게 되었다.
캔트백은 TDD의 아버지 , 애릭감마는 이클립스 의 창시자 

 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!