티스토리 뷰

책/Clean Code

1장 깨끗한 코드

IT공부블로그 2019. 7. 15. 14:22
728x90
반응형

장인 정신을 익히는법

1. 장인의 기술, 방법, 구현 등을 습득하고

2. 그것들을 꾸준히 연습하고 반복숙달 해야한다


이책은 꾸준히 열심히 공부해야하는 책


마지막에 나오는 휴리스틱까지 꼼꼼하게 다 공부해야 제대로 공부한것


------------------


이 책을 읽고나면 좋은코드와 나쁜코드를 구별할수있게된다.

코드는 요구사항을 상세히 작성할수있는 수단?

코드가 없다면 추상화도 불가능하며 코드가 사라질수는없다


-----------------


궁극적으로 코드는 요구사항을 표현하는 언어


-----------------


나쁜코드를 작성하는것은 바빠서, 귀찮아서 다양한 이유로 작성을 하고

나중에 고쳐야지 라고 생각하지만 그 나중은 오지않는다 (르블랑의법칙)

나쁜코드는 개발 속도를 크게 떨어뜨린다.


-------------------


나쁜 코드를 작성하게된 원인은 우리 프로그래머에게 있다

우리가 전문가답지 못했기때문에 우리가 고객과 관리자에게 많은 정보를 제공해야했다


---------------

고객이 요구사항을 구현할수있는지 현실성을 우리에게 물어보고

관리자도 일정을 맞추기위해 우리에게 물어보기때문에 

우리의 잘못이 없다고 할순없다 


나쁜코드를 이해하지못하는 고객과 관리자의말을 그대로 수용하는것은 

전문가답지 못하다 


기한을 맞추는 유일한방법은 깨끗한코드를 유지하는것이다


----------------


깨끗한 코드가 무엇인지 모르면  깨끗한 코드를 작성할수없다


깨끗한코드와 나쁜코드를 구별할줄 안다고해서 깨끗한 코드를 작성할수있는것은 아니다


----------------


깨끗한 코드란?

1. 논리가 간단하고 의존성을 최대로 줄인 코드, 오류처리가 잘되어있는 코드(세세하게 신경쓴 코드), 세세한 사항까지 꼼꼼하게 처리하는 코드, 한가지에 집중하는 코드 ( 나쁜코드는 많은일을 한번에 처리하려다 의도가 뒤섞이고 목적이 흐려진다)


2. 가독성이 좋은코드, 설계자의 의도를 숨기지않는 코드, 코드는 추측이 아닌 사실에 기반해야한다 반드시 필요한 내용만 담아야한다.


3. 단위 테스트 케이스가 있는코드, 다른 사람이 고치기 쉬운 코드


4. 주의 깊게 작성한 코드 ( 고칠 필요가없는 코드)


5. 간단한 코드는 모든 테스트를 통과하며 중복이없고 시스템 내 모든 설계 아이디어를 표현하며 클래스, 메서드, 함수 등을 최대한 줄인것,

여러 기능을 수행하는 메소드를 잘게 나눠야함,

어떤 특정한일을 할때 배열, 해쉬맵 등 다양한 방법을 사용한다면 추상메소드로 구현하는것이 좋다


추상화를 하면 진짜 문제에 신경 쓸 여유가 생긴다.


중복을 피하라, 한 기능만 수행하라, 제대로 표현하라, 작게 추상화하라


6. 읽으면서 짐작한대로 동작하는 코드


-------------------


새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다.


주변 코드를 읽지 않으면 새 코드를 짜지 못한다. 

주변 코드가 읽기 쉬우면 새 코드를 짜기도 쉽다


----------------------


캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라


한꺼번에 많은 시간과노력을 투자해 코드를 정리할 필요가 없다.

변수 이름 하나를 개선하고, 조금 긴 함수 하나를 분할하고, 약간의 중복을 제거하고, 

복잡한 if 문 하나를 정리하면 충분하다

728x90
반응형

' > Clean Code' 카테고리의 다른 글

4장 주석  (0) 2019.07.19
3장 함수  (0) 2019.07.18
2장 이름  (0) 2019.07.16
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함