作者:(美国)罗伯物?C.?马丁(Robert C. Martin)
罗伯特?C.?马丁(Robert C.
Martin),也就是鲍勃大叔,从1970年开始就是一个程序员了。他是全球会议上的著名发言人,他的书包括:《代码整洁之道?(Clean
Code,Prentice Hall,2009)、《敏捷软件开发:原则、模式和实践》(Agile Software
Development:Prinoples,Patterns,and Practices,Prentice
Hall,1999)和《UML Java程序员指南》(UML for Java Programmers,Prentice
Hall,2003)。他是一个多产的作家,已经发表和出版了数百篇文章、论文和博客。他曾经是The C++
Report杂志的主编,也是敏捷联盟(Agile Alliance)的第一任主席。马丁创建并领导着Object
Mentor公司,拥有许多经验丰富的软件开发者和经理,主要业务是帮助企业完成他们的项目。
目錄:
Foreword xv
Preface xxi
Acknowledgments xxv
About the Author xxxi
On the Cover xxxiii
Pre-Requisite Introduction
Chapter 1 Professionalism
Be Careful What You Ask For
Taking Responsibility
First, Do No Harm
Work Ethic
Bibliography
Chapter 2 Saying No
Adversarial Roles
High Stakes
Being a “Team Player”
The Cost of Saying Yes
Code Impossible
CONTENTS
CONTENTS
Chapter 3 Saying Yes
A Language of Commitment
Learning How to Say “Yes”
Conclusion
Chapter 4 Coding
Preparedness
The Flow Zone
Writer''s Block
Debugging
Pacing Yourself
Being Late
Help
Bibliography
Chapter 5 Test Driven Development
The Jury Is In
The Three Laws of TDD
What TDD Is Not
Bibliography
Chapter 6 Practicing
Some Background on Practicing
The Coding Dojo
Broadening Your Experience
Conclusion
Bibliography
Chapter 7 Acceptance Testing
Communicating Requirements
Acceptance Tests
Conclusion
Chapter 8 Testing Strategies
QA Should Find Nothing
CONTENTS
The Test Automation Pyramid
Conclusion
Bibliography
Chapter 9 Time Management
Meetings
Focus-Manna
Time Boxing and Tomatoes
Avoidance
Blind Alleys
Marshes, Bogs, Swamps, and Other Messes
Conclusion
Chapter 10 Estimation
What Is an Estimate?
PERT
Estimating Tasks
The Law of Large Numbers
Conclusion
Bibliography
Chapter 12 Collaboration
Programmers versus People
Cerebellums
Conclusion
Chapter 13 Teams and Projects
Does It Blend?
Conclusion
Bibliography
CONTENTS
Chapter 14 Mentoring, Apprenticeship, and Craftsmanship
Degrees of Failure
Mentoring
Apprenticeship
Craftsmanship
Conclusion
Appendix A Tooling
Tools
Source Code Control
IDEEditor
Issue Tracking
Continuous Build
Unit Testing Tools
Component Testing Tools
Integration Testing Tools
UMLMDA
Conclusion
Index
內容試閱:
A kata usually comes in the form of a simple programming
problem to solve, such as writing the function that calculates the
prime factors of an integer. The point of doing the kata is not to
figure out how to solve the problem; you know how to do that
already. The point of the kata is to train your fingers and your
brain.I''ll do a kata or two every day, often as part of settling in
to work. I might do it in Java, or in Ruby, or in Clojure, or in
some other language for which I want to maintain my skills. I''ll
use the kata to sharpen a particular skill, such as keeping my
fingers used to hitting shortcut keys, or using certain
refactorings.Think of the kata as a 10-minute warm-up exercise in
the moming and a 10-minute cool-down in the evening.
COLLABORATION
The second best way to learn is to collaborate
with other people. Professional software developers make a special
effort to program together, practice together, design and plan
together. By doing so they learn a lot from each other, and they
get more done faster with fewer errors.This doesn''t mean you have
to spend 100% of your time working with others.Alone time is also
very important. As much as I like to pair program with others, it
makes me crazy if I can''t get away by myself from time to
time.
MENTORING
The best way to learn is to teach. Nothing will
drive facts and values into your head faster and harder than having
to communicate them to people you are responsible for. So the
benefit of teaching is strongly in favor of the teacher.