Archive for 10월, 2012

[1300K] 읽기 좋은 코드가 좋은 코드다

2012/10/18

The Art of Readable Code / 더스틴 보즈웰, 트레버 파우커 / O’Reilly / 한빛미디어

가독성의 기본정리
코드는 다른 사람이 그것을 이해하는데 들이는 시간을 최소화 하는 방식으로 작성되어야 한다.

이름에 정보담기
지나치게 보편적인 단어보다는 적합한 단어를 찾는다 ( send -> deliver, start -> open/create … , retval/tmp -> sum_squre )

추가적인 정보, 단위를 포함하는게 좋다 ( delay_secs, size_mb .. id -> hex_id , html -> html_utf8 )

본인이 지은 이름을 “다른 사람들이 다른 의미로 해석할 수 있을까?” 라는 질문을 던져보며 철저하게 확인해야 한다.

코드 미학의 원리
. 코드를 읽는 사람이 이미 친숙한, 일관성 있는 레이아웃을 사용하라.
. 비슷한 코드는 서로 비슷해 보이게 만들어라.
. 서로 연관된 코드는 하나의 블록으로 묶어라.
. 코드를 문단으로 쪼개라. (비슷한 생각을 하나로 묶어 성격이 다른 생각과 구분한다. .. )

주석의 목적은 코드를 읽는 사람이 코드를 작성한 사람만큼 코드를 잘 이해하게 돕는 데 있다 .
. 코드에서 빠르게 유추할 수 있는 내용은 주석으로 달지 말라. (설명 자체를 위한 설명을 달지말라)
. 나쁜 이름에 주석을 달지말고 대신 이름을 고쳐라.
. 감독의 설명을 포함하라 / 코드의 결함을 설명하라 /
. 코드를 읽는 사람의 입장이 되어라.
.큰 그림에 대한 주석 ( 요약 주석)
. 코드의 의도를 명시하라.

코드재작성하기
. 상관없는 하위문제 추출하기 ( 유틸리티, 일반적인 목적의 코드, 특정 프로젝트를 위한 기능 )
. 인터페이스 단순화 ( 필요에 따라 인터페이스 형태를 바꾸기 )
. 지나치게 추출하는지는 가독성 비용을 고려해서..

테스트
. 필요한 작업을 수행하는 범위의 가장 명확하고 간단한 테스트 값을 선택하라.
. 테스트함수의 이름 : 테스트 되는 클래스, 함수, 상황, 버그를 담아야 한다.

[jqgrid] datepicker customizing : add unlimit button

2012/10/17

funtion : you can select unlimited date from calendar ( 9999-12-31)

1. make unlimited button generation function

function unlimited_datepicker(input){
  setTimeout( function() {
    var btn = $('<button class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" type="button">Unlimit');
    btn.unbind("click").bind("click" , function(){
      $(input).val("9999.12.31");
      $(input).datepicker("hide");
    });
    btn.appendTo( $(input).datepicker("widget").find(".ui-datepicker-buttonpane"));
  }, 1);
}

2. add datepicker option

$("#dtExpiration").datepicker({ showButtonPanel: true,
   beforeShow: unlimited_datepicker, onChangeMonthYear: unlimited_datepicker
});

3. define html input

<input id="dtExpiration" type="text" name="dtExpiration" />

link – Preventing The I18n Process of Spring MVC from Falling Back to System Locale

2012/10/11

http://www.petrikainulainen.net/programming/tips-and-tricks/preventing-i18n-process-of-spring-mvc-from-falling-back-to-system-locale/

from mobile

link – Resource Bundle Tricks and Best Practices

2012/10/11

http://blog.eisele.net/2012/08/resource-bundle-tricks-and-best.html?m=1

from mobile