사용자 삽입 이미지

출처- 위키북스

조엘이 쓴 책 중 국내에 번역되는 3번째 책이다. 이 책은 기술적인 면보다는 사람에 대한 것인듯 하다. 아마도 사람을 평가하고 어떻게 팀원을 뽑는지에 대한 내용일 듯 하다.

관리자 급에 필요한 책인듯 하지만 개발자도 읽어보면 도움이 될듯하다. 오늘의 개발자는 내일의 관리자일테니...

다만 조엘 온 소프트웨어 시즌2 라고 부제를 붙인 것은 좀 과하지 않나 싶다. 원서에는 이런 부제가 붙어있지 않다. 나중에 조엘이 정말로 조엘 온 소프트웨어 2탄을 출간하면 난감해지지 않을까?


출판사 페이지
Posted by lispholic
,
swt 와 jface 로 만든 프로그램에서 예외가 발생했을 때 프로그래머가 이에 대한 처리를 제대로 하지 않으면 어떻게 될까?


import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;


public class SwtMain {

/**
* @param args
*/
public static void main(String[] args) {
Display d = new Display() ;
Shell s = new Shell(d) ;

Button btn = new Button(s , SWT.PUSH) ;

btn.setText("throw") ;

btn.addSelectionListener(
new SelectionListener() {

public void widgetDefaultSelected(SelectionEvent arg0) {
// TODO Auto-generated method stub

}

public void widgetSelected(SelectionEvent arg0) {
throw new RuntimeException("clicked") ;

}

}) ;


btn.pack() ;
s.pack() ;
s.open() ;

while( !s.isDisposed() ) {
if(!d.readAndDispatch()) {
d.sleep() ;
}
}
d.dispose() ;


}

}


import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;


public class JFaceMain extends ApplicationWindow {

public JFaceMain() {
super(null);
}

@Override
protected Control createContents(Composite parent) {

Button btn = new Button(parent , SWT.PUSH) ;

btn.setText("throw") ;

btn.addSelectionListener(
new SelectionListener() {

public void widgetDefaultSelected(SelectionEvent arg0) {
// TODO Auto-generated method stub

}

public void widgetSelected(SelectionEvent arg0) {
throw new RuntimeException("clicked") ;

}

}) ;
btn.pack() ;

return parent ;
}

public static void main(String [] args) {
JFaceMain win = new JFaceMain() ;
win.setBlockOnOpen(true) ;
win.open() ;
Display.getCurrent().dispose() ;
}
}


두 프로그램 모두 버튼을 하나 만든 후 버튼을 클릭하면 예외가 발생한다. swt 버전은 버튼을 클릭하면 커맨드창에 예외 트레이스가 표시되고 프로그램이 죽는다. 반면에 jface 버전은 예외 트레이스는 표시되지만 프로그램이 죽지는 않는다. 버튼을 또 눌러보면 정상적으로 동작한다. jface 는 내부적으로 뭔가를 더 처리해주는듯하다.
Posted by lispholic
,
사용자 삽입 이미지

출처 - 인사이트

   린 소프트웨어 개발에 관련된 또다른 책이다. 유사한 제목에 주제도 비슷하고 저자도 동일한 책이 비슷한 시기에 서로 다른 출판사에서 나왔다. 같은 출판사에서 시리즈책으로 출간했으면 모양새가 더 좋았겠지만, 뭐 아무렴어때. 번역만 좋으면 그만이다.

출판사페이지
김창준님의 소개글

Posted by lispholic
,