반응형

클린 코드 작성법

    14. 테스트와 가독성

    14. 테스트와 가독성

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 읽거나 유지보수하기 쉽게 테스트를 만들어라 -> 테스트 코드: 실제 코드가 어떻게 동작하며 어떻게 사용되어야 하는지에 관한 비공식적인 문서 -> 테스트 코드가 읽기 쉬우면, 사용자는 실제 코드가 어떻게 동작하는지 그만큼 더 쉽게 이해할 수 있다. -> 다른 프로그래머가 수정하거나 새로운 테스트를 더하는 걸 쉽게 느낄 수 있게 테스트 코드는 읽기 쉬워야 한다. 2. 테스트를 읽기 쉽게 만들기 -> 덜 중요한 세부 사항은 사용자가 볼 필요 없게 숨겨서 더 중요한 내용이 눈에 잘 띄게 해야 한다. -> 초기화에 필요한 부분은 헬퍼 함수를 사용해 감추고, 테스트 자체..

    13. 코드 분량 줄이기

    13. 코드 분량 줄이기

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 요구사항에 질문을 던지고 질문을 잘게 나누어 분석하라. -> 예외처리를 무조건적으로 적용하는 것이 아니라, 요구사항에 맞는지 생각한다. -> 불필요한 요구사항을 제거하라. -> 제품에 꼭 필요하지 않는 기능을 제거하고, 과도한 작업을 피한다. -> 요구사항을 다시 생각해서, 가장 단순한 형태의 문제를 찾아본다. 2. 코드베이스를 작게 유지하기 -> 코드베이스를 최대한 작고 가볍게 유지한다. -> 일반적인 '유틸리티'를 많이 생성하여 중복된 코드를 제거하라. -> 사용하지 않는 코드 혹은 필요없는 기능을 제거하라. -> 프로젝트가 서로 분리된 하위 프로젝트로 구..

    12. 생각을 코드로 만들기

    12. 생각을 코드로 만들기

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 논리를 명확하게 설명하기 -> 부정문을 최소화하여 조건을 분기한다. 2. 라이브러리를 알면 도움이 된다. -> 라이브러리가 제공하는 기능을 잘 활용하자. 3. 논리를 쉬운 말로 표현하는 방법을 더 큰 문제에 적용하기 -> 지저분한 논리를 감춘다.

    11. 한 번에 하나씩

    11. 한 번에 하나씩

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 작업은 작을 수 있다. 2. 객체에서 값 추출하기 -> 한 번에 하나의 작업! -> 동일한 if가 여러번 쓰일 경우, 묶어준다. -> 헬퍼 함수: 다른 함수 안에서 특정 기능을 하고 있는 함수

    9. 변수와 가독성

    9. 변수와 가독성

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 변수 제거하기 -> 불필요한 임시변수 제거 -> 중간 결과 삭제하기 -> 흐름 제어 변수 제거하기 2. 변수의 범위를 좁혀라 -> 전역변수는 최대한 멀리할 것! -> 변수가 적용되는 범위를 최대한 좁게 만들기 -> 많은 메소드를 정적 메소드로 바꾸는 것도 좋다. -> 커다란 클래스를 여러 개의 작은 클래스로 -> JS의 경우 변수를 전역이 아닌 클로져 내부에 선언해주는 것이 좋다. 3. 값을 한 번만 할당하는 변수를 선호하라 ->변수 값이 달라지는 곳이 많을수록 현재 값을 추측하기 더 어려워진다.

    8. 거대한 표현을 잘게 쪼개기

    8. 거대한 표현을 잘게 쪼개기

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 설명변수 -> 작은 하위표현을 담을 변수 if line.split(':')[0] == 'root': ... # --------------- # 설명변수 사용 username = line.split(':')[0] # 여러개의 코드 덩어리를 짧은 이름으로 교체 if(request.user.id === document.owner.id){ ... } // ----------------- // 요약변수 사용 const user_owns_document = request.user.id; // not을 분해하고 and/or를 바꾼다. -> !(A&B) 대신 !A || !B..

    7. 읽기 쉽게 흐름제어 만들기

    7. 읽기 쉽게 흐름제어 만들기

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 조건문에서 인수의 순서 -> 왼쪽이 주체, 오른쪽이 고정 값. // good if(length > 0) { ... } // bad if(0 if(긍정) else : 일반적으로 좋음! -> 간단한 것을 먼저하는 것 좋음 -> 더 흥미롭고, 확실한 것 먼저하는 것 좋음 3. 삼항 연산자를 사용하는 것 -> 기본적으로 if/else를 사용하고, 삼항 연산자는 매우 간단할 때만 사용한다. -> 짧은 코드 < 다른 사람이 이해하기 쉬운 코드 4. do/while 루프를 피하라 5. 함수 중간에서 반환하..

    6. 명확하고 간결한 주석 달기

    6. 명확하고 간결한 주석 달기

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 주석을 간결하게 하라 // **bad** //int는 CategoryType이다. //내부 페어의 첫 번째 float은 'score'다 //두 번째는 'weight'이다. typedef hash_map ScoreMap; // ---------------------------- // **good** // CategoryType -> (score, weight) typedef hash_map ScoreMap; 2. 모호한 대명사를 피하라 -> 'it', 'that', 'this'를 피하고, 명확한 대상을 적어라 3. 엉터리 문장을 다듬어라 -> 안좋은 예: "이 ..

    2. 이름에 정보를 담아내라

    2. 이름에 정보를 담아내라

    이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다. 1. 특정한 단어 고르기: 구체적인 단어를 통해 무의미한 단어 피하기 -> 유의어 색인집을 찾는 것, 동료에게 물어보는 것이 좋다. 2. tmp나 retval같은 보편적인 이름 피하기: 개체의 값이나 목적을 정확하게 설명한 이름을 사용 -> 변수의 이름은 변수의 목적이나 담고 있는 값을 설명해주어야 한다. -> i,j,k라는 뻔한 루프 반복자보다 club_i, members_i, users_i 같은 의미를 담은 반복자가 낫다. -> tmp, it, retval을 사용할 경우, 꼭 그렇게 하는 이유가 있어야 한다. -> tmp: 대상이 용도가 오직 임시적으로 존재하는..

반응형