[Clean Code] 클린코드 5장 : 형식 맞추기 클린코드 5장(로버트C. 마틴)을 읽고... 형식을 맞추는 목적 코드 형식은 의사소통의 일환이다. 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 적절한 행 길이를 유지하라. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. 커다란 시스템도 200줄 정도면 구축 가능하다. 신문 기사처럼 작성하라. - 이름은 간단하면서도 설명이 가능하게 짓는다. (이름만 보고 모듈을 파악할 수 있도록..) - 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. - 아래로 내려갈수록 의도를 세세하게 묘사한다. - 마지막에는 가장 저차원의 함수와 세부내역이 나온다. 개념은 빈 행으로 분리..
[Clean Code] 클린코드 4장 : 주석 클린코드 4장(로버트C. 마틴)을 읽고... 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 이유는 코드의 품질이 나쁘기 때문이다. 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가 복잡하고 주석이 많이 달린 코드보다 좋다. (그러니 주석으로 설명하려 하지말고 코드를 정리하는데 시간을 보내자...) 코드로 의도를 표현하라 아래 두 코드 예제를 살펴보자 (주석 없이) 확실히 코드만으로 대다수의 의도를 표현할 수 있다. 주석으로 설명하려는 대신 함수로 만들어 표현해도 충분하다. //직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((employee.flags & HOURLY_FLAG) && (employee.age > 65)) if (employee.isEligibleForFullBen..
[Clean Code] 클린코드 3장 : 함수 클린코드 3장(로버트C. 마틴)을 읽고... 작게 만들어라 함수는 작으면 작을 수록 좋다. public static Stirng renderPageWithSetupsAndTeardowns ( PageData pageData, boolean isSuite) throws Exception { if (isTextPage(pageData)) includeSetupAndTeardownPages(pageData, isSuite); return pageData.getHtml(); } 블록과 들여쓰기 if문, else문, while문 등에 들어가는 블록은 한 줄이어야 한다. (대개 거기서 함수를 호출) 한가지만 해라 함수는 한 가지를 해야한다. 그 한 가지를 잘해야 한다. 그 한 가지만을 해야 한다. 지정된 함수 이름..
[Clean Code] 클린코드 2장 : 의미 있는 이름 클린코드 2장(로버트C. 마틴)을 읽고... 의도를 분명히 밝혀라 변수의 존재이유, 수행기능, 사용 방법에 따로 주석이 필요하다면 의도가 분명히 드러나지 못했음을 나타낸다. 알파벳 d는 아무 의미도 드러나지 않기 때문에, 측정하려는 값과 단위를 표현하는 이름이 필요하다. int d; //경과 시간 int elapsedTimeInDays; int daySinceCreation; int daySinceModification; int fileAgeInDays; 아래와 같은 코드는 변수 3개, 상수 2개임에도 코드가 하는 일을 짐작하기 어렵다. public List getThem(){ List list1 = new ArrayList(); for (int [] x : theList) if (x[0] == 4) l..
[Clean Code] 클린코드 1장 : 깨끗한 코드 클린코드(로버트C. 마틴) 1장을 읽고... 코드가 존재하리라 코드는 요구사항을 상세히 표현하는 수단이다. 어느 수준에 이르면 코드의 도움 없이 요구사항을 상세히 표현하는 것은 불가능하다. 고도로 추상화된 언어나 특정 응용 분야 언어로 기술하는 명세 역시 코드이므로 코드는 사라지지 않을 것이다. 나쁜 코드 · 우리는 모두 자신이 짠 쓰레기 코드를 나중에 손보겠다고 생각한 경험이 있다. · 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼고, 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로 위로를 한 경험이 있다. → 르블랑의 법칙: 나중은 결코 오지않는다. 나쁜 코드로 치르는 대가 나쁜 코드가 쌓일 수록 팀 생산성은 떨어진다. 생산성을 증가시키기 위해 프로젝트에 인력을 추가로 투입한다. 하지만..