-
7.상관없는 하위 문제 추출Technique/Readable Code 2015. 12. 11. 11:06반응형
우리는 문제를 해결 하기 위하여 커다란 문제를 작은 문제들로 쪼갠 다음 각각의 문제에 대한 해결책을 구하고 다시 하나의 해결책으로 맞추는 작업을 한다.
이러한 원리를 코드에 적용하면 코드는 더 튿튿해지며 가독성도 좋아진다.
큰 흐름에서 작은 하위 문제를 적극적으로 바견해서 추출하라!
■ 주어진 함수나 코드 블록을 보고 스스로에게 질문하라
"상위 수준에서 본 이 코드의 목적은 무엇인가?"
■ 코드의 모든 줄에 질문을 던져라
"이 코드는 직접적으로 목적을 위해서 존재하는가? 혹은 목적을 위해서 필요하긴 하지만 목적 자체와 직접적으로 상관없는 하위 문제를 해결 하는가?"
■ 만약 상당히 원래의 목적과 직접적으로 관련되지 않은 하위문제를 해결하는 코드 분량이 많으면, 이를 추출해서 별도의 함수로 만든다.
sql 데이터베이스, 자바스크립트 라이브러리, html 템플릿 시스템과 같이 사용하는 강력한 라이브러리와 시스템을 생각해보라
이들의 내부는 염려할 필요가 없다. 이들 코드베이스는 프로젝트에서 완전히 분리되어 있다.
프로젝트에서 사용하는 코드의 더 많은 부분이 별도의 라이브러리로 만들어 질수록 좋다.
코드의 나머지가 차지하는 크기가 그만큼 줄어들고 따라서 프로그래머가 생각 해야할 내용도 줄어들기 때문이다.
상향식 (top-down) 프로그래밍
가장 상위수준의 모듈과 함수를 먼저 설계하고, 가장 하위수준의 기능은 높은 수준을 지원할 때마다 구현하는 방식
하향식( bottom-up ) 프로그래밍
모든 하위문제를 예상하고 구현한 다음, 이러한 족가을 이요해서 가장 상위수준의 컴포넌트를 만들어나가는 방식
가장 이상적인 상황은 수정을 위해 추출해낸 하위문제는 사용하는 프로젝트에대해 아무것도 몰라야 한다
한마디로 정리하면 일반적인 목적의 코드를 프로젝트의 특정 코드에서 분리하라!
일반적인 문제를 해결하기 위한 라이브러리와 헬퍼 함수들로 이루어진 집합을 구성하면, 남아있는 코드는 현재의 프로젝트를 독특하게 만드는 작은 핵심 뿐이다
이러한 코딩 기법이 도움을 주는 주된 이유는
프로그래머들이 프로젝트의 나머지 부분에서 분리된, 크기가작고 잘 정의된 문제에 초점을 맞추기 때문이다.
결과적으로 이러한 하위 문제의 해결책 자체가 더 완전하고 정확해질 가능성이 높아진다.
반응형'Technique > Readable Code' 카테고리의 다른 글
9. 생각을 코드로 만들기 (0) 2015.12.11 8. 한번에 하나씩 (0) 2015.12.11 6. 변수와 가독성 (0) 2015.12.10 5. 거대판 표현을 잘게 쪼개기 (0) 2015.12.10 4. 흐름제어 (0) 2015.12.10