오늘 TIL 3줄 요약
- '한 가지'만 하는 함수를 만들어라
- 중복을 줄여라
- 잘 읽히는 이야기처럼 코드를 풀어가라
책에서 기억하고 싶은 내용
- 작게 만들어라 - 가로 100자, 100줄 이상 금지. 20줄도 김
- 블록과 들여쓰기 - if/else문, while문 등에 들어가는 블록은 한 줄이어야 한다는 의미
= 중첩구조가 생길만큼 함수가 커져서는 안됨 - 한 가지만 해라 - 한 가지 기능만 하되, 그 기능이 잘 동작해야 함
- 함수가 '한 가지' 기능만 수행하는지 확인하는 방법?
- 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다.
- 단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈.
- 함수 당 추상화 수준은 하나로! - 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다. 특정 표현이 근본 개념인지 아니면 세부사항인지 구분하기 어려운 탓
- 위에서 아래로 코드 읽기 : 내려가기 규칙 - 코드는 위에서 아래로 이야기처럼 읽혀야 좋다. 한 함수 다음에는 한 단계 낮은 함수가 온다. 즉, 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한 번에 한 단계씩 낮아지는 것
- 서술적인 이름을 사용하라 - "코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다 - 워드"
- 이름이 길어도 괜찮다
- 길고 서술적인 이름이 짧고 어려운 이름보다 좋다
- 함수 인수 - 함수에서 이상적인 인수 개수는 0개 (무항).
- 부수 효과를 일으키지 마라
- 명령과 조회를 분리하라 - 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야함.
- 오류 코드보다 예외를 사용하라
- 반복하지 마라
- 구조적 프로그래밍 - " 모든 함수와 함수 내 모든 블록에 입구와 출구가 하나만 존재해야 한다 - 에츠허르 데이크스트라"
- 그렇다면 함수는 어떻게 짜야할까?
- 글을 쓸 때 먼저 초안을 쓰고 계속해서 다듬듯이 함수를 짤 때도 마찬가지로 처음 짠 코드를 계속 수정하여 완성도 있게 만들자.
- 모든 코드를 빠짐없이 테스트하는 단위 테스트 케이스를 만들자 (모든 수정사항에서 코드는 항상 단위 테스트를 통과해야함)
- 코드 다듬기, 함수 만들기, 이름 바꾸기, 중복 제거, 메서드 줄이기, 순서 바꾸기, 전체 클래스 쪼개기로 계속해서 보완
- DSL(Domain Specific Language) : 특정 응용 분야 시스템을 기술할 목적으로 프로그래머가 설계한 도메인 특화 언어
- 프로그래머 대가(master)는 시스템을 구현할 프로그램이 아니라 풀어갈 이야기로 여김
그 후 코드 다듬기, 함수 만들기, 이름 바꾸기, 중복 제거, 메서드 줄이기, 순서 바꾸기, 전체 클래스 쪼개기 등
오늘 읽은 소감은?
읽으면 읽을수록 좋은 코드를 짜는 게 참 쉽지 않다는 생각이 든다. 고려해야 할 것도 많고..!
짜놓은 코드를 좀 더 작은 코드로 나눌 수 없는지 고민해봐야겠다.
길고 서술적인 이름이 좋다고 했는데 어느 정도가 적당한 정도일까?ㅎㅎ
궁금한 내용, 잘 이해되지 않는 내용
- 추상화
- switch문에 관한 부분 (다형성 등)
'개발공부 > JavaScript 책' 카테고리의 다른 글
[클린코드] TIL (5장 형식맞추기) (0) | 2022.05.03 |
---|---|
[클린코드] TIL (4장. 주석) (0) | 2022.04.29 |
[클린코드] TIL (2. 의미있는 이름) (0) | 2022.04.24 |
[클린코드] TIL (1장. 깨끗한 코드) (0) | 2022.04.24 |
모던 자바스크립트 Deep Dive #16 (함수와 일급 객체) (0) | 2022.02.11 |