욱'S 노트

Clean Code - 경계 본문

Methdology/Clean Code

Clean Code - 경계

devsun 2015. 7. 20. 18:42

외부 코드 살펴보기


인터페이스 제공자와 인터페이스 사용자 사이에는 특유의 긴장이 존재한다. 패키지 제공자나 프레임워크 제공자는 적용성을 최대한 넓히려 애쓴다. 반면 사용자는 자신의 요구에 집중하는 인터페이스를 바란다. Map과 같은 예를 볼 때 Map은 매우 다양한 기능을 제공하고 이로 인해 시스템에 다양한 영향을 끼칠 수 있다. 경계 인터페이스를 사용할 떄는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의한다. Map 인스턴스를 인자로 사용하거나 반환값으로 이용하지 말아야 한다.


학습 테스트


외부 코드를 익히기는 어렵다. 외부 코드를 통합하기도 어렵다. 곧바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신 간단한 테스트 코드를 작성하여 외부 코드를 익히자.


학습테스테에 드는 비용은 없다. 어쨌든 API를 배워야 하므로... 그러나 학습 테스트는 공짜 이상이다. 패키지 새로운 버젼이 나오면 학습 테스트를 돌려 차이가 있는지 확인할 수 있을 것이다. 경계에 적절한 테스트들이 존재한다면 낡은 버젼을 필요 이상으로 오랫동안 사용하려는 유혹을 이겨낼 수 있을 것이다.


아직 존재하지 않는 코드를 사용하기 


때로는 우리 지식이 경계를 너머 미치지 못하는 코드 영역도 있다. 때로는 알려고 해도 알수가 없으며, 때로는 더 이상 알 필요가 없을때도 있다. 이러한 경우 상호간의 인터페이스를 정의하고, 구현은 Mock으로 하자. 



'Methdology > Clean Code' 카테고리의 다른 글

Clean Code - 오류처리  (0) 2015.07.17
Clean Code - 객체와 자료구조  (0) 2015.07.15
Clean Code - 형식 맞추기  (0) 2015.07.10
Clean Code - 주석  (0) 2015.07.08
Clean Code - 함수  (0) 2015.07.03
Comments