본문 바로가기

dev

납량 특집 개발 Quote

여름을 맞아 납량특집 Quote

Big Ball of Mud

데이터 구조는 무계획하게 구축됐거나 없는 것과 마찬가지다. 모든 것이 서로 꼬여있다. 중요한 상태 데이터는 모두 전역변수에 담겨있는 것 같다. 상태 데이터가 구획화되어 있더라도 시스템의 원래 구조를 사용하지 않고 뒷구멍으로 무분별하게 넘긴다.

변수와 함수 이름은 알아보기 힘들거나 오해의 소지가 있다. 함수는 별 생각없이 정의한 긴 파라미터 목록을 가질 뿐 아니라 전역변수로 범벅이 되어 있다. 함수는 길이도 길고 복잡하게 꼬여 있을 뿐 아니라 관련 없는 작업을 여러 개 수행한다. 코드는 중복되어 있다. 제어흐름은 이해하기 어렵고 쉽게 따라갈 수도 없다. 프로그래머의 의도를 알아보는 것은 거의 불가능하다. 코드는 읽을 수도 없고 해독도 불가능해 보인다. 많은 사람의 손을 거치며 여러 번 패치된 흔적이 보이며 작업자들은 그들의 작업이 어떤 결과를 초래하는지 거의 이해하지 못한 것 같다. [Foote and Yoder, 66]