요즘은 로버트 C. 마틴의 클린코드를 읽고 있다. 우선 7장까지 1회독하고 한 번 정리하면서 또 읽어보자.기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다. 이렇게 명시한 결과가 바로 코드다.궁극적으로 코드는 요구사항을 표현하는 언어라
변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다.아래 코드는 무슨 일을 하는지 짐작하기 어렵다.위 코드의 문제는 함축성이다
각 함수가 이야기 하나를 표현하도록fitnesse라는 오픈 소스 테스트 도구의 한 함수를 리팩터링한 코드위 함수를 더 짧게 줄인 코드중첩구조가 생길만큼 함수가 커져서는 안 된다는 뜻이다.들여쓰기 수준또한 2단을 넘어서지 않아야 함수를 읽고 이해하기 쉬워진다.지정된 함수
코드만이 정확한 정보를 제공하는 유일한 출처이다.우리는 코드로 의도를 표현하지 못해, 주석을 사용한다.코드는 변화하고 진화한다. 여기서 저기로 옮겨지기도 하며 조각이 나눠지고 합쳐지기도 한다. 하지만 대부분의 주석은 코드를 따라가지 못한다.따라서 주석은 오래될수록 코드
오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 끼친다. 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 끼친다.독자는 위에
아래의 두 클래스는 모두 2차원 점을 표현한다.그런데 한 클래스는 구현을 외부로 노출하고 다른 클래스는 구현을 완전히 숨긴다.변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다.구현을 감추려면 추상화가 필요하다. 그저 (형식 논리에 치우쳐) 조회(ge
앞선 3장 함수 파트에서 오류 코드 대신 예외를 사용하고 try-catch 블록을 사용해서 원래의 코드와 오류 처리 코드를 분리해야 하는 이유에 대해 설명했다.상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다.좌우된다?여기저기 흩어진 오류 처리 코드 때문에 실제로