프로그램언어 썸네일형 리스트형 [ 안드로이드 ] 프로그래밍 설정 안드로이드에 대해 공부 해보려고 준비중입니다. 더보기 pysqlite error [ src/connection.h error ] sqlite을 사용하기 위해서는 pysqlite을 사용해야 합니다. ( trac 설치시 ) 그런데 컴파일 도중에 error가 발생하였습니다. In file included from src/module.c:24: src/connection.h:26:40: error: /usr/include/python/Python.h: 그런 파일이나 디렉토리가 없습니다 src/connection.h:27:22: error: pythread.h: 그런 파일이나 디렉토리가 없습니다 src/connection.h:28:26: error: structmember.h: 그런 파일이나 디렉토리가 없습니다 In file included from src/connection.h:30, from src/module.c:24: src/cac.. 더보기 실무에서 경험한 리팩토링 능력. 실무자들의 리팩토링의 차이점은 경험에 밑 바탕을 두고 있습니다. 초보자들이 실수 할 수 있는 부분들이 어느날 1~2년 전 개발 소스를 볼 때, 손발이 오그라드는 경험을 해보셨을꺼라 생각이 됩니다. 왜 이렇게 했지, 또는 주석이 없어서 본인이 개발을 해놓고도 무슨 말이야 고민을 해야되고, 웃지 못할 상황이 한 두가지가 아니였습니다. 1. 경험에 따른 리팩토링 말 그대로 개발한 내용을 가지고 리팩토링을 하나 둘씩 적용해 보는 경우 입니다. 개발된 소스를 가지고 이해가 안가는 부분들이 있으면, 현재 개발하고 있는 내용에 개선하도록 노력하는 것입니다. 주석이 부족하다던지 당시 경험 또는 실력 부족으로 인한 내용을 하나 둘씩 적용하고 그에 따른 내용을 정리하는 것입니다. 이 부분에 대해 어느정도 동의 하실꺼라 생.. 더보기 [ flex ] 실적 트레이닝 북 - 3. 인터페이스 레이아웃하기. 컨테이너 규칙 VBox 자식들이 세로방향으로 레이아웃된다. 각각의 자식은 이전 자식의 아래에 그려진다. HBox 자식들이 가로방향으로 레이아웃된다. 각각의 자식은 이전 자식의 오른쪽에 그려진다. Canvas 자식들이 개발자가 지정한 x, y 좌표에 그려진다. 좌표 지정을 안하면 모든 자식은 컨테이너의 좌측 상단에 그려진다. Application layout 속성에서 VBox, HBox과 Canvas 컨테이너의 역할을 한다. Title 필요하다면 새로운 행과 컬럼을 추가하여 자식들을 한 개 이상의 세로 컬럼 또는 가로행으로 배치된다. 모든 Title 컨테이너 셀은 같은 사이즈를 가지며, 정사각형 그리드 안에 정렬한다. Panel Box 컨테이너의 서브클래스이며, 지정된 layout 속성에 따라서 HBox,.. 더보기 [ Refactoring ] Split Temporary Variable 루프 안에 있는 변수나 collecting temporary variable도 아닌 임시 변수에 값을 여러 번 대입하는 경우에는, 각각의 대입에 대해서 따로따로 임시변수를 만들어라. double temp = 2 * (_height + _width); System.out.println (temp); temp = _height * _width; System.out.println (temp); final double perimeter = 2 * (_height + _width); System.out.println (perimeter); final double area = _height * _width; System.out.println (area); * collecting temporary variable =.. 더보기 [ Refactoring ] Introduce Explaing Variable 복잡한 수식이 있는 경우에는, 수식의 결과나 또는 수식의 일부에 자신의 목적을 잘 설명하는 이름으로 된 임시변수를 사용하라. if ( (platform.toUpperCase().indexOf("MAC") > -1) && (browser.toUpperCase().indexOf("IE") > -1) && wasInitialized() && resize > 0 ) { // do something } final boolean isMacOs = platform.toUpperCase().indexOf("MAC") > -1; final boolean isIEBrowser = browser.toUpperCase().indexOf("IE") > -1; final boolean wasResized = resize > 0;.. 더보기 [ Refactoring ] Replace Temp with Query Method 어떤 수식의 결과값을 저장하기 위해서 임시변수를 사용하고 있다면, 수식을 뽑아내서 메소드로 만들고, 임시변수를 참조하는 곳을 찾아 모두 메소드 호출로 바꾼다. 새로 만든 메소드는 다른 메소드에서도 사용될 수 있다. double basePrice = _quantity * _itemPrice; if (basePrice > 1000) return basePrice * 0.95; else return basePrice * 0.98; if (basePrice() > 1000) return basePrice() * 0.95; else return basePrice() * 0.98; ... double basePrice() { return _quantity * _itemPrice; } 동기 임시변수는 그것이 사용되는.. 더보기 [ Refactoring ] Inline Temp 간단한 수식의 결과값을 가지는 임시 변수가 있고, 그 임시 변수가 다른 리팩토링을 하는데 방해가 된다면 이 임시변수를 참조하는 부분을 모두 원래의 수식으로 바꿔라 double basePrice = anOrder.basePrice(); return (basePrice > 1000) return (anOrder.basePrice() > 1000) 동기 대부분의 경우 Inline Temp는 Replace Temp with Query의 한 부분으로 사용된다. 진짜 동기는 그쪽에 있다. Inline Temp가 자신의 목적으로 사용되는 유일한 경우 메소드 호출의 결과값이 임시 변수에 대입되는 경우 임시 변수가 Extract Method와 같은 리팩토링에 방해가 된다면 인라인화 하라 절차 임시 변수를 final로 선.. 더보기 이전 1 ··· 3 4 5 6 7 8 9 ··· 20 다음