2010년 2월 28일 일요일

Method Chaining

메소드가 자신(this)을 리턴하여 메소드에 메소드를 연결하며 호출할 수 있게하는 기법의 정확한 이름은 Method Chaining이다(http://martinfowler.com/dslwip/MethodChaining.html). 이전 포스트에서 DML-style operations라고 표현해도 되나 의문을 가졌었는데 잘못된 것이다. Java 7에서는 이 기법이 아주 이디엄이 돼버렸는데 Chained Invocation으로 불린다.

 

소트웍스 앤솔러지를 보면 이와 비슷한 방법으로 마틴 파울러가 ruby 위에서 DSL을 구축해 나가는 과정의 글이 나온다. method chaining을 사용하여 문제영역을 표현하는 방법을 보이는데 언어위에서 DSL을 구축하는 방법으로 쓰이는 것이다(물론 ruby라는 동적 언어의 장점을 사용하여 DSL을 구축하는 방법이 추가되어 있다). 병특 시절 실용주의 프로그래머를 보면서 DSL에 매력을 느꼈었다. 그런데 좋긴 좋은데 언어 위에 다른 언어를 만들어 낸다는 내용을 읽으며 뭔소린가 하던 기억이 난다. 그리고 대신 Lex & yacc 펼쳤다는 ㅎ.

 

묵혀둔 질문 몇 개가 한 번에 해결됐다.

GUI 한 번 하려다가.

인터넷에서 찾아보고 결론은 shoes 괜찮아 보인다였다. 그러나 모든 사이트가 열리지 않자 이것 저것 찾아본 결과 shoes를 제작한 _why가 활동을 접었다는 내용을 찾았다. 이미 오래된 이야기였다.

 

On 19 August 2009, his online presence was drastically truncated; his accounts on Twitter and GitHub were shut down, along with many of his personally maintained sites. His projects have since been collected and centralized on the whymirror GitHub account. -- [출처 : 위키피디아]

 

 

_why가 트위터를 지우기 전에 마지막으로 작성했다던 내용

 

If you want your programming to be remembered, make a game.
Everything else you write will be obsolete in a year, and won't run on available systems in two or three.
Yet people spend huge amounts of energy on systems to keep games alive.
 
programming is rather thankless.
you see your works become replaced by superior works in a year.
unable to run at all in a few more. -- [출처 : kldp]

 

결국 Tcl/Tk 를 깔고 쓰고있긴 한데 씁쓸하다.

어머 5등

 

깜짝이야.

2010년 2월 16일 화요일

2010년 1월 28일 목요일

Flash Builder, Flex Builder에서 Task plugin 사용하기

google reader를 켰는데, 아니 이건 무슨 일이야? 얼마전에 적은 주석에 대한 글답변과도 같은 글이 올라와 있는 것이다.

 

내용은 Flex Builder, Flash Builder에서도 TODO, FIXME를 쓸 수 있는 플러그인이 있다는 것.

 

글은 Flex Builder 2 기준으로 쓰여있지만 Flash Builder에서도 된다.

 

1. Flex Builder 2 Task Plugin 1.0.0을 다운받고 압축을 푼다.

2. plugins 디렉토리를 Flash Builder plugins에 덮어씌운다.

3. Test.mxml 은 테스트 파일이니 필요없다.

4. Flash Builder 기준으로 다음을 실행한다.

 

메뉴 -> Window -> Other Views... -> General -> Tasks

2010년 1월 25일 월요일

주석 패턴

iPhone 개발을 위해 Xcode를 사용하던 무렵에는 이런 주석들을 많이 달았다.

 

// TODO:

// FIXME:

// ???:

// !!!:

 

개발툴인 Xcode에서 이렇게 달린 주석들은 따로 관리를 해주기 때문이다. 이클립스에서도 // TODO: 를 지원해주던 것으로 기억한다.

유닛테스트 코드 커버리지 수치 높이기

Coverage 20%에서 80% 올리기는 쉬웠는데 오늘 테스트 추가하고 전체 커버리지 확인하니까 83%다. ㅎ