코드 삭제가 쉬운 코드 작성하기
- 모든 코드 라인은 유지보수 비용을 수반함. 코드 재사용은 변경을 어렵게 만듦.
- API 소비자가 많을수록 변경 시 재작성해야 할 코드가 많아짐.
- 코드의 의존성을 관리하는 것은 대규모 시스템에서 중요한 문제임.
0단계: 코드를 작성하지 않기
- 코드 라인의 수는 그 자체로 많은 정보를 제공하지 않음.
- 작성하지 않은 코드는 삭제하기 가장 쉬운 코드임.
1단계: 코드 복사-붙여넣기
- 재사용 가능한 코드는 나중에 예제를 통해 더 쉽게 작성할 수 있음.
- 코드 복사-붙여넣기는 의존성을 피하고 유연성을 얻기 위한 방법임.
2단계: 코드 복사-붙여넣기 하지 않기
- 코드가 충분히 복사-붙여넣기 되었다면 함수로 추출할 때임.
-
util 디렉토리를 만들어 다양한 유틸리티를 다른 파일에 보관하는 것이 좋음.
3단계: 더 많은 보일러플레이트 작성하기
- 보일러플레이트는 코드 복사-붙여넣기와 유사하지만, 각기 다른 위치에서 코드를 변경함.
- 보일러플레이트는 의존성을 줄이고 유연성을 제공함.
4단계: 보일러플레이트 작성하지 않기
- 보일러플레이트가 너무 많다면, 정책, 워크플로우, 상태에 대한 의견을 가진 라이브러리로 감싸야 함.
-
requests와 urllib3의 관계가 좋은 예시임.
5단계: 큰 덩어리의 코드 작성하기
- 비즈니스 로직은 끝없는 예외 케이스와 빠르고 더러운 해킹으로 특징지어짐.
- 큰 실수를 삭제하는 것이 작은 실수를 여러 개 삭제하는 것보다 쉬움.
6단계: 코드를 조각으로 나누기
- 큰 덩어리의 코드는 유지보수 비용이 큼.
- 코드의 책임을 분리하고, 변경 가능성을 고려하여 모듈을 설계해야 함.
7단계: 계속해서 코드 작성하기
- 새로운 아이디어를 실험할 수 있도록 기존 코드와 독립적으로 새로운 코드를 작성할 수 있어야 함.
- 피처 플래그는 나중에 마음을 바꿀 수 있는 방법임.
GN⁺의 정리
- 이 글은 코드 작성 시 삭제가 쉬운 코드를 만드는 방법에 대해 설명함.
- 코드의 의존성을 줄이고, 유연성을 높이며, 유지보수 비용을 줄이는 것이 핵심임.
- 비슷한 기능을 가진 프로젝트로는 requests와 urllib3가 있음.
- 이 글은 소프트웨어 개발자에게 코드 관리와 유지보수의 중요성을 일깨워줌.