책:실용주의 프로그래머 에서 참고할 내용
참고
- 코드 생성에 대해서는
Code Generation in Action(Jack Herrington, Manning, 2003) 이라는 책을 참고 - MS Word 등으로 문서를 만들고 그 안에 포함된 테스트를 자동으로 실행할 수 있다. http://fit.c2.com 와
FIT for Developing Software(Prantice-Hall, 2005)를 참고 - 싱글톤의 적절한 사용법에 대해서는 레인스버거(J.B.Rainsberger)의
Use Your Singletons Wisely(http://www-128.ibm.com/developerworks/webservbices/library/cosingle.html)을 참고 Art of UNIX Programming(에릭 S. 레이몬드, 정보문화사, 2004)- 포스트잇과 같은 로우테크 툴을 이용한 프로토타이핑에 대해 탁월한 서적이 있다.
Paper Prototyping(Corolyn Snyder, Morgan Kaufman, 2003)을 참고 - 포스트잇의 활용법에 대해서는
포스트잇 100% 활용법(데이빗 스트레이커, 윈윈북스, 2004)를 추천 - 슈레이즈(Michael Schrage)는
초일류 기업의 성공 비밀, 시리어스 플레이(세종서적, 2001)에서 프로토타이핑 속도가 혁신에 뛰어난 조직과 그렇지 못한 조직을 결정짓는 주된 요소라 말한다. 생각하는 프로그래밍(인사이트, 2003, 원제는 Programming Pearls)을 쓴 존 벤틀리(Jon Bentley)는 그 책의 후속작More Programming Pearls(Addison Wesley, 1988)에서 작은 언어(Little Language)에 대해 하나의 칼럼을 할애, 탁월한 설명을 한다. (이 칼럼은 CACM 아카이브에서 볼 수 있다.)- ‘밑에서부터 프로그래밍 하기’ (http://www.paulgraham.com/progbot.html)
- 추정과 리스크 관리에 대해 더 알고 싶다면 톰 디마르코와 티모시 리스터의
소프트웨어 프로젝트에서의 리스크 관리(인사이트, 2004, 원제는 Waltzing with Bears)를 참고 - 빌드 자동화에 대한 자세한 내용은
실용주의 프로그래머를 위한 프로젝트 자동화(마이크 클라크, 인사이트, 2005)에 잘 정리되어 있다. - 가장 널리 쓰이는 SCCS 가운데 하나인 CVS 에 대해서는
실용주의 프로그래머를 위한 버전 관리 using CVS를 참고 - 로버트 C. 마틴이 쓴
Agile Software Development(Prentice Hall, 2002, 번역서는 ‘소프트웨어 개발의 지혜’) - 리팩터링에 대해서는 마틴 파울러의
Refactoring(대청, 2002) 외에Refactoring Workbook(William C. Wake, Addision Wesley, 2004),Refactoring to Pattern(Joshua Kerievsky, Addison Wesley, 2005),테스트 주도 개발(켄트 백, 인사이트, 2005) 등의 책을 참고 - 유스 케이스는
Writing Effective UseCases(Addison-Wesley Professional, 2000)을 참고 - 제랄드 와인버그의
Are Your Lights On?(Dorset House, 1990)은 문제가 뭔지 생각하는 데에 도움을 주는 책이다.
공부해 볼 언어
- Haskell
- Lisp
- Smalltalk
- Rubu/Python
- Erlang
- Prolog
- Self
전문가 단체
- Association for Computing Machinery (ACM)
- IEEE 컴퓨터 협회 (IEEE Computer Society)
정기 간행물
- IEEE Computer
- IEEE Software
- Communications of the ACM (CACM)
- SIGPLAN
- Dr. Dobbs Journal
- The Perl Journal
- Software Development Magazine
책
분석과 설계
- Object-Oriented Software Construction, 2nd Edition
- Design Patterns
- Analysis Patterns
팀과 프로젝트
- The Mythical man Month
- Dynamics of Software Development
- Surviving Object-Oriented Projects: A Manager’s Guide
특정한 환경
Unix
- Advanced Programming in the Unix Environment
- Unix Network Programming
Windows
- Win32 System Services
- Programming Windows
C++
- Effective C++
- More Effective C++
- Large-Scale C++ Software Design
- Advanced C++ Programming Styles and Idioms
웹
- Slashdot (www.slashdot.org)
- Cetus Links (www.cetus-links.org)
- WikiWikiWeb (www.c2.com)
편집기
- Emacs (www.gnu.org)
- XEmacs (www.xemacs.org)
- vi (www.vim.org)
- elvis 편집기
- Emacs Viper 모드
컴파일러, 프로그래밍 언어, 개발 도구
- GNU C/C++ 컴파일러 (www.gnu.org/software/gcc/gcc.html)
- Java (java.sun.com)
- Perl (www.perl.com)
- Python (www.python.org)
- SmallEiffel (smalleifeel.loria.fr)
- ISE Eiffel (www.eiffel.com)
- Sather (www.icsi.berkeley.edu/~sather)
- VisualWorks (www.cincom.com)
- Squeak (www.squeak.org)
- TOM 프로그래밍 언어 (www.gerbil.org/tom)
- Beowulf 프로젝트 (www.beowulf.org)
- iContract - Java 언어용 계약에 의한 설계 (www.reliable-systems.com)
- Nana - C 와 C++를 위한 로깅과 단정(assertion) 기능을 제공하는 라이브러리 (www.gnu.org/software/nana)
- DDD - Data Display Debugger (www.gnu.org/software/ddd)
- John Brant 의 리팩터링 브라우저 (st-www.cs.uiuc.edu/users/brant/Refactory)
- DOC++ 문서 생성기 (www.docpp.sourceforge.net)
- xUnit - 단위 테스트 프레임워크 (www.XProgramming.com)
- Tcl 언어 (www.scriptics.com)
- Expect - 대화형 프로그램 자동화 프로그램 (expect.nist.gov)
- T Spaces (www.almaden.ibm.com/cs/TSpaces)
- javaCC - 자바 컴파일러 (https://javacc.dev.java.net)
- bison 파서 생성기 (www.gnu.org/software/bison/bison.html)
- SWIG - Simplified Wrapper and Interface Generator
- The Object Management Group, Inc. (www.omg.org)
- UWIN 개발 도구들 (www.research.att.com/sw/tools/uwin)
- Cygnus 사의 Cygwin 도구들 (www.cygwin.com)
- Perl Power Tools (sourceforge.net/projects/ppt)
소스코드 관리 도구
- RCS - Revision Control System (www.gnu.org/software/rcs/rcs.html)
- CVS - Concurrent Version System (www.cvshome.org)
- Aegis 트랜잭션 기반 형상 관리 (aegis.sourceforge.net)
- ClearCase (www.rational.com)
- MKS Source Integrity (www.mks.com)
- PVCS 형상 관리 (www.merant.com)
- Visual Sourcesafe (www.microsoft.com)
- Perfoce (www.perfoce.com)
기타 도구
- WinZip - 윈도우용 압축 유틸리티 (www.winzip.com)
- Z 셸 (www.zsh.org)
- Unix 시스템용 공개 SMB 클라이언트 (www.samba.org)
논문과 출판된 글
- The comp.object FAQ
- eXtreme Programming
- 엘리스테어 코번(Alistair Cockburn)의 홈페이지
- 마틴 파울러(Martin Fowler)의 홈페이지
- 로버트 마틴(Robert Martin)의 홈페이지
- Aspect-Oriented Development
- JavaSpaces 명세 (java.sun.com/developer/products/jini/index.jsp)
- Netscape 소스코드 (www.mozilla.org)
- Jargon File (www.jargon.org)
- 에릭 레이몬드(Eric S. Raymond)의 글 (http://catb.org/~esr)
- 성당과 시장(The Catherdral and the Bazzar)
- 사고공간을 개척하기(Homesteading the Noosphere)
- K 데스크톱 환경 (www.kde.org)
- GNU Image Manipulation Program (GUN 이미지 조작 프로그램) (www.gimp.org)
- 디미터(Demeter) 프로젝트 (www.ccs.neu.edu/research/demeter)
기타
- GNU 프로젝트 (www.gnu.org)
- 웹 서버 정보 (www.netcraft.com/survey/server.html)
댓글 없음:
댓글 쓰기