《dreaming in code》摘抄

来源:互联网 发布:歌曲伴奏降调软件 编辑:程序博客网 时间:2024/05/21 06:25

1.你越懂软件,就越不会去做软件。  —— 全书结尾句 326页

2.侯世达用自己的名字命名递归原则:时间总会比想象中用得多,即便你考虑到侯世达法则亦然。

3.做软件的男性通常多于女性,在开源项目中男女比例更不平衡。进入该领域的女性往往做出巨大而影响深远的贡献,但她们的人数却从来都不太多。

4.有良好的注释的代码是优秀编程实践的特点:它说明你关注自己在做的事,而且也照顾到那些跟进修正代码缺陷的人。注释也是一种程序员之间沟通的内部渠道,偶尔甚至还会成为竞技场或排遣无聊的出口。 ——283页

5.“设计师都该花点时间学编程,”约翰 安德森在一次吃午饭时宣称,”这样他们就不会老提出这么难实现的建议了。”

“那样他们也就提不出什么好点子了,”丽萨 杜索特答道,“他们会固步自封。一旦你知道怎么编程,你就会想,做那样的东西太难了。”

“嗯,”安德森说,“我还是会有点子。但我会用不同的方式来考虑!“

是工程还是文学?是科学还是艺术?如何解决编程的双重身份问题,几十年来一直是该领域中许多人的困惑所在。

6.由于商业理由,其代码被锁禁了。

   这就如同所有作家都有自己的“公司”,只有梅尔维尔公司的人才能读到《大白鲸》,也只有海明威公司的人才能读到《太阳照常升起》。你能想象得出,在这种情况下居然结得出丰盛的文学成功吗?这种条件及不适合发展文学,也不适合教人写作。我们怎么能指望人家这样学会写程序呢?

7.佛里德里克 布鲁克斯劝诫我们别再寻找银弹:软件复杂性并非一种可移除的品质,而是一种“基本财富”。他还是为逐渐进步留下了空间,主张"竭尽全力、逐步改进。"医药行业自接受微生物理论起就牺牲了魔法药剂的前程,程序员也该放弃包治百病的期望,接纳“为保持清洁必须坚持不懈地加以照料”的观念。

8.拉尼尔说,软件领域让人感觉特别像电影《土拨鼠日》——“想法总是雷同,没完没了”——因为我们相信只有现存的计算机框架是可行之路。虽然硬件一直加速,但软件却毫无改进,这是“计算机科学的奇耻大辱”。但程序员们却自满起来,接受了不能令人满意的现状,还视其为亘古不变之事。

9.在生命及教育过程中,我们体验了计算机科学的整个历史进程。——开始是写小程序——”Hello World“之类。谁都会获得美妙的体验,开始爱上计算机,事情虽小,但意义非凡。谁能跳过那场初恋呢?它注定了你职业生涯的未来过程。

10.从更个人的角度来看,拉尼尔的追寻也是受他对整个计算领域停滞不前的“憎恶”情感所驱动。2004年在ACM会议上的演讲中,他指着笔记本电脑,仿佛它侮辱了自己一般——和二十年前米奇 卡普尔在《软件设计宣言》中描写的一样——高呼:“我再也受不了这些东西的愚蠢!每天就想把这玩意扔到窗外去!真讨厌!我怒火中烧!已经足有三十年了,真是荒谬绝伦。"

11.如今在实现消灭编码的梦想方面,最引人瞩目的项目是由在施乐和微软发明了现代文学处理技术的的查尔斯 西蒙尼所领导,前面已经写过,此人是匈牙利语法标记之父。西蒙尼在微软效力多年,带领一项在他称之为“意识编程”领域的研究项目。2002年,他离开了让自己成为亿万富翁的公司,投资一家名为意识软件的新企业,已在将研究转换为真正的产品。

    西蒙尼是位潇洒而魅力十足的男士,他在十几岁时就逃离了匈牙利,但仍然带有匈牙利口音——胸怀宏图。他和地球上其他人一样对软件难题长久而悲哀的历史有着清楚的认识。“据我们所知,软件是数字化大丰收的瓶颈,“他说。摩尔定律驱动计算机芯片和硬件的速度和效率以指数曲线增长,但软件却步履蹒跚,赶不上趟。

12. 软件工程师,硬件工程师和部门经理驾车去瑞士开会。行驶到一处陡峭山路时,刹车突然失灵。汽车不受控制,一路侧滑了下去,飞越过紧急缓冲障碍,奇迹般的蹭着山石停了下来。乘客们有惊无险,不过面临一个问题:他们抛锚在半山上,汽车制动无效。该怎么办呢?

  “我知道怎么办。”部门经理说,“先开个会,提出愿景形成任务书,定一些目标,持续改进并找到严重为题的解决方案,这样就能上路了。”

 “不行,不行,”硬件工程师说,“太花时间了,而且,这种方法从来就行不通。我带了把瑞士军刀,转眼间就可以拆下汽车的制动系统、分离故障并修好它,这样就能上路了。”

 “嗯”软件工程师说,“动手开干之前,我想应该把车推回到山上,看看事故是否会重现。”

  如果向程序员报告缺陷,他的第一反应是问你,“重现问题了吗?”——意思是说,你能确实让问题再现一次吗?如果答案是肯定的,事情就成了一般。如果答案是否定的,程序员就会耸耸肩膀,将责任推给硬件故障或宇宙射线。

“软件工程 是一种矛盾修辞手法,”在20世纪七八十年代服务于传奇般施乐帕罗 阿尔托研究中心的软件老手L 彼得 德奇曾这样说过,“没有物理学就很难有真正的工程,而软件中则没有什么物理学可言。”

13.祖尔测试:

             1)你们使用源代码控制吗?

             2)你们每步都做构建吗

             3)你们每日构建吗?

             4)  你们有缺陷数据库吗?

             5)你们会在写新代码之前修复缺陷吗?

             6)你们有与当前工作稳合的进度安排吗?

             7)你们有规约吗?

             8)程序员工作环境安静吗?

             9)你们采用了市面上最好的工具吗?

            10)你们有测试人员吗?

            11)你们会要求应聘者在面试时候写代码吗?

            12)你们做走廊可行性测试吗?

14.你会为了兼容各种软、硬件环境做改动,换3次语言,经历4次人事变动。你所能做的就是尽力保证质量,这样,在10年后你还能剩下点东西。

    “如同当你抓起软件,手中全是沙子。就在你站在那儿尽力而为的当口,沙子开始从指缝中漏出去。10年后,只剩下几粒沙,那就是你要应付的事,你的任务是尽可能的握紧拳头。”

15.。敏捷软件开发宣言

         个性交互 胜于 过程和工具

         可工作的软件 胜于 面面俱到的文档

         客户协作 胜于 合同谈判

         响应需求 胜于 遵循计划


即,尽管右边条目有其价值,但我们更看中左边栏目。






0 0