개발자 99% 커뮤니티에서 수다 떨어요!
2024.06.22
추천사
1장. 깨끗한 코드
품질은 하늘에서 뚝 떨어진 위대한 방봅론이 아니라 사심 없이 기울이는 무수한 관심에서 얻어진다.
설계는 과정이지 고착된 종착점은 아니다. 결합력과 응집도라는 아키텍처 척도는 바로 코드로 표출된다.
“사소한 곳에서 발휘하는 정직은 사소하지 않다.”
단순히 사소한 것에 집중할 뿐 아니라 사소한 것에 정직해야 한다는 의미다. 다시말해, 코드에 정직하고, 코드 상태에 관하여 동료들에게 정직하고, 무엇보다도, 자기 코드에 대해서 자신에게 정직하라는 뜻이다.
장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론과 실전이다. 첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다. 둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.
기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다. 이렇게 명시한 결과가 바로 코드다. (p.2)
궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. (p.3)
나중은 결코 오지 않는다. (p.4)
나쁜 코드가 쌓일 수록 팀 생산성은 떨어진다. 그러다가 마침내 0에 근접한다. (p.5)
기한을 맞추는 유일한 방법은, 그러니깐 빨리 가는 유일한 방법은, 언제나 코드를 최대한 꺠끗하게 유지하는 습관이다. (p.7)
프로그래머들이 대충 넘어가는 부분 중 하나가 오류처리다. 메모리 누수, 경쟁 상태, 일관성 없는 명명법이 또다른 예다. 한 마디로 요약하면, 깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리하는 코드다.
꺠끗한 코드는 한 가지에 ‘집중’한다. 각 함수와 클래스와 모듈은 주변 상황에 현혹되거나 오염되지 않은 채 한길만 걷는다.(p.10)
중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화 하라. (p.14)
새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다. 비율이 이렇게 높으므로 읽기 쉬운 코드가 매우 중요하다. (p.18)
확실히 클린코드와 같은 내용은 실제 협업을 많이 할 경우에 더 공감하고 배울 것이 많아 보인다.
세심함이라는 소양이 더 나은 개발자로 만드는 것 같다.
나는 ‘코드 감각’이 타고난 것은 아닌것같다. 책에 나온 것처럼 열심히 투쟁해서 얻어내야겠다.