일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 북스터디
- NullCheck
- spring
- 임팩트커리어스터디
- 스프링컨테이너
- 북클럽
- 인공신경망
- IntelliJ
- 개발필독서
- REST API
- valid
- Machine Learing
- 개발서적
- Dao
- 인텔리제이
- 노마드코더
- 머신러닝
- Deep Learning
- 노개북
- til
- springboot
- 스프링프레임워크
- requestbody
- 스프링어노테이션
- 스프링스터디
- 객체지향특징
- 클린코드
- mysql
- 딥러닝
- JPA
- Today
- Total
dev.jaieve 공부기록
[노개북] 클린코드 TIL(2022.02.28) 본문
DAY 7
🚀 오늘 읽은 범위 : 5장 형식 맞추기
🔥 책에서 기억하고 싶은 내용
적당한 행 길이를 유지
소스 파일 첫부분은 고차원 개념과 알고리즘을 설명하낟. 아래로 내려갈수록 의도를 세세하게 묘사한. 마지막에는 가장 저차원 함수와 세부 내역이 나온다.
빈 행은 새로운 개념을 시작한다는 시각적 단서이다. 코드를 읽어내려가다 보면 빈 행 바로 다음 줄에 눈길이 멈춘다.
인스턴스 변수는 클래스이 맨 처음에 선언한다.(p.103) ... 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다. 또 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치한다. 그러면 프로그램이 자연스럽게 읽힌다. ... 그만큼 모듈 전체의 가독성도 높아진다.(p.104)
신문 기사와 마찬가지로 가장 중요한 개념을 가장 먼저 표현한다.(p. 107)
들여쓰기가 없다면 인간이 코드를 읽기란 거의 불가능하리라(p. 111) ... 들여쓰기를 한 파일은 구조가 한눈에 들어온다. 변수, 생성자 함수, 접근자 함수, 메서드가 금방 보인다.(p.112)
🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보자!
맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.
변수에 값을 하드코딩으로 저장하면 안되는 이유는 유지보수할 때 매우 어렵기 때문에 해당 부분을 읽으면서 많이 공감했다. 실제로 회사에서는 reportHospitalCode 와 sendHospitalCode 라는 값이 핵심 키 값으로 사용되는데 js파일에서 해당값을 하드코딩해놓은 때가 있었다. 하드코딩된 0000 이란 값을 바꾸면서 유지보수의 용이성이 얼마나 중요한지 직접 느꼈던 기억이 떠올랐다.
가로 공백과 밀집도
공백을 넣으면 두 가지 주요 요소가 확실히 나뉜다는 사실이 더욱 분명해진다.(p. 108)
연산자 우선순위를 강조하기 위해서도 공백을 사용한다. ... 승수 사이는 공백이 없다. 곱셈은 우선순위가 가장 높기 때문이다. 항 사이에는 공백이 들어간다. 덧셈과 뺄셈은 우선순위가 곱셈보다 낮기 때문이다.(p. 109)
연산의 우선순위에 맞춰 가로 공백을 조절해야한다는 것은 1회독하면서 놓친 부분이었다. 나중에 개인 공부를 하거나 업무상 개발을 할 때 잊지 않고 가로공백이 포함된 소스를 작성할 수 있도록 신경써야 겠다.
정렬이 필요할 정도로 목록이 길다면 문제는 목록 길이지, 정렬 부족이 아니다. ... 선언부가 길다면 클래스를 쪼개야 한다(p. 110)
지난 주말동안 SOLID 원칙에 대한 짧은 발표를 준비해서그런지 SRP가 떠오른다. 선언부가 길다면, SOLID 원칙 중에서도 SRP를 지키지 못하는 class일지도 모른다. 여러 책임을 가졌는지 확인하고 하나의 책임을 가진 클래스로 쪼개야하는게 바람직하다.
팀 규칙
팀은 한 가지 규칙에 합의해야 한다. 그리고 모든 팀원은 그 규칙을 따라야 한다.(p. 113)
회사에 입사를 하고 기존 소스코드를 파악하고 기능을 추가할 때 어디서 어떤 naming을 붙여야할지 잘 모른채로 첫 기능개발업무를 수행했었다. 당시 같이 입사했던 입사동기와 나는 동일하게 조회하는 페이지를 만들었지만 controller와 html 파일의 naming은 완전히 달라버렸다. 첫 개발업무 중간에 코드리뷰를 하면서 naming과 indent에 대한 지적을 받을 때 참 기본적인건데 지적을 받는다는 생각이 들어서, 지금은 가장 잘지키고 있다. 특히 indent 단축키쓰면 한번에 IDE가 해결해주는데 안쓰는사람들은 진짜.. 후.. 그리고 의미없는 빈 line을 여러개 만드는 것도 개인적으로 정말 지양해야한다고 생각한다.
🔎 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면?
기대와 달리 잘 알려진 상수가 적절하지 않은 저차원 함수에 묻힌다.(p. 105)
- 묻히면 안되나? 잘 알려진 상수는 고차원이기 때문에 저차원함수와는 레벨이 다르기 때문에 지양하는 걸까?
'IT의 이것저것 > 스터디' 카테고리의 다른 글
[노개북] 클린코드 TIL(2022.03.04) - 수정중 (0) | 2022.03.04 |
---|---|
[노개북] 클린코드 TIL(2022.03.01) (0) | 2022.03.01 |
[노개북] 클린코드 TIL(2022.02.22-23) (0) | 2022.02.23 |
[노개북] 클린코드 TIL(2022.02.21) (0) | 2022.02.22 |
[노개북] 클린코드 TIL(2022.02.20) (0) | 2022.02.21 |