개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.19
오늘 읽은 범위
추천사 ~ 1장. 깨끗한 코드
책에서 기억하고 싶은 내용을 써보세요.
[추천사]
세세함에 주의를 기울이는 태도는 전문가에게 더더욱 필수적인 자질이 되었다.
소프트웨어 설계에서 재작업은 가치를 가져온다.
[1. 깨끗한 코드]
우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐했었다. 물론 그때 그 시절 우리는 르블랑의 법칙을 몰랐다. 나중은 결코 오지 않는다.(4p)
나쁜 코드가 쌓일수록 팀 생산성은 떨어진다.(5p)
그럼에도 모든 프로그래머가 기한을 맞추려면 나쁜 코드를 양산할 수 밖에 없다고 느낀다. 간단히 말해, 그들은 빨리 가려고 시간을 들이지 않는다. (중략) 기한을 맞추는 유일한 방법은, 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.(7p)
나쁜 코드는 나쁜 코드를 '유혹'한다. 흔히 나쁜 코드를 고치면서 오히려 더 나쁜 코드를 만든다는 뜻이다.(9p)
깨끗한 코드란?
보기에 즐거운 코드
깨끗한 코드는 잘 쓴 문장처럼 읽힌다. (가독성)
다른 사람이 고치기 쉽다.
언제나 누군가 주의 깊게 짰다는 느낌을 준다.
중복을 피하라, 한 기능만 수행하라, 제대로 표현하라, 작게 추상화하라.
짐작했던 기능을 그대로 수행한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
현재까지 내가 작성했던 코드를 생각하며 읽으니 글을 읽는 동안 많은 반성을 하며 이해했다. 앞으로 더 깨끗한 코드를 작성하는 개발자가 되기 위해 많이 배워야 한다는 점을 깨달았다. 클린코드를 완독한 후의 나의 모습이 어떨지 기대가 된다.
평소에 코딩을 하며 '어떤 코드가 좋은 코드일까?'라는 생각을 자주 했던 편인데, 깨끗한 코드에 대해 정의된 글을 읽으며 이 생각에서 한 발 더 나아가 '이런 코드가 있었는데, 이렇게 수정해보면 어떨까?'라는 더 명확해진 생각을 할 수 있었다.
"우리는 저자다. 저자에게는 독자가 있다. 그리고 저자에게는 독자와 잘 소통할 책임도 있다. 다음에 코드를 짤때는 자신이 저자라는 사실을, 여러분의 노력을 보고 판단을 내릴 독자가 있다는 사실을 기억하길 바란다."(17p) 라는 문단도 되게 마음에 와 닿았다. 앞으로의 나는 이 문단을 생각하며 코드를 작성하길 바래본다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
다양한 설계 원칙에 대한 정의
SRP(Single Responsibility Principle)
OCP(Open Closed Principle)
DIP(Dependency Inversion Principle) 등