나쁜 코드
나쁜 코드
나쁜코드는 크게 3가지로 나뉜다.
성능이 나쁜 코드 / 의미가 모호한 코드 / 중복된 코드
성능이 나쁜 코드는 쉽다. 불필요한 메모리와 시간을 사용하는 코드이다.
충분히 개선의 여지가 있지만, 개선되지 않은 코드를 말한다.
의미가 모호한 코드는 네이밍과 그 내용이 다른 코드를 말한다.
이름을 딱 보고 어떤 기능을 수행하는 코드인지 알 수 있어야 한다.
비슷한 내용이 중복되는 코드는 버그를 낳기도 하고, 지저분하고 자리만 차지한다.
비슷한 내용이 중복되지 않도록 해야한다.
나쁜 코드로 치르는 대가
나쁜 코드를 짜는 이유는 일정이 촉박해서 일정에 맞춰서 코드를 짜다보면 좋은 코드를 짜겠다는 생각은 뒤로하고
일단 구현에 초점을 맞춰 코드를 짜게되기 때문이다.
나쁜 코드는 생산성을 감소시킨다.
그러나 반대로 나쁜 코드를 계속해서 짜다가는 결국 일정을 못맞추게 된다.
나쁜 코드는 생산성을 저하시키고, 이후에는 나쁜 코드들로 인해 점점 생산성이 저하되어 일정을 맞추기 어려워 진다.
나쁜 코드를 짜는 또다른 이유는 영향범위가 넓어서 다른부분에 버그를 발생시킬까봐 소극적으로 코드를 짜기 때문이다.
기술 부채
그러나 당시에는 버그를 발생시키지 않고 넘어갈 수 있더라도 언젠가는 나쁜코드를 짰기때문에 발생사는 버그가 찾아올 것이다.
클린 코드
깨끗한 코드는 한가지를 제대로 한다.
비야네 스트롭스트룹 (Bjarne Stroustrup) - C++ 창시자
논리가 간단해야 버그가 숨어들지 못한다.
의존성을 최대한 줄여야 유지보수가 쉬워진다.
오류는 명백한 전략에 의거해 철저히 처리한다.
성능을 최적으로 유지해야 사람들이 원칙없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다.
깨끗한 코드는 잘 쓴 문장처럼 읽힌다.
그래디 부치(Grady Booch) - 객체지향의 대가 , Object Oriented Analysis and Design with Application 저자
깨끗한 코드는 단순하고 직접적이다.
깨끗한 코드는 결코 설계자의 의도를 숨기지 않는다.
깨끗한 코드는 다른사람이 고치기 쉽다.
데이브 토마스 (Dave Thomas) - OTI 창립자이자 이클립스 전략의 대부
깨끗한 코드는 작성자가 아닌 다른 사람도 읽기 쉽고 고치기 쉽다.
또한 단위테스트와 인수테스트가 존재한다.
중복을 피하라. 한 기능만 수행하라. 제대로 표현해라. 작게 추상화하라.
론 제프리스 (Ron Jeffries) - Extreme Programming Adventure C# 저자
중복 줄이기, 표현력 높이기, 초반부터 간단한 추상화 고려하기. 내게는 이 세가지가 깨끗한 코드를 만드는 비결이다.
클린코드란 무엇인가
성능이 좋은 코드
의미가 명확한 코드 ( = 가독성이 좋은 코드)
중복이 제거된 코드
미국의 보이스카우트 규칙
미국의 보이스카우트가 따르는 간단한 규칙이 있다.
"캠프장은 처음 왔을 때 보다 더 깨끗하게 해놓고 떠나라."
이 규칙은 프로그래머에게도 똑같이 적용된다.
코드를 고치러 들어갈때보다 나올때 코드가 더 깨끗해져 있도록 해라.
모두가 이 룰을 지킨다면, 시간이 지날수록 코드가 좋아지는 프로젝트가 될것이다.
2023.06.13 - [Book Review/Clean Code] - [Clean Code] 2장 : 의미있는 이름
'기타 > Book Review' 카테고리의 다른 글
[CleanCode] 클린코드 리뷰_6장 : 객체와 자료구조 (0) | 2023.06.21 |
---|---|
[Clean Code] 클린코드 리뷰_ 5장 : 형식 맞추기 (1) | 2023.06.17 |
[CleanCode] 클린코드 리뷰_ 4장 : 주석 (0) | 2023.06.16 |
[Clean Code] 클린코드 리뷰_ 3장 : 함수 (0) | 2023.06.15 |
[Clean Code] 클린코드 리뷰_ 2장 : 의미있는 이름 (1) | 2023.06.13 |