读书分享 精简版计算机经典书籍 读后分享

更新时间:2023-07-23 16:49:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

读书分享—高效程序员实践技术简介系统平台部张帅 QQ:94643108 2011-12-3

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

参考书籍

z

z

z(作者),

(译

者)

程序员修炼之道,(作者),(作者),(译者),电子工业出版社编程珠玑(第二版),Jon Bentley,人民邮电出版社

本PPT内容均取自以上书籍,个人观点会用宋体且加cheney标注(仅一条)。

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

主题1 2 3 4 5准备评估设计构建个人性格

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

1.1 需求分析

软件开发中最常见的项目风险是糟糕的需求分析和糟糕的项目计划。

充分详尽地描述需求,是项目成功的关键。zz

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

1.1 需求分析

z

z

z

z

z

z

z不要搜索需求,挖掘它们!与用户一同工作,以像用户一样思考!与用户交流,以使他们正确地理解你将要交付的产品。使用项目词汇表—创建并维护项目中使用的专业术语和词汇的单一信息源。确保每个人都知道需求变更的代价,并建立一套变更控制程序。管理需求增长的关键是向项目出资人指出每项新特性对项目进度及成本的影响,预防压垮项目的最后一根稻草(新增需求)。作为注重实效的程序员,你应该倾向于把需求挖掘、设计以及实现视为同一个过程—交付高质量的系统—的不同方面,不要孤立他们。我们更愿意能了解我们正在开发的整个系统。要深入地了解系统的每一个方面也许不可能,但你应该知道各组件怎么交互、数据存放在哪里、还有需求是什么。

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

1.2 软件质量

z

z

z

z

z

z

z明确设置质量目标是开发高质量软件的一个简单而清晰的步骤,但它常常被忽略。使质量成为需求问题。足够好的软件—所有系统都必须满足用户的需求才能取得成功。让用户及早使用你的产品,他们的反馈常常会把你引向更好的最终解决方案。用文档记载(并约定)软件模块的权利与责任,以确保程序正确性。不多不少,做它声明要做的事情!温和得超出用户的期望!质量只能源于全体团队队员都做出自己的贡献!而非质量官员。

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

主题1 2 3 4 5准备评估设计构建个人性格

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

2.1项目规模对构建的影响Cheney.Zh1

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

幻灯片 8

Cheney.Zh1 图中 架构 与 构建 位置 整反了。张帅, 2011-12-16

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

2.2 项目评估

z

z

z

z

z

z建立目标为评估留出时间清楚地说明软件需求去问已经做过这件事情的人,在底层细节层进行评估使用若干不同的评估方法,并且比较其结果定期重做评估,迭代修正进度表

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

2.3 项目落后了,怎么办?

z希望自己赶上×

z扩充团队×

z缩减项目范围

必须有、有了更好、可选择

重新评估实现非重要特性开发时间,比较差异

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

主题1 2 3 4 5准备评估设计构建个人性格

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

3.1 设计中的挑战

z

z

z

z

z

z

z设计是一个险恶的问题险恶的问题就是那种只有通过解决或部分解决才能被明确的问题。设计是一个了无章法的过程足够好,如何判断?设计是确定取舍和调整顺序的过程时间、空间、开发速度?设计受到诸多限制创造可能发生的事情,限制可能发生的事情设计是不确定的条条大陆通罗马,设计方案多样化设计是一个启发式过程最好的并非总是最好的设计是自然形成的

它是在不断的设计评估、非正式讨论、写试验代码以及修改试验代码中演化和完善的

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

“程序复杂度”的一个衡量标准是,为了理解应用程序,你必须在同一时间记住的智力实体数量。

如何管理复杂度?

把任何人在同一时间需要处理的本质复杂度的量减到最小不要让偶然性的复杂度无所谓地快速增长

zzz高代价、低效率的设计源于下面三种根源:用复杂的方法解决简单的问题×

用简单但错误的方法解决复杂的问题

用不恰当的复杂方法解决复杂的问题××

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

3.2.2 理想的设计特征

z最小复杂度(简洁之美)

z易于维护

z松散耦合

z可扩展性

z可重用性

z高扇入

z低扇出

z可移植性

z精简性

z标准技术

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

3.3 设计构建方法

z原型开发

试验田-为了分析和减少风险,并以大大降低的代价、为修正提供机会。用过就必须扔掉的代码!可以视为第一发曳光弹发射前进行的侦查和情报搜集工作。

z曳光弹开发

曳光弹主要用于显示弹道,修正射击偏差,穿入易燃物时也可以引起燃烧。弹丸由被甲,铅心,曳光管,和固定环组成。曳光剂由镁粉,镁铝合金粉,硝酸锶和酚醛树脂组成。引燃剂由镁粉,硝酸钡和氧化钡和酚醛树脂混合而成。铅心装在被甲头部,以保持弹丸有一定的重量。曳光管内部压装曳光剂和引燃剂。发射时,火药气体点燃引燃剂,出枪口100米左右点燃曳光剂曳出红光(或其他颜色),白天夜晚都可看到。曳光弹——弹头尾部装有曳光剂,在飞行时能发光显示弹迹的枪弹,弹头头部涂有绿色标志。主要用于试射和指示目标。曳光弹代码:你编写它,是为了保留它。它含有任何一段产品代码都拥有的完整的错误检查、结果、文档、以及自查。它只不过功能不全而已。它提供了一个框架,在接下来的时间里,你给这个框架增加新功能,完成预留了接口的例程。

用户能够及早看到能工作的东西。

开发者构建了一个他们能在其中工作的结构。

你有了一个集成平台。

你有了可以演示的东西。

你将更能够感觉到工作进展。

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

3.4 迭代设计

架构设计方案迭代了吗?

开发过程迭代了吗?

优化方案迭代了吗?

没有最好,只有更好,不要停滞于眼前的方案,继续寻找。

在软件开发中,很难找出一个不适合采用迭代法的领域。Care About Your Draft!

Think!About Your Work!

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

3.5 设计原则

z不要制造轮子!

z不存在最终决策!

z使用能适应变更的开发方法,如演进原型方法、元程序设计方法等等。

z消除无关事务之间的影响!

z让复用变得更加容易!

z无处不在地自动化!

z……

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

主题1 2 3 4 5准备评估设计构建个人性格

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

4.1 构建方法

z

z

z

z

z

z

z

z

z

z

z

z按合约设计伪代码编程断言式编程(防御式编程)不要靠巧合编程靠近问题领域编程测试先行,易于测试的代码有始有终养成不断地批判对待自己代码的习惯!早重构,常重构!发现一个就修一个死程序不说谎自说明代码对待文档要像对待代码一样用心,用户(还有后来的维护者)会为你唱赞歌的!不要让文档成为二等公民!……

代码大全,程序员修炼之道,编程珠玑 部分内容方法摘抄分享~~~支持开源,支持分享,支持免费~~~

4.2.1 不要投机

z

z

z一个疲惫的士兵警觉地从灌木丛里钻出来。前面有一片空旷地:那里有地雷吗?还是可以安全通过?没有任何迹象表明那是雷区—没有标记、没有带刺的铁丝网、也没有弹坑。士兵用他的刺刀戳了戳前方的地面,又赶紧缩了回来,以为会发生爆炸。没有。于是他紧张地向前走了一会,刺刺这里,戳戳那里。最后,他确信这个地方是安全的,于是站起身来,骄傲地大步向前走去,结果却被炸成了碎片。。。作为开发者我们也工作在雷区。。。并非以明确的事实为基础的假设是所有项目的祸害!

本文来源:https://www.bwwdw.com/article/vism.html

Top