程序员修炼之道阅读笔记02

摘要:
语用方法重复的危害1。我们都在一个时间和资源有限的世界里工作。如果你擅长估计完成任务需要多长时间,那么系统中的每一项知识都必须是单一的。2.正交性的另一个有趣的变体是面向方面的编程,它是可撤销的;原型和注释1。我们也以同样的方式构建软件原型。2.原型设计用于回答一些问题。领域语言1。计算机语言会影响你的思维方式。

注重实效的途径

重复的危害

1.我们都是在一个时间和资源有限的世界上工作。如果你善于估计出事情需要多长时间完成,你就能更好的在两者都很匮乏的情况下生存下去。

2.DRY原则:系统中的每一项知识都必须具有单一,无歧义,权威的表示。

正交性

1.如果两个或更多事物中的一个发生变化,不会影响其他事物,这些事物就是正交的。

2.正交性的另一个有趣的变体是面向方面编程,Aspect-Oriented Programming,AOP。

可撤销性

1.我们不必做出许多关键的,不可逆转的决策,所以我们的代码需要有可撤销性。

曳光弹

1.曳光弹与常规弹药交错装在弹药带上。发射时,曳光弹中的磷点燃,在枪与它们击中的地方之间留下一条烟火般的踪迹。如果曳光弹击中目标,那么常规子弹也会击中目标。

2.曳光弹的优点:用户能够及早看到能工作的东西;开发者构建了一个他们能在其中工作的结构;你有了一个集成平台;你有了可用于演示的东西;你将更能够感到工作进展。

3.原型制作生成用过就扔的代码;曳光弹虽然简约,却是完整的,并且是构成最终系统的一部分。

原型与便笺

1.我们也以同样的方式构建软件原型,为了分析和揭示风险,并且大大降低代价。

2.原型的设计目的就是回答一些问题,所以与投入使用的产品应用相比,他们可以忽略不重要的细节,开发便宜得多。

3.你可以为下列事物制作原型:架构;已有系统中的新功能;外部数据的结构或内容;第三方工具或组件;性能问题;用户界面设计。

领域语言

1.计算机语言会影响你思考问题的方式,以及你看待交流的方式。

2.如果用户有一些做了良好限定的陈述,你可以发明一种为应用领域进行了适当裁剪的小型语言,确切的表达他们的需要。

3.我们已经看到若干不同的文法,范围从简单的面向行的格式到更为复杂的看起来像真正的语言的文法。既然实现更为复杂的文法需要额外的努力,你又为何要这样做呢?权衡要素是可扩展性与维护。所以有时候我们也可以考虑用其他语言,在保证可扩展性与维护的前提下。

估算

1.但有人要你进行估算时,你要问自己的第一个问题就是,你解答问题的语境是什么?他们是需要高度的准确性,还是在考虑棒球场的大小?

2.“130天”和“6个月”表示相同的时长,但“130天”却可能暗含了比你的感觉更高的精确程度。

3.除了精确度问题外,你还需要把握问题域的范围。比如说:假定没有交通意外,而且车里还有汽油,我会在20分钟内赶到那里。

4.把估算分解为小估算,然后给每个小估算的参数赋值,最后合并为大估算。

5.在被要求进行估算时可以说:我等会儿回答你。

免责声明:文章转载自《程序员修炼之道阅读笔记02》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇16、cgminer学习之:pthread_mutex_init和pthread_cond_initcss3写的实用表单美化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js 动态创建a href 循环下载文件只能下载10个或者固定数目的问题

在web前端项目中,很多地方的下载单张图片/文件都可以用<a href="http://t.zoukankan.com/images/logo.png" download="文件名">来下载指定文件 遇到的问题: 在下载多个文件的时候 使用for 循环来触发 a href  download  (此批量下载方法当然不推荐 很lowB 也体验不好...

QT显示如何减轻闪屏(双缓冲和NoErase)

很多同志在些QT 程序后会遇见闪屏的问题, 有时速度非常快,但毕竟影响了显示效果,如何做到减轻屏幕抖动或闪屏呢?我曾试过如下的办法:1.使用双缓冲。 比如我们在一个Widget里面绘多个图的话, 先创建一个QPixmap对象 然后用QPainter在这个QPixmap对象上绘图,最用后BitBlt 将数据copy到active painterDev上就可以...

android app 压力测试工具-monkey tool

一.什么是Monkey?Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进...

IO多路复用

IO模型介绍                                           为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞     同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问...

Windows 汇编语言编程教程[转]

  目录 介绍   ……………………………………………………………………………2 为什么选用汇编语言 …………………………………………………………2 为什么选择Windows系统……………………………………………………2 Ⅰ开始学习之旅 ……………………………………………………………….…3 编译器   ……………………………………………………………………...

JAVA RSA私钥 加密(签名) 对应 C# RSA私钥 加密(签名)

非对称密钥RSA算法加解密在C#和Java之间交互的问题,这两天看了很多其他人写的文章,碰到了几个问题,最终解决问题。 参考地址:http://xw-z1985.iteye.com/blog/1837376 需求目的:完成c#请求端RSA加密(签名)问题,客户端采用C#开发,服务器端采用Java开发。服务器端给客户端提供私钥,进行数据加密(签名),客户端加...