01. Installed (입문)
10. 신속한 설계회의
- 학습은 처음 몇 분 내에 일어남
- 테스트 코드를 먼저 작성
- 여러가지 대안을 놓고 논쟁하는데 시간소비 하지 마라.
- 상대의 의견을 끝까지 경청하라
- 여러가지 중 효과가 있는 가장 간단한 것만 고른다.
11. 프로그램 작성
- 코드 공동 소유 : 내 자신의 코드를 변경하는 것은 두렵지 않다. 코드는 나만의 것이다.
- 단순한 설계 : 단순함이란 것은 여러분이 생각하는 것보다 더 복잡하다. 그렇지만 그만한 가치는 있다.
- 모든 테스트를 실행한다.
- 모든 아이디어를 표현한다.
- 중복된 코드를 포함하지 않는다.
- 최소한의 클래스와 메소드를 가진다.
- 리팩토리 : XP에서는 코드를 항상 단순한 상태를 유지해서 프레임 워크와 코드를 지원하는 데 드는 투자를 최소화한다. 필요한 유연성은 리팩토링을 통해서 유지한다.
- 지속적 통합 : 통합은 결국은 영원히 연기할 수 있는 성질의 것이 아니다. 연기하기 보다는 항상 통합하자
- 코드 작성 표준 : 난 내산의 코드를 항상 읽을 수 있다. 잠깐만! 물론 그것은 전부 내 코드이다.
- 들여쓰기 : 일관성있는 들여쓰기 형식
- 대문자 : 일관된 방식으로 대소문자 사용
- 주석 : 가능한 적은 주석, 의도를 코드에 집중
- 메소드의 크기 : 작은 크기의 메소드
- 이름 : 통일된 명명법으로 빠른 진행속도
- 주당 40시간 : 시간 외 근무시 형편없는 코드, 테스트 하지 않는 코드, 리팩토링 안된 코드들 발견
- 요약 : 건전한 프로젝트 유지, 품질 향상, 단순한 설계와 리팩토링으로 짝으로 작업. 표준방식으로 코드 작성 및 의사소통. 항상 통합 작업 한다.
2008/01/28 02:40:29
2008/01/29 03:14:39
- 코드품질
- 모든 테스트를 실행한다 : 각각의 클래스와 메소드를 테스트를 통해 검증 한다.
- 모든 아이디어를 표현한다 : 코딩이 끝난 뒤 프로그램은 모든 아이디어를 분명하게 나타낸다.
- 모든 것을 한번만, 단 한 번만 말한다 : 프로그램은 작게 만들 수 있는 기회가 있으며, 수정된 코드는 잊어 버릴수 있다.
- 클래스와 메소드의 크기를 최소화 한다 : 클래스와 메소드를 최소화 하기는 하지만, 정학성, 표현성, 또는 코드의 중복성의 대가를 치르면서까지 해서는 안된다.
12. 짝 프로그래밍 : 익스트림프로그래밍 팀에서 두 프로그래머는 한 대의 컴퓨터 앞에 앉아 모든 제품 코드를 함께 작성한다.
- 양이나 질적인 면에서 더 나은 코드 생성
- 프로그램 작성자는 '드라이버', 옆에서 돕는 자는 '파트너'
- 드라이버와 파트너는 동일한 전략으로 임해야 한다
- '당신'이란 말보다는 '우리'라는 말 - "우린 그 매개변수 이름을 좀 더 명확히 할 필요가 있겠습니다."
- 파트너!! 꼭 필요한 경우를 제외하고는 드라이버의 아이디어를 무시 하지 말라!!! 다른 아이디어가 있다면!! 명령이 아닌 청유로!!
"나한테 아이디어가 있어요 잠깐 동안 그 방식으로 해보죠, 그리고 나서 다른 것도 시도 해 보는게 어때요?" - 모니터를 향해 두개의 의자를 나란히 놓는 것, 그것이 답이다.
- 팀 지식은 더 빨리 성장하고 일은 더 재미있어진다.
13. 단위 테스트 : 익스트림 프로그래머는 자동화된 테스트로 잘못될 가능성이 있는 모든 것을 테스트 하여 향상 완벽하게 실행 되도록 하여야 한다.
- 팀은 모든 클래스의 소유를 공유
- xUnit를 사용하여 단위테스트를 하라.
- 프로그래머는 다른 사람이 작업을 끝낼 때까지 기다리는 것을 원치 않는다. => FakeReturnValue?? 테스트 클래스 생성 ~~
- DB test? 테스트 파일 데이터~ 메모리 테이터 이용하여 테스트
- 시스템분석기를 통하여 필요이상의 작업을 하는 시스템의 느린 부분 수정하면 빠른 시스템, 빠른 테스트, 이 두개를 잡는다.
- 클래스를 어찌 테스트해야 할지 모르겠다면 팀원과 모여 대화하라.
- 한 나무의 잎의 벌레를 찾는건 쉽지만, 숲으로 채워진 후 그 벌레는 찾기는 힘들다.
- 어떤 테스트가 필요한지는 스스로 배워라.
- 클래스 간의 상호작용 할 때에만 나타나는 에러는 어떻게 하는가? : 이부분은 더 까다로운 테스트 망을 쳐서 열심히 문제의 뒤를 쫓는다.
- 실시간 에러나 다중 쓰레드 에러는 어떻게 하는가? : 가능한 가장 단순한 설계를 하고 많은 사람들이 이를 살펴보도록 한다.
- 내것들을 테스트 할수 없다? => 모든 코드는 테스트가 가능하다!!
2008/01/29 04:44:11
History
Last edited on 05/15/2009 15:10 by LogerC
Comments (0)