기술독서/Clean Code

    [Clean Code] 5장 형식 맞추기

    프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야 한다. 필요하다면 규칙을 자동으로 적용하는 도구를 활용한다. 형식을 맞추는 목적 코드 형식은 의사소통의 일환이다. 의사 소통은 개발자의 일차적인 의무다. 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확정성에 계속 영향성을 미친다. 적절한 행 길이를 유지하라 200줄 정도인 파일로도 큰 프로젝트들을 구축할 수 있다. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. 신문 기사처럼 작성하라 이름은 간단하면서도 설명이 가능하게 짓는다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단..

    [Clean Code] 4장 주석

    "나쁜 코드에 주석을 달지 마라. 새로 짜라." - 브라이언 W. 커니핸, P.J. 플라우거 코드를 깔끔하게 정리하고 표현력을 강화하는 방향으로, 그래서 애초에 주석이 필요 없는 방향으로 에너지를 쏟겠다. 코드만이 자기가 하는 일을 진실되게 말한다. 코드만이 정확한 정보를 제공하는 유일한 출처다. 우리는 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 지저분한 모듈이라는 사실을 자각했을때 "주석을 달아야겠다" 가 아니라 "코드를 정리해야 한다" 다. 자신이 저지른 난장판을 주석으로 설명하려 애쓰는 대신에 그 난장판을 깨끗이 치우는데 시간을 보내라 ! 코드로 의도를 표현하라! 많은 경우 주석으로 달려는 ..

    [Clean Code] 3장 함수

    Intro 어떤 프로그램이든 가장 기본적인 단위는 함수다. 이 장은 함수를 잘 만드는 법을 소개한다. 길이가 길고, 중복된 코드에, 괴상한 문자열에, 낯설고 모호한 자료 유형과 API로 이루어진 함수는 이해하기 어렵다. 그렇다면 읽기 쉽고 이해하기 쉽고 의도를 분명히 표현하는 함수를 어떻게 구현할 수 있을까? 함수에 어떤 속성을 부여해야 처음 읽는 사람이 프로그램 내부를 직관적으로 파악할 수 있는가? 작게 만들어라 함수를 만들 때 최대한 '작게!' 만들어야 한다. public static String renderPageWithAndTeardowns( PageData pageData, boolean isSuite ) throws Exception { boolean isTestPage = pa..

    [Clean Code] 2장 의미 있는 이름

    Intro 소프트웨어에서 이름은 언제나 쓰인다. 이 장에선 이름을 잘 짓는 간단한 규칙을 몇 가지 소개한다. 의도를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 많다. 변수(함수, 클래스)의 이름은 따로 주석이 필요하지 않을 정도로 변수의 존재 이유, 기능, 사용 방법이 드러나야한다. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 의미를 함축하거나 독자가 사전지식을 가지고 있다고 가정하면 안된다. 예시 1 // Bad - d는 아무 의미도 드러나지 않음 int d; // 경과 시간(단위: 날짜) // Good int elapsedTimeDays; int daysSinceCreation; int daysSincedModification; int f..

    [Clean Code] 1장 - 깨끗한 코드

    코드가 존재하리라 이 책은 코드를 다루는 책이다. 코드를 자동으로 생성하는 시대가 다가온다고 코드는 사라지지않는다. 왜냐하면 코드는 요구사항을 상세히 표현하는 수단이기 때문에 코드의 도움 없이 요구사항을 상세하게 표현하기는 불가능하고 추상화도 불가능하다. 우리 프로그래밍 언어가 추상화 수준이 점차 높아지고 있고, 특정 응용 분야에서 적합한 프로그래밍 언어(domain-specific language[1]) 수도 점차 많아지는 것은 바람직한 현상이다. 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다 나쁜 코드 Killer App 하나로 대박난 회사가 있었지만 얼마 못가 망했다. 그 원인은 출시에 맞추기 위해, 기능을 더 추가하기 위해 나쁜 코드를 방치했기 때문이다. 급해서 서두르느라 나쁜 코..