程序员修炼之道阅读笔记整理Word文件下载.docx
- 文档编号:15789390
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:11
- 大小:23.57KB
程序员修炼之道阅读笔记整理Word文件下载.docx
《程序员修炼之道阅读笔记整理Word文件下载.docx》由会员分享,可在线阅读,更多相关《程序员修炼之道阅读笔记整理Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
∙当遇到请求许可“拖延和漠然”,设计出可以合理要求的东西
∙做变化的催化剂(BeaCatalystforChange)
∙记住大图景(RemembertheBigPicture)
∙留心大图景,持续不断地观察周围发生的事情,而不只是你自己在做的事情
∙当你设法催生变化时,你能否确定是在做石头汤还是青蛙汤?
决策是主观还是客观的?
4、足够好的软件
∙欲求更好,常把好事变糟(李尔王)
∙影响我们控制质量的因素:
时间、技术、急躁
∙缺乏职业素养的做法:
1)无视用户的需求,一味的给程序增加新特性,或一次一次的润饰代码
2)许诺不可能兑现的时间标度(timescale)
3)为赶上最后期限而消减基本的工程内容
∙制作系统的范围和质量应该作为系统需求的一部分规定下来
∙使质量称为需求问题(MakeQualityaRequirementsIssue)
∙给用户的东西,要及早让他们使用,他们的反馈常常会吧你引向更好的最终解决方案
∙如果不懂得何时止步,绘画会迷失在绘制中(不要因为过度修饰和过于求精而毁损完好的程序)
5、你的知识资产
∙知识上的投资总能得到最好的回报(本杰明。
富兰克林)
∙知识和经验是有时效的资产(expiringasset)
∙定期为你的知识资产投资(InvestRegularlyinYourKnowledgePorfolio)
∙目标(持续投入):
1)每年至少学习一种新语言(拓宽思维)
2)每季度阅读一本技术书籍(拓宽范围)
3)也要阅读非技术书籍(了解人)
4)上课
5)参加本地用户组织
6)实验不同的环境
7)跟上潮流(了解新技术)
8)上网
∙批判的思考你读到的和听到的(让你能理解负责的答案)
6、交流
∙我相信,被打量比被忽略要好
∙讲清楚自己想要说的内容(可以写出大纲、撰写文档)
∙了解你的听众(了解他们需要什么)
∙选择时机
∙选择风格(让你的风格适合你的听众)
∙让文档美观(你的主意很重要,让他们以美观的方式传递到你的听众)
∙让听众参与
∙做倾听者
∙回复他人
∙你说什么和你怎么说同样重要
∙电子邮件交流:
1)发送前进行校对
2)检查拼写
3)让格式保持简单
4)让在你知道对方能够阅读rick-text或HTML格式的邮件的情况下使用这些格式,纯文本是通用的
5)设法让引文减少至最少
第二章注重实效的途径
7、重复的危害
∙可靠的开发软件、并让我们的开发更易于理解和维护的唯一途径,是尊徐我们称之为DRY的原则:
系统中的每一项知识都必须具有单一、无歧义、权威的表示。
∙DRY-Don'
tRepeatYourself.<
不要重复你自己>
∙在两个或更多地方表达同一事物时,若果你改变其中一处,你必须记得改变其他各处
∙重复范畴:
1)强加的重复:
开发者觉得他们无可选择------环境似乎要求重复
2)无意的重复:
开发者没有意识到他们在重复信息
∙开发过程中,会因为性能原因而选择违反DRY原则,这经常会发生在需要缓存数据,以避免重复昂贵的操作。
诀窍是:
使影响局部化。
3)无耐性的重复:
开发者偷懒,他们重复,因为似乎那样更容易
∙时间压力:
驱使最优秀的人走捷径的力量
∙一种最容易检测和处理的重复形式,此时需要你接受训练,并愿意为避免以后的痛苦而预先花一些时间
4)开发者之间的重复:
同一团队(或不同团队)的几个人重复了同样的信息
∙最难检测和处理的重复
∙处理此问题的最佳方式:
鼓励开发者相互进行主动的交流(论坛,交流组)
∙MakeItEasytoReuse(让复用变得容易)
8、正交性
∙如果两条直线相交成直角,他们就是正交,比如坐标轴。
用向量的术语说,这两条直线互不影响。
沿着某一条直线移动,你投影到另一条直线的位置不变。
∙非正交系统的改变与控制更复杂
∙EliminateEffectsBetweenUnrelatedThings(消除无关事物之间的影响)
∙我们要设计自足的组件:
独立,具有单一、良好的定义的目的和Constantine,称之为内聚(cohesion)
∙正交系统的优点:
1)提高生产效率
∙改动得以局部化,开发时间和测试时间降低
∙正交的途径还能够促进复用
∙若果对正交的组件进行组合,生产率会有相当微妙的提高
2)降低风险
∙正交的途径能降低任何开发中固有的风险
∙有问题的代码区域被隔离开
∙使系统更健壮
∙正交系统很可能得到更好的测试
∙不会与特定的供应商、产品、平台紧绑在一起
∙在工作中应用正交原则的几种方式:
1)项目团队
2)设计
3)工具箱与库(EJB,面向方面编程AOP)
4)编码
∙让你的代码保持解耦
∙避免使用全局数据
∙避免编写相似的函数
5)测试
6)文档:
坐标轴是内容合表现形式
9、可撤销性
∙如果某个想法是你唯一的想法,在没有什么比这更危险的事情了。
∙ThereareNoFinalDecisions<
不存在最终决策>
∙每当有两种可能结果的牙合反应发生时,宇宙就会被克隆。
在其中一个宇宙中个,事件发生,另一个宇宙中,事件不发生。
薛定谔的猫:
在一个封闭的盒子中有一只猫,还有一个放射性粒子,这个粒子有50%的机会裂变成两个粒子,若果发生裂变,则猫被杀死;
如果没有,则猫没有事。
那么,猫是死是活?
根据薛定谔的理论,答案是”都是“。
只有打开盒子时,你才知道你在哪一个宇宙里。
10、曳光弹
∙UseTracerBulletstoFindtheTarget.<
用曳光弹找到目标>
∙曳光代码方法的优点:
1)用户能够及早看到能工作的东西
2)开发者构建了一个他们能在其中工作的结构
3)你有了一个集成平台
4)你有了可用于演示的东西
5)你将更能够感受到工作的进展
11、原型与便笺
∙PrototypetoLearn<
为了学习而制作模型>
∙在构建原型时,可以忽略的细节:
1)正确性
2)完整性
3)健壮性
4)风格
12、领域语言
∙语言的界限就是一个人的世界的界限
∙计算机语言会影响你思考问题的方式,以及你看待交流的方式
∙ProgramClosetotheProblemdomain<
靠近问题领域编程>
13、估算
∙在进行估算的过程中,你将会加深对你的程序所处的世界的理解
∙通过学习估算,并将此技能发展到你对食物的数量级有直觉的程度,你就能展现出一种魔法般的能力,确定他们的可行性
∙EstimatetoAvoidSurprises<
估算,已避免发生意外>
∙进行估算时,要注意解答问题的语境(精确/大概)
1)多准确才足够准确
2)估算来自哪里:
已问题模型为基础
3)理解提问内容
4)建立系统的模型
5)把模型分解为组件
6)给每个参数指定值
7)计算答案
8)追踪你的估算能力
9)在被要求进行估算时说什么
第三章基本工具
∙工具放大你的才干。
工具越好,你越是能更好的掌握他们的用户,你的生产力就越高
∙让需要驱动你的采购
14、纯文本的威力
∙KeepKnowledgeinPlainText<
用纯文本保存知识>
∙缺点:
1)与压缩的二进制格式相比,存储纯文本所需空间更多
2)要解释及处理纯文本文件,计算上的代价可能更昂贵
∙优点:
1)保证不过时
2)杠杆作用
3)更易于测试
∙Unix哲学:
提供”锋利“的小工具,其中每一样都意在把一件事情做好(面向行的纯文本文件)
15、shell游戏
∙UserthePowerofCommandShells<
利用命令shell的力量>
16、强力编辑
∙编辑器的特性:
1)可配置
2)可扩展
3)可编程
17、源码控制
∙进步远非由变化组成,而是取决于好记星。
不能记住过去的人,被判重复过去。
∙AlwaysUseSourceCodeControl。
<
总是使用源码控制>
18、调试
∙调试的心理学
FixtheProblem,NottheBlame<
要修正问题,而不是发出指责>
∙调试的思维方式
最容易欺骗的人是一个人自己
∙橡皮鸭:
找到问题的原因的一种非常简单、却又特别有用的技术,是向别人解释他
∙Don'
tAssuemeit-ProveIt.<
不要假定,要证明>
第四章注重实效的偏执
∙YouCan'
tWritePerfectSoftware<
你不可能写出完美的软件>
∙当每个人都确实要对你不利时,偏执就是一个好主意
21、按合约设计
∙没有什么比常识和坦率更让人感到惊讶
∙按合约设计:
一种简单而强大的技术,他关注的是用文档记载(并约定)软件模块的权利与责任,以确保程序正确性
∙DesignwithContracts<
通过合约进行设计>
∙断言不能沿着集成层次向下遗传
∙出错时要偏向消费者,这是我们对行为的保证
22、死程序不说谎
∙CrashEarly<
早崩溃>
23、断言式编程
∙在自责中有一种满足感。
当我们责备自己时,会觉得再没有人有权责备我们。
∙这绝不会发生。
。
我们不要这样自我欺骗,特别是在编码时
∙IfItCan'
tHappen,UseAssertionstoEnsureThatItWon'
t.<
如果他不可能发生,用断言确保他不会发生>
24、何时使用异常
∙UseExceptionforExceptionalProblems<
将异常用于异常的问题>
25、怎样配平资源
∙FinishWhatYouStart<
要有始有终>
第五章弯曲,或折断
∙保持灵活的一种好办法是少写代码
26、解耦与得墨忒耳法则
∙好篱笆促成好邻居
∙函数的得墨忒耳法则视图使任何给定程序中的模块之间的耦合减至最少
27、元程序设计
∙再多的天才也无法胜过对细节的专注
∙我们可以让我们的代码变得高度可配置和”软和“------也就是容易适应变化
∙Configure,Don'
tIntegrate<
要配置,不要集成>
∙PutAbstractionsinCode,DetailsinMetadata<
将抽象放进代码,细节放进元数据>
∙不要让你的项目(或你的职业生涯)走上渡
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序员 修炼 阅读 笔记 整理