读书分享《程序员修炼之道》0.0几篇序
读书之前首先看到的内容,让大家知道这不是一本烂书,本书从项目管理,软件架构和设计、代码编写和测试,各方面都有精彩的阐述。序中的重点内容:
《领悟程序员的哲学》
l这不是一本只要读一遍的书
l给程序员做培训的首选材料
《再次阅读,感受颇多》
l公司新人的必备学习材料
l看似朴素的道理,实际是若干经验的总结
n看到了“破窗户”
’trepeatothers)
l知识资产的管理、沟通、交流。
《一切阅读都是误读》
l爱不释手
l作为书单的第一本
l嚼烂的东西也有新味道
《程序员升级必备》
l如果要成为一个好程序员,其实所需要的道理也多不了多少,只不过,当水平不够的时候,永远不能认识到那些朴素道理的重要性
l不逊于《代码大全》
l这是一本经得起时间沉淀的书
l注重实效的程序员应该不断学习
《程序员心底的小声音》
l高手的显著标志是能用正确的原则指导正确的行动本身
l实践、实践、不断实践
第一章注重实效的哲学1我的源码让猫给吃了
责任是你主动担负的东西
ProvideOptions,Don’tMakeLameExcuses
提供各种选择,而不是各种蹩脚的借口
不要说做不到:要说明能够做什么挽回局面。必须扔掉代码?可以讲讲重构的价值。要花时间建立原型,,来确定最好的前进路线?还是要引入更好的测试或自动化,防止问题再度发生?又或许是其他的额外资源。
2软件的熵
当软件中的无序增长时,程序员们称之为“软件腐烂”(softwarerot)。有许多因素可以促生软件腐烂。其中最重要的一个似乎是开发项目时的心理(或文化)。引出“破窗户理论”。
Don’tLivewithBrokenWindows
不要容忍破窗户
一扇破窗户——一段设计低劣的代码、团队必须在整个项目开发过程中加以忍受的一项糟糕的管理决策——就足以使项目开始衰败。如果你发现自己在有好些破窗户的项目里工作,会很容易产生这样的想法:“这些代码的其余部分也是垃圾,我只要照着做就行了。”项目在这之前是否一直很好,并没有什么关系。
3石头汤与煮青蛙
这是一种促成变化的策略,在有些情况下,你也许确切地知道需要做什么,以及怎样去做。整个系统就在你的眼前——你知道它是对的。设计出你可以合理要求的东西,好好开发它。一旦完成,就拿给大家看,人们知道,参与正在发生的成功要更容易,所以再增加其他功能就会容易的多,万事开头难的意思。
BeaCatalystforChange
做变化的催化剂
另一方面,石头汤的故事也是关于温和而渐进的欺骗的故事。我们都看见过这样的症状。项目慢慢地、不可改变地完全失去控制。大多数软件灾难都是从微不足道的小事情开始的,大多数项目的拖延都是一天一天发生的。系统一个特性一个特性地偏离其规范,一个又一个的补丁被打到某段代码上,直到最初的代码一点没有留下。
RemembertheBigPicture
记住大场景
在破窗户理论中,人们失去与熵战斗的意愿,是因为他们觉察到没有人会在意。而青蛙只是没有注意到变化。不要像青蛙一样。留心大图景。要持续不断地观察周围发生的事情,而不只是你自己在做的事情。
4足够好的软件
MakeQualityaRequirementsIssue
使质量成为需求问题
今天的了不起的软件常常比明天的完美软件更可取。如果你给用户某样东西,让他们及早使用,他们的反馈常常会把你引向更好的最终解决方案。不要因为过度修饰和过于求精而毁损完好的程序。继续前进,让你的代码凭着自己的质量站立一会儿。它也许不完美,但不用担心:它不可能完美
5你的知识资产
在一切还未掌握之前,需要拥有广泛的知识和经验基础才能赢得这一切。学习是一个持续不断的过程,在本小节中讨论一些策略,让我们“开足马力”。
随着新技术、语言及环境的出现,你的知识会变得过时。不断变化的市场驱动力也许会使你的经验变得陈旧或无关紧要。
随着你的知识的价值降低,对你的公司或客户来说,你的价值也在降低。我们想要阻止这样的事情,决不让它发生。
InvestRegularlyinYourKnowledgePortfolio
定期为你的知识资产投资
1.每年至少学习一种新语言
2.每季度阅读一本技术书籍
3.也要阅读非技术书籍
4.上课
5.参加本地用户组织
6.试验不同的环境
7.跟上潮流
8.上网
持续投入十分重要,一旦你熟悉了某种新语言或新技术,继续前进,学习另外一种。设法把你学到的东西应用到你当前的项目中。即使你的项目没有使用该技术,你或许也能借鉴一些想法。
如果你自己找不到答案,就去找能找到答案的人。不要把问题搁在那里,与他人交谈可以帮助你建立人际网络,而因为在这个过程中找到了其他不相关问题的解决方案,你也许还会让自己大吃一惊。
所有阅读和研究都需要时间,而时间已经很短缺。所以你需要预先规划,让自己在空闲的片刻时间里总有东西可读。
批判的思考你读到的和听到的。你需要确保你的资产中的知识是准确的,并且没有受到供应商或媒体炒作的影响。
6交流
我们不是活在真空世界,需要花大量时间与人交流。只有当你是在传达信息时,你才是在交流。
有效交流的几种方法:知道你想要说什么,了解你的听众,选择时机,选择风格,让文档美观,让听众参与,做倾听者,回复他人。
CriticallyAnalyzeWhatYouReadandHear批判地分析你读到的和听到的
便觉不过如此。也许我们只是想让自己的心去旅行,