3장 - 함수
소감
안좋은 코드의 사례를 들면서 어떻게 하면 좋은 함수를 작성할 수 있는지에 대해 설명을 하는데 다 읽고나서 생각해보면 결국 앞장에서 나왔던것처럼 ‘읽기좋은 함수가 좋은 코드다’.
함수는 한 가지의 일만 해야하고, 이름을 잘 지어야하고, 무분별한 인수 사용을 줄여서 함수의 이름과 인수의 이름만으로 무슨 동작을 하는지 알 수 있어야하고, 에러코드 대신 Exception을 사용해 처리하라 등의 방법을 안내하면서 결국 함수를 간단 명료하게 만드는게 좋다! 라는 걸로 결론이 지어지면서 이전에 읽었던 ‘리팩토링’을 번갈아 가면서 보아도 좋을거 같다는 생각을 했습니다.
그 책에도 함수를 어떻게 좋은 코드로 리팩토링 할 수있는지, 어떤 함수가 냄새가 나는 코드인지 에 대해 설명이 나와있어서 ‘클린코드’는 추상화 라고 하면 ‘리팩토링’은 구현체 라고 할 수 있지 않을까 생각 해보았습니다.
강의 내용
객제지향 설계의 5가지 원칙 - SOLID
- SPR(단일 책임 원칙) : 하나의 클래스는 하나의 책임만 가져야 한다.
- OCP(개방-폐쇄 원칙) : 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야한다.
- LSP(리스코프 치환 원칙) : 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다.
- ISP(인터페이스 분리 원칙) : 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.
- DIP(의존성 역전 원칙) : 상위 모델은 하위 모델에 의존하면 안된다. 둘 다 추상화에 의존해야한다. 추상화는 세부 사항에 의존해서는 안된다. 세부 사항은 추상화에 따라 달라진다.
함수 리팩터링
- 기능을 구현하는 서투른 함수를 작성한다.
- 테스트 코드를 작성한다.
- 리팩터링 한다.