读书笔记-程序员修炼之道-注重实效的哲学(一)

    • 我的源码让猫给吃了

      • 负责
    • 软件的熵
      • 灭火

我的源码让猫给吃了

在所有的弱点中,最大的弱点就是害怕暴露弱点。

                   -J.B

 依据你的职业发展、你的项目和你每天的工作,为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石。

 注重实效的程序员对他或者她自己的职业生涯负责,并且不害怕无知和错误。

 

 发生错误的事情,我们要设法尽可能职业的吃力他们。这意味着诚实和坦率,我们可以为自己的能力自豪,但对于我们的缺点和我们的无知以及我们的错误,我们必须诚实

负责

 责任是你主动承担的东西,你承诺确保某件事情正确完成,那你就应该切实负起责任。当然你犯错误(就如同我们每个人都会犯错误一样)、或者判断失误,诚实的承认它,并设法给出各种选择

 我们可以提供解决方案,并非寻找借口。即使你告诉你的老板“我的源码让猫给吃了”,也无济于事。

Provide Options , Dont`t Make Lame Excuses.

提供各种选择(解决方案),不要找(而不是)蹩脚的借口。

 提供各种各样的选择,而不是找借口。不要说明事情为什么做不到,而要说明能够做什么来挽回局面。你可以:

 ① 说明重构的价值

 ② 花时间建立原型

 ③ 引入更好的测试

软件的熵

 熵(shang)是一个来自物理学的概念,指的是某个系统中的“无序”的总量。

 

 当软件处于无序增长时,程序员们称之为“软件腐烂”。

 有许多因素可以促生软件腐烂。其中最重要的一个似乎是软件开发项目是的心理(或文化)。即使你的团队只有你一个人,你开发项目时的心理也可能是非常微妙的事情。尽管制定了最好的计划,拥有最好的开发者,项目在其生命期中仍可能遭遇毁灭和衰败。

 是什么造成了这样的差异?

 破窗户理论。

 一扇破窗户,只要有那么一段时间不修理,就会渐渐给建筑的居民带来一种废弃感 – 职权部门不关心这座建筑的感觉。于是又一扇窗户破了。人们开始乱扔垃圾。出现了乱涂乱画。严重的结构损坏开始了。在相对较短的一段时间里,建筑就被损毁的超出业主愿意修理的程度,而废弃感变成了现实。

Dont`t Live with Broken Windows

不要容忍破窗户

 不要留着“破窗户”(低劣的代码、错误的决策、或者是糟糕的代码)不修复。发现一个就修复一个。

 如果没有足够的时间进行适当的修理,就用模板把它钉起来,采取某种行动,并说明形式在你的控制之下。

灭火

 他是一个富得让人讨厌的富翁,拥有一所完美、漂亮的房子,里面满是无价古董、艺术品。有一天,一副挂毯着火了。消防人员冲进来救火 - 和他的房子。但他们拖着粗大、肮脏的消防水管冲到房间门口却停住了 – 火在咆哮 - 他们要在前门和着火之间铺上垫子。

 他们不想弄脏毛毯。

 这是一极端的实例,但是我们必须以这样的方式对待软件。

 如果你发现自己在有好些破窗户的项目里工作,会很容易产生这样的想法:“这些代码的其余部分也是垃圾,我只要照做就好了。”项目在这之前是否一直很好,并没有什么关系。

 同样的道理,如果你发现你所在的团队和项目的代码十分漂亮—编写整洁、设计良好、并且优雅—你就会很可能格外的注意不去把它弄脏,就和那些消防员一样,即使有火在咆哮(项目的最后期限、发布日期、会展演示,等等),你也不会想成为第一个弄脏东西的人。

时间: 2024-08-25 13:52:17

读书笔记-程序员修炼之道-注重实效的哲学(一)的相关文章

读书笔记-程序员修炼之道-注重实效的哲学(三)

你的知识资产 知识资产 经营你的资产 目标与建议 学习的机会 批判的思考 网络上请教别人的礼节与教养 你的知识资产 知识上的投资总能得到最好的回报. ---本杰明-富兰克林 我们的知识和经验是我们最重要的职业财富. 遗憾的是,它们是有时效的资产.随着新技术.语言及环境的出现.你的知识会变得过时.不断变化的市场驱动力也许会使你的知识和经验变得陈旧或者无关紧要. 这种事情可能会很快的发生. 我们知识的价值降低,对导致我们的价值也在降低.我们要阻止这样的事情,绝对不让它发生. 知识资产 程序员所知道的

读书笔记-程序员修炼之道-注重实效的哲学(四)

交流 知道你想要说什么 了解你的听众 选择时机 选择风格 让文档美观 做倾听者 回复他人 交流 我相信,被打量比被忽略要好 问题是,不止是你有什么,还要看你怎么包装它,并且如何将它告诉别人.否则就算你拥有最好的主意.最漂亮的代码.或者是最注重实效的想法,最终也会毫无结果. 没有有效的交流,一个好的想法就只是一个无人关心的孤儿. 知道你想要说什么 在工作中,最困难的部分就是确切地清楚知道你想要说什么. 规划你想要说的东西,写出大纲.然后问自己:"这是否讲清了我要说的所有的内容?"提炼他,

读书笔记-程序员修炼之道-注重实效的哲学(二)

石头汤与煮青蛙 村民的角度 足够好的软件 知道何时止步 石头汤与煮青蛙 三个士兵从战场返回家乡,在路上饿了.他们看见前面有村庄,就来了精神-他们相信村民会给他们一顿饭吃.但是当他们到达那里,却发现门锁着,窗户也关着.经历了多年战乱,村民们粮食匮乏,并把他们有的一点粮食藏了起来. 士兵们并未气馁,他们煮开一锅水,小心的把三块石头放进去.吃惊的村民走出来望着他们. "这是石头汤."士兵们解释说."就放石头吗?"村民们问."一点没错 - 但有人说加一些胡萝卜味道

读书笔记-程序员修炼之道-序

前言 我们应该成为什么样的程序员 注重实效的程序员具备的特征 注重实效的个体大型的团队 它是一个持续的过程 前言 程序员修炼之道这本书已经通读了一遍,获益良多,但还是不甚理解,所以在重读一遍,顺便做一下笔记.由于自己水平有限,只能摘抄一下重要的词句了. 我们应该成为什么样的程序员 我们的知识背景源自于对计算机科学基本原理的理解,而我们的经验来自广泛的实践项目.理论与实践相结合使我们强大起来. 我们不应该局限于任何特定的方案,而是应该拥有足够广博知识背景和经验基础,这能够让我们在特定的情况下选择更

读书笔记2014第4本:程序员修炼之道-从小工到专家(第七、八章)

第七章 在项目开始之前 36 需求之坑不为收集需求,挖掘它们.有一种能深入了解用户需求,却未得到足够利用的技术:成为用户.与用户一同工作,以像用户一样思考.描述需求文档时,要使用项目术语表.用WEB来收集和管理需求. 37 解开不可能解开的谜题遇到不可能解决的问题时,退一步问问自己如下问题:1)有更容易的方法吗?2)你是在设法解决真正的问题,还是被外围的技术问题转移了注意力?3)这件事情为什么是一个问题?4)是什么使它如此难以解决?5)它必须以这种方式完成吗?6)它真的必须完成吗? 38 等你准

[读书笔记—程序员]《高效程序员的45个习惯:敏捷开发修炼之道》- 苏帕拉马尼亚姆,亨特

虽然不记得阅读本书用了多久,但是整理本书的读书笔记用了两个小时的时间,因为本书的大部分内容对于笔者来说都是新知识,很难进行归纳总结 本书所讲的是程序员应具有的工作态度和在团队中作为开发者和领导者具备的各种"敏捷的"习惯.虽然本书对于程序员的硬实力(本书讲解的编程语言是面向对象类语言,但是讲解的代码非常少)帮助不大,但是对于程序员应该具备的软实力的培养和提高有极大的帮助,是每位程序员都应该反复阅读的书籍. 第一章 敏捷-高效软件开发之道 什么是敏捷开发方法? 2001年2月,17位志愿者

《程序员修炼之道》读书笔记②

概述 花了几天时间看完了程序员修炼之道,有很多感悟,记录于此,供自己开发时参考,相信对其他人也有用. 值得一提的是,这本书写的非常好,很多大牛在走了很多弯路之后再读这本书都很感慨没有早些读. <程序员修炼之道>读书笔记① 弯曲,或折断 解耦与得墨忒耳法则 1.函数的得墨忒耳法则规定,某个对象的任何方法都应该只调用属于以下情形的方法:它自身:传入该方法的任何参数:它创建的任何对象:任何直接持有的组件对象. 2.委托服从得墨忒耳法则,从而减少了耦合. 元程序设计 1.元数据是关于数据的数据:要用元

《程序员修炼之道:从小工到专家》读书笔记

<程序员修炼之道>读书笔记 之所以选择这本书作为第一本书,是因为这本书描述了一些程序员编写大型项目时所应该遵循的最基本的原则和可以使用的最基本的工具.它没有描述某一种特定的语言.特定的算法,也没有推荐一种编程方法作为万灵药,而是介绍了实用主义的思想,并介绍了一整套方法论帮助程序员与团体避免错误.避免浪费无谓的时间,更有效地开发程序. 在此前的学习中,我所学习的知识往往是一个个点状的知识.学校安排了c语言.数据结构等课程,我自学过一点点cpp.python,甚至了解过一些web架构,但从来没有一

《程序员修炼之道》读书笔记

<程序员修炼之道>读书笔记 提供多种选择,不要找接口 出了问题后,要提出各种解决方案的选择,而不是找借口:不要说事情做不到,要说明接下来做什么来挽回局面: 不要容忍破窗户 我们看到过整洁.运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化: 不要留着破窗户不修:发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来:或许你可以先把代码注释起来,或是显示"未实现"的消息:采取某种行动防止进一步的损坏,并说明情形在你的控制之下: 投资知识资产 我们喜欢把程