티스토리 뷰
클린코드 1장 서평을 남긴다.
1장
코드는 요구사항을 표현하는 언어이다
나쁜 코드란?
켄트 백이 저술한 Implementation Patterns
책은 이렇게 말한다.
이 책은 좋은 코드가 중요하다는 다소 미약한 전제에 기반한다..
좋은 코드는 중요하다!
우리는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며
'그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다'고
스스로를 위로한 경험이 있을 것이다.
나 또한 개발을 할 때 항상
'아직 나는 실력이 부족하니까
돌아가는 쓰레기(?) 라도 만들자,,'
라는 마인드로 코딩을 했었는데
이번에 클린 코드를 읽으며
마음을 새로 다잡았다.
나중에 다시 정리해야지.. 하며
르블랑의 법칙을 믿었지만,
🤔 나중은 결코 오지 않는다.
(그러니 지금부터 깨끗한 코드를 짜자.)
흔히들 나쁜 코드가 개발 속도를 빠르게 할 것이라
생각한다.
하지만 이건 완전히 틀린 생각이다.
나쁜 코드는 개발 속도를 '크게' 떨어뜨린다.
기한을 맞추는 방법, 즉 빨리 가는 유일한 방법은
언제나 코드를 최대한 깨끗하게 유지하는 습관이다!
깨끗한 코드란 무엇인가?
- 비야네 스트롭스트룹(Bjarne Stroustrup)
- c++ 창시자이자 The C++ Programming Language 저자는 이렇게 말했다.
나는 우아하고 효율적인 코드를 조항한다.
논리가 간단해야 버그가 숨어들지 못한다.
...
깨끗한 코드는 한 가지를 제대로 한다.
비야네는 '유혹'이란 단어로 나쁜 코드를 정의했다.
📌
깨끗한 코드는 한 가지에 '집중'한다.
각 함수와 클래스와 모듈은 주변 상황에 현혹되거나 오염되지 않은 채 한길만 걷는다.
- 그래디 부치(Grady Booch)
- Object Oriented Analysis and Design with Application 저자는 이렇게 말했다.
깨끗한 코드는 단순하고 직접적이다.
...
깨끗한 코드는 명쾌한 추상화와 단순한 제어문으로 가득하다.
그래디 부치는 '가독성'을 강조했다.
- '큰' 데이브 토마스(Dave Thomas)
- OTI 창립자이자 이클립스 전략의 대부
깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다.
단위 테스트 케이스와 인수 테스트 케이스가 존재한다.
...
의존성은 최소이며 각 의존성을 명확히 정이한다.
데이브가 강조한 '테스트 주도 개발'은
오늘날 가장 근본적인 원칙 중 하나가 되었다.
테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.
아무리 코드가 우아해도,
아무리 가독성이 높아도,
테스트 케이스가 없으면 깨끗하지 않다.
- 마이클 페더스(Michael Feathers)
- Working Effectively with Legacy Code 저자는 이렇게 말했다.
깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다.
고치려고 살펴봐도 딱히 손 댈 곳이 없다.
- 론 제프리스(Ron Jeffries)
- Extreme Programming Installed와 Extreme Programming
- Adventure in C# 저자는 이렇게 말했다.
모든 테스트를 통과한다.
중복이 없다.
시스템 내 모든 설계 아이디어를 표현한다.
클래스, 메서드, 함수 등을 최대한 줄인다.
론은 짤막한 한 마디로 내용을 요약했다.
중복을 피하라.
한 기능만 수행해라.
제대로 표현해라.
작게 추상화하라.
- 워드 커닝햄(Ward Cunningham)
- 위키 창시자, 피트 창시자, 익스트림 프로그래밍 공동 창시자, 디자인 패턴을 뒤에서 움직이는 전문가, 스몰토크와 객체 지향의 정신적 지도자, 코드를 사랑하는 프로그래머들의 대부는 이렇게 말했다.
코드를 읽으면서 짐작했던 기능을
각 루틴이 그대로 수행한다면
깨끗한 코드라 불러도 되겠다.
...
1장에서는 말 그대로
깨끗한 코드란 무엇인지에 대한
여러 명개발자들의 생각(?)에 대해
들어보는 시간이었다.
그간 코드를 짜면서
'작동'에 초첨을 맞춰 개발했다면
앞으로는 '깨끗한 코드'에 맞춰 개발할 수 있도록
많이 노력해야겠다.
나의 느낌처럼
'깨끗한 코드에 집중하며 개발해라..'가
1장이 주는 교훈이 아닐까 싶다.
이상으로 1장 서평을 마친다.
'독서' 카테고리의 다른 글
[독서] Breaking Routine 책 후기(광고아님❌, 내돈내산 💸) (0) | 2022.07.24 |
---|---|
[비전공자를 위한 이해할 수 있는 IT 지식] 📙 책추천 및 책의 개요 소개(스포 X) (0) | 2022.07.21 |
[Why Fish Dont' Exist] 화제의 도서 '물고기는 존재하지 않는다' 서평 (0) | 2022.05.06 |
[독서] 클린코드 2장 의미 있는 이름 (0) | 2022.03.31 |
[독서] 클린코드 추천사 (0) | 2022.03.15 |
- Total
- Today
- Yesterday
- LinkedList
- 디버깅
- challenges
- stack
- Java
- 해커랭크
- 코드
- BAEKJOON
- 22 정보처리산업기사
- 해커랭크 자바
- 풀이
- 강의
- 정보처리 산업기사
- 백준
- 자바의 정석
- 정보처리산업기사
- 그리디
- hackerrank
- JPA
- hackerrank challenges
- 소스코드
- 해커랭크 챌린지
- ORM
- 22 정보처리 산업기사
- 개발자
- 정보처리산업기사 공부법
- 자바
- 해커랭크 자바 챌린지
- 챌린지
- queue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |