9. 코드베이스를 작게하라

가이드라인

  • 목표 : 코드베이스를 가능한 작게한다

  • 실천 : 코드베이스가 커지는걸 막고 시스템 크기를 적극적으로 줄인다

  • 효과 : 제품, 프로젝트, 팀을 작게 하는것이 성공의 지름길이니 유지보수성이 향상 됨

프로그램은 그것을 유지보수하는 프로그래머의 능력을 뛰어넘을 정도로 계속 복잡해진다.

-컴퓨터 프로그래밍의 7번째 법칙

1. 필요성

대규모 코드베이스 구축을 목표로 시작한 프로젝트는 실패할 가능성이 높다

대규모 코드베이스는 유지보수하기 힘들다

대규모 시스템은 결함밀도가 높다

2. 적용가이드

기능적 조치

  • 범위추가에 맞서라 : 요구사항에 없는 기능 추가는 프로젝트 기간을 늘리고, 지속적인 버그를 만들어 내므로 적절한 협의가 필요

  • 기능을 표준화하라 : 일관성 유지. 여러곳에서 방법만 조금씩 바꾸어 구현하는 불상사를 막기 위함. 코드의 재사용성을 높임

기술적 조치

  • 코드를 복사후 붙여넣기 하지 않는다

    • 참조하여 구성하기

    • 복사한 코드가 여기저기 흩어지면 유지보수 힘듬

    • 테스트에도 용이하지 않음. 군데군데 동일한 테스트가 진행될 우려

  • 기존코드를 리팩토링한다

    • 코드베이스를 줄이기

    • 가독성을 높이기

    • 단순화 및 구조적으로

    • 리팩토링 책 참고

  • 서드파티 라이브러리/프레임워크를 사용한다

    • 이미 구현된 내용 활용 (바퀴를 재발명하지 말라)

    • 유용한 or 필요한 서드파티의 라이브러리 활용하여 코드베이스를 줄임

    • 중복개발 줄임

  • 대규모 시스템을 분리한다

    • 작은 시스템 여러개로 분리하는 것이 유지보수에 좋음(모듈화, MSA)

Last updated