阅读完《程序员修炼之道》摘录的概要
- Care About Your Craft 关心你的技艺
- Think! About Your Work 思考!你的工作
- Provide Options,Don't Make Lame Excuses 提供各种选择,不要找蹩脚的借口
- Don't Live with Broken Windows 不要容忍破窗户
- Be a Catalyst for Change 做变化的催化剂
- Remember the Big Picture 记住大版图
- Make Quality a Requirements Issue 使质量成为需求问题
- Invest Regularly in Your Knowledge Portfolio 定期为你的知识资产投资
- Critically Analyze What Read and Hear 批判地分析你读到和听到的
- It's Both What You Say and Way You Say It 你说什么和你怎么说同样重要
- DRY- Don't Repeat Yourself 不要重复你自己
- Make It Easy to Reuse 让复用变得容易
- Eliminate Effects Between Unrelated Things 消除无关事物之间的影响
- There Are No Final Decisions 不存在最终决策
- Use Tracer Bullets to Find the Target 用曳光弹找到目标
- Prototype to Lean 为了学习而制作原型
- Program Close to the Problem domain 靠近问题领域编程
- Estimate to Avoid Surprise 估算,以避免发生意外
- Iterate the Schedule with the Code 通过代码对进度表进行迭代
- Keep Konwledge in Plain Text 用纯文本保存知识
- Use the Power of Command Shells 利用命令Shell的力量
- Use a Single Editor Well 用好一种编辑器
- Always Use Source Code Control 总是使用源码控制
- Fix the Problem,Not the Blame 要修正问题,而不是指责
- Don't Panic 不要恐慌
- "Select" Isn't Broken "Select"没有问题
- Don't Assume it - Prove It 不要假定,要证明
- Learn a Text Manipulation Language 学习一种文本操作语言
- Write Code That Writes Code 编写能编写代码的代码
- You Can't Write Perfect Software 你不可能写出完美的软件
- Design with Contracts 通过合约进行设计
- Crach Early 早崩溃
- If it Can't Happen,Use Assertions to Ensuer That It Won't 如果它不可能发生,用断言确保它不会发生
- Use Exceptions for Exceptional Problems 将异常用于异常的问题
- Finish What You Start 要有始有终
- Minimize Coupling Between Moudules 使模块之间的耦合减至最少
- Configure,Don't Integrate 要配置,不要集成
- Put Abstraction in Code,Details in Metadata 将抽象放进代码,细节放进元数据
- Analyze Workflow to Improve Concurrency 分析工作流,以改善并发性
- Design Using Services 用服务进行设计
- Alwasy Design for Concurrency 总是为并发进行设计
- Separate Views from Models 使视图与模型分离
- Use Blackboards to Coordinate Workflow 用黑板协调工作流
- Don't Program by Coincidence 不要靠巧合编程
- Estimate the Order of Your Algorithms 估算你的算法的阶
- Test Your Estimates 测试你的估算
- Refactor Early,Refactor Often 早重构,常重构
- Design to Test 为测试而设计
- Test Your Software,or You User Will 测试你的软件,否则你的用户就得测试
- Don't User Wizard Code You Don't Understand 不要使用你不理解的向导代码
- Don't Gather Requirements-Dig for Them 不要搜集需求-挖掘它们
- Work with a User to Think Like a User 与用户一同工作,以像用户一样思考
- Abstractions Live Longger than Details 抽象比细节活得更长久
- Use a Project Glossary 使用项目词汇表
- Don't Think Outside the Box-Find the Box 不要在盒子外面思考-要找到盒子
- Listen to Nagging Doubts-Start When You're Ready 倾听反复出现的疑惑-等你准备好再开始
- Some Things Are Better Done than Described 对有些事情“做”胜于描述
- Don't Be a Slave to Formal Methods 不要做形式方法的奴隶
- Expensive Tools Do Not Produce Better Designs 昂贵的工具不一定制作出更好的设计
- Organize Around Functionality,Not Job Functions 围绕功能、而不是工作职务进行组织
- Don't Use Mannual Procedures 不要使用手工流程
- Test Early.Test Often.Test Automatically. 早测试,常测试,自动测试
- Coding Ain't Done Til All the Tests Run 要到通过全部测试,编码才算完成
- Use Saboteurs to Test Your Testing 通过“蓄意破坏”测试你的测试
- Test State Coverage,Not Code Coverage 测试状态覆盖,而不是代码覆盖
- Find Bugs Once 一个bug只抓一次
- Treat English as Just Another Programming Language 把英语当作又一种编程语言
- Build Documentation In,Don't Bolt It On 把文档建在里面,不要栓在外面
- Gently Exceed Your Users' Expectations 温和地超出用户的期望
- Sign Your Work 在你的作品上签名