
워밍업 클럼 3기 BE 클린코드 1주차 발자국
1주차를 마무리하며...
업무와 같이 할 수 있겠지 싶었는데, 강의의 내용이 알차서 생각보다 힘들었습니다.
코드를 따라치며 수강했지만... 사실 제대로 이해 못하고 따라만 친 부분도 상당히 있었는데,
다시 내가 직접 리펙터링 해가며 따라가야지 다짐을 하며 1주차 발자국을 남깁니다.
강의 정리
클린코드란 무엇인가라는 질문으로부터 강의가 시작됩니다.
좋은 코드란 무엇일까요?
저는 강의의 내용을 듣고 이렇게 정리했습니다.
좋은 글과 마찬가지로 클린코드는 잘 읽히는 코드
한 문장 한 문장에 주제가 또렷해 전달하고자 하는 내용을 읽는 이에게 정확하게 전달하는 코드
강의에서 중간중간에 선조
와 후손
이라는 용어를 사용하십니다. 내가 쓰는 코드가 꼭 내것만은 아니라는 점을 계속 상기시켜주시면서, 공용의 코드를 어떻게 다뤄야할지는 말씀해주시는게 많이 도움이 될 것 같습니다.
추상화
추상이란 '사물을 정확하게 이해하기 위해서 사물이 지니고 있는 여러 가지 측면 가운데서 특정한 측면만 가려내어 포착하는 것'을 말합니다.
'비가온다' 라는 표현을 '대기내에 수증기가 응결하여 물방울로 변하고, 이 물방울이 중력에 의해서 지표면으로 떨어진다'라고 친구한테 말하면 갸우뚱할 것입니다.
이처럼 추상은 중요한 정보만 남겨 전달함으로써 상대방의 이해를 돕는 기능을 하는걸 실생활에서도 볼 수 있습니다.
코드에서의 추상화
그러면 코드에서는 어떻게 중요한 내용만 가려내고, 구체적인 내용은 숨겨 읽는 이의 이해를 도울 수 있을까요?
강의에서 나온 내용들 중 기억에 남는 방법들을 나열해봅니다.
코드 블럭내에서 추상화 레벨을 통일하기
객체에 적절한 역할과 책임을 부여하고 메시지를 통한 협력을 하는 구조로 만들기
SOLID 원칙을 생각해가며 코드를 작성하기
객체지향의 다양한 기법을 활용하기
상속과 조합
Value Object
컬렉션으로 포장한 일급컬렉션 사용하기
Enum
다형성
그리고 읽는 사람을 배려한 다양한 코드 작성법을 나열해봅니다.
변수, 메서드 추상화를 통해 이름 짓기
매직 넘버, 매직 스트링 상수화하기
공백 라인 활용해 블럭내 코드 분간해주기
조건문에 부정어 연산자 `!`줄이기
댓글을 작성해보세요.