코드 중복, 리팩토링 질문드릴께요
글쓴이: kws4679 / 작성시간: 목, 2013/11/21 - 7:12오후
코드 중복시 반드시 중복을 없애고 분리한다고들 하더군요
그런데 중복인줄 알고 분리했다가 분리된부분을 수정하는과정에 예상치 못한 결과를 초례한다던가
아니면 완전히 중복히 아닌경우 공통된 부분만을 추출하느라 구조가 복잡해지는 경우가 많더군요
예를들어 웹페이지를 만들때 글 작성과 글 수정 페이지가 있습니다. 글 수정 페이지를 글 작성 페이지에서 input 박스에 내용만 채워져있는 형태로
만들고자 할때 두 페이지는 거의 동일한 코드를 가지고있을텐데요 이런경우 어떻게들 하시나요?
그리고 작성페이지에 내용을 검사하는 루틴과 수정 페이지에 내용을 검사하는 루틴도 거의 비슷할텐데 일부는 달라질수가 있죠 예컨데 수정 페이지에서는 특정 필드를 검사한다던가
이런경우에 공통된 검사를 분리하는게 좋은가요?
이렇게 중복된 내용을 추출하면 함수가 기하급수적으로 늘어나고 재사용하기 힘든 형태의 함수가 존재하거나 해당 함수가 존재하는지 찾기 힘든경우조차 생기곤 하는데
이런 문제를 해결할수 있는 방법이 있을까요? 예컨데 함수명 알파벳 순으로 정렬을 한다던가....
Forums:
정답이 있는 문제는 아닌것 같고요
간단하게는 함수에 플래그를 줘서 해결할 수도 있을 것이고.
페이지 속성 하나하나를 오브젝트화해서 해당 속성의 무결성을 검사하는 루틴을 따로따로 구현한 뒤 페이지에서는 자기가 가진 모든 속성에 대해 검사 루틴만 호출해준다든지.. 이를테면 모든 코드를 잘게 부숴서 처음부터 재사용을 고려해서 만드는 식.
기타 아주 여러 가지 방법이 있을 것 같습니다. 정답이 딱히 있는 것 같지는 않고 결국 회사에서 협업하는 사람들과 상의해서 어떤 방식이 좋을지 결정하는게 좋을듯 합니다. 한번 룰을 결정하면 공식적으로 바꾸기 전까진 반드시 지키도록 유도하고 말이죠.
--
댓글 달기