티스토리 뷰

반응형

 

클린코드 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장 서평을 마친다.

반응형