0%

程序员修炼之道(第2版)读书笔记

熵是一个物理学术语,他定义了一个系统的“无序”总量。

破窗理论,一扇破的窗户,只要有一段时间不去修理,建筑中的居民就会迁移默化地产生一种被遗弃的感觉—当权者不关心这幢建筑的感觉。

不要搁置“破窗”(糟糕的设计、错误的决定、低劣的代码)不去修理。每发现一个就赶紧修一个。

永远留意大局,持续不断地审视你身边发生的事情,而不要只专注于你个人在做的事情。

够好即可的软件,训练自己写出够好即可的软件—对用户、未来的维护者来说够好即可,只要好的程度让你自己内心平静就可以。

创业不要一味地追求完美,能带着bug尽快试错,才有可能让你的用户提出更好的建议。

投资自己和理财的方法论有相似之处:

  1. 正规投资者有定期投资的习惯
  2. 多样化是长线成功的关键。
  3. 聪明的投资者会平衡保守型和风险型高回报的投资组合。
  4. 投资者用低买高卖来获得最大的回报。
  5. 应定期审查和重新平衡投资组合。

管理这类投资是一项技能,就像其他技能一样—可以学会,诀窍是让自己一开始就这样,并养成习惯。

习惯需要逐渐培养,不能贪多,也不能三分钟热度,制定一个计划按时完成它,可以是很简单的事情,不要忽视习惯的力量。

计算机是由人来使用的,你做的事情是为了满足人的需要,这非常重要。和你一起工作的是人、雇佣你的也是人、黑你的也是人。不要忘记方程式中人的那一面,他需要完全不同的技能集(我们称这些为软技能,听起来很容易,但实际很硬核,难以掌握)

这可能是我的致命弱点。

碰到解决不了的问题,要坦率的承认,但不要让问题沉寂,要寻求解决问题的途径。

批判性思维,要批判性的思考读到的听到的东西。你需要确保组合中的知识是精准的,未受供应商或媒体炒作的影响。当心坚持教条的狂热者,他们将其视为唯一答案—而那些教条未必适合你和你的项目。

要质疑,不能完全听信权威,要有自己独立的思考和判断。

交流

缺乏有效的沟通,好点子就成了一个孤儿。

沟通或者回避沟通是我最大的问题,要试着和别人交流想法,不能因为内心的鄙视拒绝和人沟通,要宽容。

  • 明白自己在说什么
  • 了解听众
  • 选择时机
  • 挑选风格
  • 让他看起来不错
  • 让听众参与
  • 做倾听者
  • 回应别人

这很重要,有必要先列一个大纲,问一下自己想说清楚什么。。

  • 点击发送按钮前先校对一遍。
  • 检查一遍拼写检查,找到有可能是自动纠错没做对的地方。
  • 用简单的格式。
  • 尽可能少应用原文。
  • 不要在网上侮辱别人,不要做喷子,除非你喜欢被喷,喜欢受虐。

任何时候和其他人交流,要站在对方的角度上观察。如果你收到一封语无伦次的邮件,你愿意读下去吗?如果别人不尊重你,你会真诚的和他交流吗?如果别人在浪费你的时间,你愿意回答他的问题吗?

ETC 原则,Easier To Change,更容易改变。设计原则全部符合 ETC。

为什么解耦很好?因为通过隔离关注焦点,可让每一部分都容易变更。

为什么单一职责原则很有用?因为一个需求变化仅体现为某个单一模块上的一个对应变化。

为什么命名很重要?因为好的命名可以使代码更容易阅读,而你需要通过阅读来变更代码。

DRY 原则,在一个系统中,每一处知识都必须单一、明确、权威地表达。

在现在的项目中,有许多重复的接口,导致想要做统一处理需要同时修改多个地方,很容易改漏。无形中增加了很多开发成本和出错的概率。

正交性是从几何学中借用来的术语。若两条直线相交后构成直角,他们就是正交的。在计算科学中,这个术语象征着独立性或解耦性。正交的好处,提高生产力及降低风险。

我们希望设计的组件自成一体:独立自主,有单一的清晰定义的意图。(又称为内聚)

养成不断质疑代码的习惯。只要有机会就重新组织、改善其结构和正交性。

工欲善其事,必先利其器。