검색결과 리스트
code squiggles에 해당되는 글 1건
- 2010/07/01 코드 이해/소통에 도움을 주는 Code Squiggles (1)
글
코드 이해/소통에 도움을 주는 Code Squiggles
2010
2010/07/01 13:59
Code Squiggles이라는 아이디어는 흥미롭다. JUnit 혹은 hamcrest Matcher 혹은 그 이전 Mock 라이브러리에서 봤던 표현이지만, 글에서는 넓은 사용 사례를 말하고 있다. 가장 두드러진 부분만 발췌하면 이렇다.
위와 같은 메소드가 있다면 사용자(client) 코드는 다음과 같다.
사용자 코드만 보아서는 나열한 숫자를 어디에 쓰는지 보이지 않는데 이때 Code Squiggles로 장식할 수 있다.
의도가 명확해진다. 자주 쓰는 경우는 번거로울 수도 있겠지만, 다른 사람이 코드를 보는 경우까지 고려하면 주석보다는 좋은 방법이다.
Code Squiggles 구현 예는 다음과 같다.
위에 언급한 사례만으로 Code Squiggles 도입 가치를 판단하기는 빈약하다. 경험에 따른 상상력이 필요하다. 우선 assertThat과 hamcrest API의 예를 보면 가치가 있다. 특정 영역(domain)으로 한정해서 주요 어휘를 표준화해서 공용으로 쓸 때 코드를 쉽게 소통할 수 있다. 그런 점에서 범위를 한정해서 지속적으로 사용하고 정제하면 일종의 DSL(Domain Specific Language) 제작에 기여하지 않을까 싶다.
squiggle의 뜻을 찾아 보니 구불구불한 선이라고 한다. 감이 잘 안오는데, 'Add flair to your code'란 문구가 힌트를 준다. 아래 그립이 보여주는 squiggles와 달리 code squiggles는 미려하게 보이기 위해서가 아니라 코드 이해를 돕기 위한 장식이란 점이 차이가 있다.

protected int performCalculation(int value, int lowerLimit, int upperLimit, int offset) { ...
위와 같은 메소드가 있다면 사용자(client) 코드는 다음과 같다.
int result = performCalculation(10, 2, 23, 13);
사용자 코드만 보아서는 나열한 숫자를 어디에 쓰는지 보이지 않는데 이때 Code Squiggles로 장식할 수 있다.
int result = performCalculation(value(10), lowerLimit(2), upperLimit(23), offset(13));
의도가 명확해진다. 자주 쓰는 경우는 번거로울 수도 있겠지만, 다른 사람이 코드를 보는 경우까지 고려하면 주석보다는 좋은 방법이다.
Code Squiggles 구현 예는 다음과 같다.
public static <T> T value(T instance) {
return instance;
}
return instance;
}
위에 언급한 사례만으로 Code Squiggles 도입 가치를 판단하기는 빈약하다. 경험에 따른 상상력이 필요하다. 우선 assertThat과 hamcrest API의 예를 보면 가치가 있다. 특정 영역(domain)으로 한정해서 주요 어휘를 표준화해서 공용으로 쓸 때 코드를 쉽게 소통할 수 있다. 그런 점에서 범위를 한정해서 지속적으로 사용하고 정제하면 일종의 DSL(Domain Specific Language) 제작에 기여하지 않을까 싶다.
squiggle의 뜻을 찾아 보니 구불구불한 선이라고 한다. 감이 잘 안오는데, 'Add flair to your code'란 문구가 힌트를 준다. 아래 그립이 보여주는 squiggles와 달리 code squiggles는 미려하게 보이기 위해서가 아니라 코드 이해를 돕기 위한 장식이란 점이 차이가 있다.
