程序员修炼之道-实效Jerome目录1234序介绍注重实效的哲学注重实效的途径实效编程总结在此输入标题输入文字在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论““AndrewHuntDavidThomas介绍•Pragmatic–“doing”•“新手圣经”-正确的指导原则•软件哲学,知识扩展,思考问题,打造个人工作坏境,项目步骤分析,团队中的实效•“朴素的道理”注重实效程序员特征•早期采纳者、快速改编者•好奇•批判的思考者•有现实感•多才多艺Tips1关心你的技艺CareaboutyourCraftTips2思考!你的工作Think!AboutYourWork.我的源代码被猫吃了•负责的方法论-必须完成事情,确定前进方向-控制风险,引入更好的测试-应急方案,需要哪些资源在所有的弱点中,最大的弱点就是害怕暴露弱点Tips3提供各种选择,不找蹩脚的借口。软件的熵•熵–某个系统中“无序”的总量,熵过大导致“软件腐烂”(Softwarerot)•决定软件熵的因素?-软件项目文化•破窗户–低劣的设计、错误决策、糟糕的代码-不要容忍破窗户,要么用木板钉起来•灭火与防火石头汤与煮青蛙•让大家瞥见未来,才能让他们聚集在周围。•记住大图景,关注小变化。足够好的软件•足够好的评分人员永远是用户。让他们决定何时足够好。•让用户参与权衡,化质量问题为需求问题。•知道何时止步你的知识资产•软件工程师的价值=有实效的资产•对比管理金融资产•定期投资–习惯•多元化–分散投资•管理风险-评估与平衡•低买高卖–新技术出现前学习它交流•提问,先问自己•明确你的问题–想法与表达策略•得体的组织语言•提问的方式–面谈or邮件•耐心等候•讲解,了解你的听众•他们想学到什么•他们有多少经验•他们需要多少细节•如何确实他们明白了你的观点•同时也是倾听者重复的危害•系统中的每一项知识都必须具有单一,无歧义,权威的表示。•强加的重复-代码注释,代码与文档,接口与实现•无意的重复-使用访问器•无耐性的重复-防止复制粘贴•模块开发功能重复-交流正交性•软件系统解耦性-提高效率,降低风险。•正交开发团队•设计检验•编码与重构注重实效的途径曳光弹•黑暗中的射击经典做法–逐一列出需求,确定所有未知因素,并限定环境曳光代码-实现完整结构的基本功能模块,错误检查,结构,注释,自检。项目时间估计•最快方法–问已经做过类似项目的人•确定项目范围•建立模型并分解组件•分析相似组件所用时间•预留20%额外时间•“等会儿回答”深思熟虑的编程•总是意识到你在做什么•按照计划行事•依靠可靠的原型•建立良好的文档并确保与代码一致。•测试你的代码也要测试你的假定。•工作优先级划分,时间花在最重要部分。•不做历史奴隶,创建重构。在此输入标题输入文字在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论““Thanks!