[리뷰] 클린코드 1장 깨끗한 코드
Clean Code(클린 코드) - 교보문고
애자일 소프트웨어 장인 정신 | 나쁜 코드도 돌아는 간다. 하지만 코드가 깨끗하지 못하면 개발 조직은 기어간다. 매년 지저분한 코드로 수많은 시간과 상당한 자원이 낭비된다. 그래야 할 이유
www.kyobobook.co.kr
클린 코드 - 로버트 c.마틴
디자인이 이쁜 신발과 디자인이 별로인 신발이 존재하는 것처럼
코드 또한 좋은 코드와 나쁜 코드가 존재한다.
사람들에게 사랑받는 아름다운 디자인을 만들기 위하여 모든 부분에 신경을 쓰듯
보기좋은 코드를 만들기 위해서도 작성할때 여러가지 부분을 고려하여야 한다.
더이상 무지성?으로 코딩을 하지말고자 클리 코드를 작성하는 사람이 되고자 책을 읽고 기억해야 할 점을 적어두고
이에 따른 나의 생각을 정리하며 코딩할때마다 적용해보자
코드가 존재하리라
코드는 요구사항을 표현하는 언어이다.
요구사항에 더욱 가까운 언어를 만들 수도 있다.
정형구조를 뽑아내는 도구를 만들 수도 있다.
하지만 정밀한 표현이 필요하다.
"모델이나 요구사항에 집중해야 한다고 생각하는 사람이 있다"는 말이 내 얘기하는것 같다.
나쁜 코드
나쁜 코드는 회사를 망하게한다.
나쁜코드를 왜짤까?
급하고 서둘러서 빨리끝내고 싶어서 그리고 나중에 고치면 된다고 생각해서 등의 이유가 있다.
이럴때마다 르블랑의 법칙을 생각하자
나중은 돌아오지 않는다.
깨끗한 코드를 만드는 노력이 비용을 절감하는 방법이자 전문가로 살아남는 길이다.
나쁜 코드를 만드는건 순전히 프로그래머의 잘못이다. 핑계를 만들지 말자
좋은 코드를 만드는 습관을 들이자!
나쁜 코드로 치르는 대가
비아네 스트롭스트룹
- 깨끗한 코드는 보는 사람에게 즐거움을 선사한다.
- 나쁜 코드는 나쁜 코드를 유혹한다.
- 코드를 세세한 사항까지 꼼꼼하게 체크하자.
- 깨끗한 코드는 한가지 일에 집중한다.
그래디 부치
- 깨끗한 코드는 명쾌한 추상화이다.
- 가독성을 강조한다.
- 코드는 사실에 기반해야하며 반드시 필요한 내용만 담아야한다.
데이브 토마스
- 깨끗한 코드는 다른사람이 고치기 쉽다.
- 큰 코드보다 작은 코드에 가치를 둔다.
마이클 페더스
- 깨끗한 코드는 주의 깊게 짠 느낌을 준다.
론 제프리스의 코드 규칙
- 모든 테스트를 통과한다.
- 중복이 없다.
- 시스템 내 모든 설계 아이디어를 표현한다.
- 클래스,메서드,함수등을 최대한 줄인다.
- 중복을 줄이고 , 표현력을 높이며 ,간단하게 추상화하자
워드 커닝햄
- 짐작했던 기능을 수행한다.
- 생각했던 동작을 그대로 수행하기란 쉽지않다.
- 코드를 독해하느라 머리를 쥐어짤 필요가 없어야한다.
보이스카우트 규칙
"캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라"
좋은 코드가 전부가 아니며 지속적인 유지 보수가 중요하다.
중요한 원칙
SRP(The Single Responsibility Principle: 클래스에는 한 가지, 단 한가지 변경 이유만 존재해야 한다.
OCP(The Open Closed Principle): 클래스는 확장에 열ㄹ려 있어야 하며 변경에 닫혀 있어야 한다.
LSP(The Liskov Substitution Principle): 상속받은 클래스는 기초 클래스를 대체할 수 있어야 한다.
DIP(The Dependency Inversion Principle): 추상화에 의존해야 하며, 구체화에 의존하면 안된다.
ISp(The Interface Segregation Principle): 클라이언트에 밀접하게 작게 쪼개진 인터페이스를 유지한다.
책을 읽으며 소개된 방식을 읽고 넘어가는 것이 아니라 코딩을 할때 적용해보자
연습 또 연습