드디어 한 달 한 권 1번째 책을 다 읽었다.
먼저, 간단 후기를 말하자면 매우 유용했다. 그러나 약 500페이지가 되는 책에서 핵심 내용은 앞 부분에 몰려있고, 뒤에는 반복되는 예시들이었다.
책을 추천하자면 5점 만점에 4.5점정도로 강추하는 책이다.
왜 Clean Code였는가?
첫 번째 책을 무엇으로 할 건지에 대한 고민은 별로 하지 않았다. 많은 개발자들이 추천하는 필독도서인 Clean Code, 그 필요성에 대해서 늘 느꼈기 때문이다.
그리고 실제로 현업에서 ASIS 소스를 TOBE로 옮기면서 Clean Code에 대해 많이 생각하게 되었다.
만약 변수명이 좀 더 의미를 가지고 있었다면, 이렇게 분석하기 어렵지는 않지 않았을까? 하나의 함수가 하나의 기능만 가지고 있었다면, 좀 더 쉬웠을까?
그런 의문들이 책을 읽으면서, 일을 하면서 점점 더 보이기 시작했다. 조금 더 가독성 좋은 코드란 무엇일까란 고민을 하게 만들었다.
그렇다고 이 책이 다 맞는다는 것은 아니다.
실제로 클린 코드와 비슷하게 짜여있는 코드들을 봤다. 추상화로 구현부분을 모두 감추면서, IDE의 문제인지는 모르겠으나 이 코드가 무엇을 구성하고 있는 지 찾기 어려웠다.
아무래도 이름이 잘 짜여있다고 하더라도 실제 어떤 DB를 가져오고, 이 로직이 어떻게 되는 지 분석이 필요하다보니 추상화는 오히려 거슬렸다. 만약 내가 하는 일이 정확한 기능 명세가 있고, 짜여진 코드를 면밀히 분석해야 하는 것이 아니라면 정말 좋았을 지도 모른다.
다만, 너무 숨겨져 있어서 설계를 하면서 DB의 위치를 찾을 때 조금 고생했다.
함수도 나뉘어진 만큼 그 함수가 어떤 것을 의미하는 지, 그 함수가 필요한지 아닌지 모두 판단을 해야 했기 때문에 일이 더 가중된 느낌...
사실 이건 회사의 문제일 수도 있다. 뭐가 되었든, 회사 일에 맞춰 적절한 수준에서 추상화를 하고 함수를 나누는 것이 중요한 것 같다.
그렇다면 Clena Code는 뭐가 중요한가
핵심은 앞 부분에 대부분 나와있다.
1. 변수/함수 이름을 잘 지어라
2. 이름에 맞춰 기능을 구현해라 - 하나의 함수는 하나의 기능만
3. 죽어버린 코드는 과감히 지워라(불필요한 주석 등)
4. 테스트 커버리지를 100%로 맞춰라
이 네 개가 핵심이지 않을까 싶다. 그 중, 이름을 잘 짓는 것이 한 80% 차지한다.
2번도 이름에 따라 기능이 구현되어야 하므로 사실상 이름 짓기가 95%는 필요하지 않을까?
+) 테스트 커버리지를 빼먹을 뻔 했다. 가장 중요한 핵심이 이름 짓기와 테스트인데 말이다.
테스트를 코드에 맞추지 말고, 코드를 테스트에 맞춰야 한다.
그렇게 앞 장을 보고 나면, 뒷 장들은 예시나 반복되는 말이 많다. 한 가지 아쉬웠던 건, 코드를 IDE로 보고 싶다는 생각?
책으로 읽기엔 여간 불편한게 아니었다. 실제로 조금 대충 읽기도 했다.
https://blog.insightbook.co.kr/2013/12/19/%e3%80%8e%ed%81%b4%eb%a6%b0%ec%bd%94%eb%93%9c%e3%80%8f/
그리고 이 사이트에서 클린코드의 코드들을 다운 받을 수 있다.
그래서 Clean Code는
좋은 책이었다. 앞으로 코드 작성 시, 불특정 다수가 내 코드를 읽으면서 와! 정말 편하다! 라는 생각을 할 수 있도록 짜야겠다는 생각을 했다.
알고리즘을 할 때도, 일을 할 때도, 개인 프로젝트를 할 때도 늘 주의해야 한다.
다음 책은?
클린 코드와 같은 계열인 클린 아키텍처이다.
개발자에게 코드 만큼 중요한게 아키텍처이지 않을까
복잡한 아키텍처는 아무리 클린코드를 지향해도 복잡하게 느껴질 뿐이다.
그럼 다음 후기는 다시 한달 뒤에
'IT > 책' 카테고리의 다른 글
[Clean Architecture] 2부, 프로그래밍 패러다임 (0) | 2021.11.27 |
---|---|
[Clean Architecture] 1부, 소개 (0) | 2021.11.27 |
[Clean Code] 17장, 냄새와 휴리스틱 (0) | 2021.11.21 |
[Clean Code] 15장, 16장, 코드 리팩토링 해보기 (0) | 2021.11.19 |
[Clean Code] 14장, 점진적인 개선 (0) | 2021.11.14 |