본문 바로가기

클린코드4

[클린코드] 4장 - 주석 나쁜코드에 주석을 달지마라. 새로짜라 - 브라이언 W, 커니핸, P.J. 플라우거 주석은 '순수하게 선하지' 못하다. 사실상 주석은 기껏해야 필요악이다. 주석은 언제나 실패를 의미한다. 때때로 주석없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다. 주석은 오래 될 수록 코드에서 멀어진다. 오래될수록 완전히 그릇될 가능성도 커진다. 불항하게도 주석이 언제나 코드를 따라가지 않는다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 진실은 한곳에만 존재한다. 바로 코드다. 코드만 자기가 하는일을 진실되게 말한다. 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다. 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 표현력이 풍부하고 깔끔.. 2022. 9. 19.
[클린코드] 3장 - 함수 어떤 프로그램이든 가장 기본적인 단위가 함수이다. 작게 만들어라! 함수를 만드는 첫째 규칙은 '작게'다. 함수를 만드는 둘째 규칙은 '더 작게'다. 한 가지만 해라! 함수는 한 가지를 해야한다. 그 한가지를 잘해야한다. 그 한가지만 해야한다. 의미 있는 이름으로 다른 함수를 추출 할 수 있다면 그 함수는 여러 작업을 하는 셈이다. 함수 당 추상화 수준은 하나로 함수가 확실히 '한 가지'작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다 내려가기 규칙 코드는 위에서 아래로 이야기처럼 읽혀야 좋다. 한 함수에는 추상화 수준이 한단계 낮은 함수가 온다. 즉, 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한번에 한 단계식 낮아진다. 서술적인 이름을 사용하라! 함수가 작고 단순할수록 서술적인 .. 2022. 8. 16.
[클린코드] 2장 - 의미 있는 이름 2장 - 의미 있는 이름 의도를 분명히 밝혀라 의도가 분명하게 이름을 지으라. 변수(함수나 클래스)존재 이유는?, 수행기능은? 사용방법은? 따로 주석이 필요하다면 분명히 드러내지 못했다는 말이다. 그릇된 정보를 피하라 hp, aix, sco는 변수 이름으로 적합하지 않다. 유닉스 플랫폼이나 유닉스 변종을 가리키는 이름이기 때문이다. 독자에게 그릇된 정보를 제공하면 안된다. 일관성이 떨어지는 표기법은 그릇된 정보다. 의미 있게 구분하라 컴파일러나 인터프린터만 통과하려는 생각으로 코드를 구현하는 프로그래머는 스스로 문제를 이르킨다. 예를 들어 함수의 인자로 a1, a2 보다 source, destination을 사용한다면 코드가 읽기 편해진다. NameString보다는 Name으로 사용하여 불용어 중복을 피.. 2022. 8. 7.
[클린코드] 1장 - 깨끗한 코드 1장 - 깨끗한 코드 코드가 존재하리라 코드가 언젠가 사라지리라 생각하는 사람은 언젠가 비정형적인 수학이 나오리라 기대하는 수학자와 비슷하다. 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. 나쁜코드 우리 모두는 자신이 짠 쓰레기 코드를 처다보며 나중에 손보겠다고 생각한 경험이 있다. 나중에 다시 돌아와 정리하겠다고 다짐했었다. 나중은 결코 다시 오지 않는다. 나쁜 코드로 치르는 대가 시간을 들여 깨긋한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길이라는 사실을 인정하라 프로젝트 실패는 우리에게도 커다란 책임이 있다. 특히 나쁜코드가 초래하는 실패에는 더더욱 책임이 크다. 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다. 환자 말을 그대로 따.. 2022. 8. 5.