결합도 낮은 코드가 바꾸기 쉽다.
직접적으로 아는 것만 다루는 부끄럽쟁이 코드를 계속 유지하라
자신이 하고 있는 걸 하나의 과정으로 서술할 수 없다면, 자기가 뭘 하고 있는지 모르는 것이다.
2022.05.21(토)
5장. 구부러지거나 부러지거나
유연함을 유지하는 한 가지 좋은 방법은 물론 가능한 코드를 적게 작성하는 것이다. p182
소프트웨어의 구조는 유연해야한다. 그리고 유연하려면 각기 부품이 다른 부품에 가능한 한 조금만 연결되어야한다. p183
결합의 증상
무언가에 접근할 때 "."을 딱 하나만 쓰려고 노력해 보라. '무엇가에 접근'한다는 건 중간 변수를 사용하는 경우까지 포함해야한다. 점 하나 규칙에는 큰 예외가 하나 있다. 엮는 것들이 절대로 바뀌지 않을 것 같다면 이규칙을 지키지 않아도 된다.
어디에나 이벤트가 있다. 이벤트가 어디서 발생하든 이벤트를 중심으로 공들여 만든 코드는 일직선으로 수행되는 코드보다 더 잘 반응하고 결합도가 더 낮다.
애플리케이션이 출시된 이후 바뀔 수 있는 값에 코드가 의존하고 있다면 그 값을 애플리케이션 외부에서 관리하라. 설정 정보는 서비스 API 뒤에서 관리하는 것을 선호한다. p236
부러지는 것보단 구부러지는 것을 택하라. 유연한 코드를 짜는 방법에 대한 이야기이다. 왜 코드를 리팩토링해야하는지 별개의 컴포넌트를 가져다가 사용하는지에 대한 이유를 얕게라도 알 수 있었다. 결합도를 낮추고 단조롭게 코드를 작성하라. 그리고 설정값을 API를 통해서 서버에 대한 부하를 낮추고 활용도를 높이라는 조언까지. javascript 언어 밖에 몰라서 예제를 다 이해할 순 없었지만, 재미있었다.