본문 바로가기

클린코드

(6)
클린코드 4장 주석 우리는 코드로 의도를 표현하지 못해, 그러니깐 실패를 만회하기 위해 주석을 사용한다. 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 프로그래머들이 주석을 엄격하게 관리해야 한다고 그래서 복구성과 관련성과 정확성이 언제나 높아야 한다. 애초에 주석이 필요 없는 방향으로 에너지를 쏟는편이 낫다. 진실은 한곳에만 존재한다. 바로 코드다. 코드만이 자기가 히는일을 진실되게 말한다. 주석을 넣을때는 반드시 필요한경우 코드로만으로 설명이 되지 않는 부분만 넣도록 한다.
클린코드 5장 형식맞추기 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 따라야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 따라야한다. 필요하다면 규칙을 자동으로 적용하는 도구를 활용한다. 코드가 바뀌어도 맨처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수와 확정성에 영향을 끼치기에 중요하다. 대표 프로젝트 junit, fitnesse 등도 500줄을 넘지않고 200줄 정도의 파일로도(한 클래스의 코드수) 커다란 시스템을 구축할 수 있다!!!. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. 신문을 읽을때 독자는 위에서 아래로 읽는다. 최상단에 기사를 몇마디로 요약하는 표제가 나온다. 독자는 표제르 ㄹ보고서 기사를 읽을지 말지 결정한다. 첫문단은 전체 기..
클린코더스 강의 7.TDD 2 - tyrant tyrant를 설치하는 과정이 있어 우선 스킵. 강의는 보았음
클린코드 9장 "단위 테스트" 정리 TDD 법칙 세가지 1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 테스트가 체계적으로 작성되어 있지 않으면 코드 변경이 두려워지고 유연성이 떨어질뿐 아니라 코드 변경은 잠정적인 에러발생을 유발하므로 체계적인 깨끗한 테스트코드 작성은 꼭 필요하다. 이를 위해 Build-Operate-Check 패턴이 테스트 구조에 적합하여 적용된다. 각 테스트는 명확히 세 부분으로 나눠진다. 첫부분은 테스트 자료를 만든다. 두번째 부분은 테스트 자료를 조작하며, 세번째 부분은 조작한 결과가 올바른지 확인한다. 잡다하고 세세한 코드는 모두 없애고 코..
클린 코더스 강의 4. Function2 맨처음에 해야될것은 모든 코드를 클래스화 하는것이다. 1. Extract Method Object를 통해 클래스화한다. 2. Remove static : static/singleton은 global 변수와 같다. 의존성관리가 어렵다. 3. 자주쓰이는 변수들을 필드화 하는데 우선 모든 변수를 필드화한후에 지우는 방식을 택하는 것이 좋다. 4. Extract Method : 함수는 1개의 일만 수행해야하기에 가능한 코드들을 수행한다. 5. 필드로 사용했던 변수들을 함수의 파라미터로 변경한다. -> Extract Method를 사용하면 함수를 호출하는 곳의 모든 레퍼런스를 넘겨서 함수가 다 사용하도록 해주기때문에 두함수간 의존성이 높기 때문에 필요한 변수들만 넘겨준다. 6. 필드변수는 인텔리제이에서 보라색으로..
클린 코더스 강의 3. Function 인텔리제이는 리펙토링을 하는데 많은 기능을 제공한다. 이 기능들만 잘 사용해도 쉽게 리펙토링 할수 있다. Ctrl + Shift + A : 기능탐색 -> "Extract Method Object" : 본래코드는 클래스를 만들어서 콜하게 된다. 모든 코드를 메소드로 추출한것. -> "Field" 검색 : 변수 필드로 빼기. 여러군데에서 사용하고 있는 변수를 필드 변수로 올리기. 이점 : 파라미터가 2개이상인 변수는 Extract Method를 이용해서 함수를 추출할 수 없을뿐더라 파라미터가 많은 함수는 클린코더스가 추구하는 방향과 맞지 않다. 가독성이 떨어지기 때문. -> "Extract Variable" 검색 : Extract Method를 하기 전에 중복된 코드이나 스트링이 다른 경우에 변수로 빼내어 ..