티스토리 뷰

Clean Code (클린 코드,애자일 소프트웨어 장인 정신)

로버트 C. 마틴 저


1장 깨끗한 코드내용을 정리하였습니다.

코드가 존재하리라

코드는 인간의 추상적인 상상력의 산물임으로, 우리의 의도를 파악하여 자동적으로 코드를 만들어주는 것은 나타나지 않는다. - > 결국 코드는 앞으로 쭉 사람이 쓰여야 되는 것이다.


나쁜코드

나쁜코드 -> 시간에 쫓기여, 돌아가기만 하는 코드. -> 안돌아가는 프로그램보다 쓰레기가 낫다고 하는 위로감을 가진다.


르블랑의 법칙 : 나중은 결코 오지 않는다.


나쁜코드의 대가 

1) 나쁜코드일수록 생산력이 떨어진다. (결국 생산력 0에 수렴) -> 생산력복구를 위해 프로젝트에 인력추가 -> 설계 의도를 확정짓지 못함 -> 생산력을 높여야되는 압박 -> 다시 나쁜코드 생산 .. 악순환이다.


2) 관리층에 시스템 재설계 -> 팀의 분할( 재설계팀, 유지팀) -> 재설계팀은 유지팀의 개발속도를 따라 잡아야한다. (엄청난 시간이 들음) -> 기존시스템을 따라잡을 때쯤 다른 새로운 팀원이 시스템 재설계 하자고 요청하게 된다.


 *** 좋은 코드 사수는 프로그래머들의 책임이다.

 *** 개발시간을 최소화 하는 방법은 언제나 코드를 꺠끗한 상태로 유지 시키는 것이다.


깨끗한 코드란?

비야네 스트롭스트룹( C++창시자)

1. 논리가 간단해야 버그가 수어들지 못한다.

2. 의존성을 최대한 줄여야 유지보수가 쉬워진다.

3. 성능을 최적화로 유지시킨다.

4. 각 함수와 클래스와 모듈은 독립적이어야한다.


그랜드 부치 ( 가독성 강조)

* 책을 읽는 느낌

1. 단순하고 직접적이다.

2. 잘쓴 문장처럼 읽힌다.

3. 설계자의 의도를 숨기지 않는다.

4. 명쾌한 추상화와 단순한 제어문으로 가독한다.


데이브 토마스

1. 작성자가 아닌 타인이 읽기 쉽고 고치기 쉬워야한다.(**)

2. 단위 테스트와 수용 테스트 케이스가 존제한다.

3. 모든 이름에 의미가 있다.

4. 특정한 목적을 달성하기위해서 한가지를 사용한다.

5. 언어에 따라 문학적 표현이 필요하다.


마이클 페더

1. 코드를 주의 깊게 짜고 그것을 다른사람이 봤을떄 주의깊게 짜여진것이라고 느껴질정도여야한다.


론 제프리

1. 켄드백이 제안한 간단한 코드 규칙으로 구현을 시작한다.

1) 모든 테스트를 통과한다.

2) 중복이 없다.

3) 시스템 내 모든 설계 아이디어를 표현한다.

4) 클래스, 메소드, 함수 등을 최대한 줄인다.

 * 중복줄이기

 * 표현성 높이기

 * 초반부터 간단한 추상화 고려하기


워드 커밍검

 1. 코드를 읽으며 짐작했던 기능을 각 루틴이 그대로 작동하면 클린코드이다.


클린코드

코드를 읽는 시간 : 코드를 짜는시간 | 10 : 1


주변코드를 읽지 않으면 새 코드를 짜지 못한다. -> 주변 코드를 읽기 쉬우면 새 코드를 짜기 쉽다 -> 주변 코드를 읽기 어려우면 새 코드를 짜기도 어렵다. 그럼 쉽게 짜려면 읽기 쉽게 만들면된다.


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

댓글