[Clean Code] 📂. Assignment #02. 추천사 ~ 1장. 깨끗한 코드
TIL (Today I Learned)
2022.02.19(토)
오늘 읽은 범위
- 추천사 ~ 1장. 깨끗한 코드 (p.20)
책에서 기억하고 싶은 내용을 써보세요.
- 장인정신
- 장인정신은
이론
+실전
이다. 이론
: 원칙, 패턴, 기법, 경험이라는 지식 습득실전
: 일과 연습을 통해 체득
- 장인정신은
- 코드가 존재하리라
프로그래밍
이란 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업이고, 명시한 결과는코드
이다.- 프로그래밍 언어에서 추상화 수준이 높아짐에 따라 특정 응용 분야에 대한 적합한 프로그래밍 언어(domain-specific language)도 많아 진다. 언젠가 코드가 사라질 것이라고 생각하지만
프로그램의 요구사항을 정밀하게 표현하기 위해선 코드는 없어질 수 없다.
- 나쁜 코드와 나쁜 코드로 치르는 대가
- *회사에서 개발을 하면서 마감기한에 쫓겨 일단 구현부터하고 나중에 다시보자라고 생각한 기능이 있었다. 하지만 시간이 지나도 다시 볼 시간이 없었고, 오류가 발생했을 내가 작성한 코드지만 내가 알기어려웠던 경험이 있다. 처음 작성할 때 구조를 잘 짜놓았더라면 후에 고칠때 더 적은 시간을 사용했을 것이다…
- 나쁜 코드 :
개발 속도 ↓
,생산성 ↓
- 나쁜 코드의 잘못은 전적으로 프로그래머에게 있다. 프로그래머가 전문가답지 못했기 때문이다. 좋은 코드를 사수하는 것이 프로그래머의 책임이다.
언제나 코드를 최대한 깨끗하게 유지하는 습관
- 깨끗한 코드
- 깨끗한 코드를 작성하기 위해선 ‘청결’이라는 감각을 활용해 자잘한 기법들을 적용하는 절제와 규율이 필요하다.
코드 감각
: 좋은 코드와 나쁜 코드를 구분, 절제와 규율을 적용하여 나쁜 코드를 좋은 코드로 바꾸는 전략 파악
- 비야네 스트롭스트룹 (Bjarne Stroustrup)
세세한 사항까지 꼼꼼하게 처리하는 코드
한가지에 '집중'
- 그래디 부치 (Grady Booch)
가독성
: 코드가 잘 쓴 문장처럼 읽혀야 한다.해결할 문제의 긴장을 명확히 드러내야 함
- 큰 데이브 토마스 (Big Dave Thomas)
코드가 다른 사람이 고치지 쉬움
테스트 주도 개발 (TDD:Test Driven Development)
- 마이클 페더스 (Michael Feathers)
주의 깊게 작성한 코드
- 론 제프리스 (Ron Jeffries)
중복을 피하라
한 기능만 수행하라
제대로 표현하라
작게 추상화하라
- 워드 커닝햄 (Ward Cunningham)
읽으면서 짐작한 대로 돌아가는 코드
명백
,단순
해 마음이 끌리는 코드
- 로버트 C. 마틴 (Robert C. Martin)
읽기 쉬운 코드
: 새 코드를 짜면서 기존 코드를 끊임없이 읽기 때문에- 시간이 지나도
언제나 깨끗하게 유지
: 체크아웃할 때보다 좀 더 깨끗한 코드를 체크인
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
한 동작을 하는 기능을 구현하는 방법은 수도 없이 많다. 마음이 가는대로 두서없이 구현하는 것과 어떻게 하면 깨끗하고 아름다운 코드를 작성할지 고민하면서 코딩을 하는 것은 천지차이이다. 빨리빨리 구현하기 위해서 계획없이 작성하는 것 보다는 시간과 노력이 더 들어도 아름답게 코드를 작성하는 것이 좋다는 것을 다시 한번 느낄 수 있었다.
또한, 옛날부터 깨끗한 코드를 작성하기 위해서 많은 노력과 시행착오가 있었다는 것을 느낄 수 있는 내용이었다. 앞으로 프로그래밍 할 때 항상 생각하면서 코드를 작성하도록 노력해야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
르블랑의 법칙(leblanc's Law)
: 나중은 결코 오지 않는다.테스트 주도 개발 (TDD:Test Driven Development)
: 매우 짧은 개발 사이클을 반복하며 요구사항을 검증하는 테스트 케이스를 작성하여 테스트를 통과하는 최소한의 코드를 생성한 후 코드를 표준에 맞도록 리팩토링하는 개발방법
댓글남기기