
<능률적인 프로그래머 / 닐포드, 김현수역 / 지앤선>
개발자로서 할 수 있는 생산성 향상의 팁을 알려주는 책
아래는 간단한 요약정리.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
템플릿 지원 - TextMate, E-Text
이클립스 내 소스검색 - Ctr+Sft+T, Ctr+Sft+R
VS 추가기능 플러그인 - Resharper(상용)
키 매크로 도구 - 윈도우용 : AutoHotKey
한주에 도구 하나씩 익혀보기
정숙시간 갖기 - 달력등에 회의로 표시 ex)오전 9~11까지, 오후 3~5시 까지
사용중인 창 외의 프로그램을 어둡게 하기(집중효과)
- 윈도용: Jediconcentrate, 맥용: Doodim
구글 데스크탑 서치 이용 검색 강화 - 구글을 이용한 내컴퓨터 검색
특정 디렉터리를 root로 보기 - RootedView
버전관리 - Tortoise
시작관리자(어플이름으로 검색 및 실행) - Launchy, Colibri, 뚜내
윈도우 파워토이 -
http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx
디렉토리간 연결 - Junction, Gnome : Alt+F2
클릭보드 - 윈도용: CLCL, 맥용: JumpCut 상용: JClip
명령 프롬프트 탐색 막대 - Command Prompt Explorer Bar -> Ctrl+M
-->탐색기에 cmd를 붙인다.
이클립스 단축키 목록 보기 - Ctr+Sft+L
단축키 적응하기 - KeyPrompter : 단축키 사용을 강제함
마우스로 기능 실행시 이를 되돌려 단축키로 3번씩 반복
작업공간 분리 - Virtual Desktop Manager
비스타용: Vista Virtual Desktops
자바용 CI - Buildix
웹사이트 상호작용 자동화 - CU기
RSS 피드 연동 - Pipes
Ant를 업무용으로 사용하기 - Ant, Gant
웹페이지 자동 사용자 동작 - Selenium, 플러그인: TestRunner, http://www.openqa.org
윈도 비스타 파워쉘 이용
로깅 프레임웍 - Log4J / Log4Net
정식 빌드 머신 두기
크루즈컨트롤 : Cruisecontrol.sourceforge.net
뱀부(Bamboo), 허드슨(Hudson), Teamcity, LuntBuild
이크립스 플러그인 관리 소프트웨어 - Pulse
비스타 심볼릭 링크 - mklink 윈도용: Junction
가상화 사용 프로그램 사용 - 개발 이미지 분리
코드관계 생성 - yDoc
DB 스키마 관계 생성 - SchemaSpy
버그 찾는 프로그램 - FindBugs, PMD + CPD : 코드체크인시마다 의무실행하기
측정지표 산출 - 파놉티코드 Panopticode
정보방열판 - 프로젝트 상태 정보를 눈에 잘 띄는 곳에 둔다.
동적언어 순환복잡성 도구 - 사이쿠로(Saikuro)
루비의 코드 질 측정 - Flog
YAGNI(You Ain't Gonna Need It) - 쓸데 없을 걸. 당장 필요한 것만 작성하라
-->투기성 코드는 복잡성을 더할 뿐이다.
복잡성이 낮다는 것은 리팩토링시 복잡하지 않다는 것이다.
DSL(Domain Specific Language)
--> Jaskell, Neptune
디미터의 법칙 - 가장 친한 친구하고만 소통할 것
--> 개체 자신의 메서드, 매개 변수로 넘어온 개체의 메서드, 메서드 내 생성 개체의 메서드
추천 필독서 - 맨먼스 미신, 실용주의 프로그래머, 스몰토크 최상의 방법 패턴
언어에 의존적인 관용코드 피하기 - 새로운 언어를 사용하면 새로운 언어법칙을 따르라
긴 변수에 밑줄로 구분하면 읽기 쉽다 - thisIsAnApple 보다 this_is_an_apple 가 읽기 쉽다.
유창한 인터페이스 DSL 양식을 사용하여 코드를 서술하라 - 비개발자 고려 인터페이스
반 객체를 고려하라 : 팩맨의 유령객체에 인공지능보다 미로에 인공지능을 넣는게 효율적.
그루비로 자바의 부족한 기능을 채워보자 - 언어의 성능 향상에 도움되는 언어 배우기
다종언어 프로그래밍 - 범용언어 이외에 하나 이상의 특수목적 언어를 사용한 App
-->Java + Jython + Groovy 등..
멀티프로세서를 위한 자바 책 - 자바 병렬 프로그래밍(에이콘)
함수언어(functional language)는 메모리 중심 언어(imperative languages)의 많은 결점에서 자유롭다. - 대표적인 함수언어 : Haskell, OCaml, erlang, SML
함수 언어는 스레드로부터 안전하고 견고한 코드 작성이 용이하다.
자스켈(Jaskell)은 자바 플랫폼에서 돌아가는 하스켈 언어 - 하스켈 코드로 자바 바이트 코드 생성
능률적인 언어 배우기 - 그루비, JRuby, Jython
최종사용자의 요구에 더 가깝게 조정하기 위해 도메인 특정언어를 사용하라
편집기 자격 조건
매크로 레코더 지원
명령줄에서 실행 가능할 것
정규식 검색 및 치환기능
추가 잘라내기, 복사하기 명령
다중 레지스터 지원
플랫폼 간 호환성
편집기 후보
VI, Emacs, JEdit, Textmate, eEditor
진짜 스크립트 언어는 루비, 파이썬, 그루비, 펄 등이다.
프로그래밍이란 공학과 기예가 고도로 결합되어 좋은 개발자가 되자면 대단히 폭넓은 기술이 필요하다. 분석적 사고, 다양한 수준의 세부에 이르는 극도의 고나심과 미 의식, 거시적 또는 미시적 문제, 동시 자각, 현업 사용자보다도 훨씬 저수준의 업무 흐름까지 이해해야 한다.
기초도구
1. 시그윈(CygWin) - http://www.cygwin.com
2. 유닉스 명령줄의 적응 및 활용