Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 2.88 KB

File metadata and controls

39 lines (29 loc) · 2.88 KB

注重实效的哲学

1. 我的源码让猫给吃了

做事情之前,评估风险,如果决定要做,那就准备好面临各种突发问题。问题发生过后,比其追究责任人,更应该去尽快找出各种解决方案,做一个problem solver而不是blamer。

2. 软件的熵

软件项目有腐化的趋势,一旦侥幸的提交了很随意的代码,这种轻率的态度可能蔓延,进而出现越来越多劣质的代码;相反,如果项目中的所有资料都尽量保持高水准,那么新的参与者也会慎重对待,避免破坏这种和谐,这是“破窗效应”(无人的房子或者汽车被搁置很久都不会有人去碰,而一旦它出现一扇破窗,它就会在短时间内被洗劫一空)。

在项目中,可以选择有代表性的模块进行优化和重构,对这扇破窗的修补,能够改善软件的后期质量。

3. 石头汤与煮青蛙

石头汤:饥饿的士兵到一个贫穷的村子,乞求食物,无果。然后他们开始煮石头汤,越来越多的村民来围观,士兵告诉村民往汤里放入胡萝卜、肉之类的会更美味,村民抱着好奇心提供自己的珍藏,最终大家全都美餐一顿。

“请求原谅比申请许可更容易”。

在评估风险过后,你仍然坚持做某件事的话,那么,比起去鼓动其他人参与,你自己立刻去做、去推动,更能达到目的,因为,项目启动并得到初步成果过后,感兴趣的人更可能加入。

关于煮青蛙:时刻注意你身边的变化。

4. 足够好的软件

心脏起搏软件、航天软件、被广泛的传播的代码库,他们的代码严谨度有最严格的要求。而除此之外的一般项目,比起一次就做出完美的产品,给出不完美但完整的产品,然后一步步优化改良,这样的做法更现实。

何谓“足够好”,不同的软件类型有不同的定义。不苛求完美不是说可以草率,记得“软件的熵”中的“破窗效应”。

5. 你的知识资产

知识是时效资产(放置不管其价值会持续降低,像水果会过期),应当按照投资的方式来管理:

  • 持续投资
  • 多元化
  • 平衡保守和激进
  • 投资低投入高产出的项目
  • 定期反思,重新评估

具体的操作建议包括:

  • 每年学习一门新语言
  • 每季度(月)读一本新书
  • 阅读技术以外的书
  • 尝试不同的平台(Linux<->Windows, Ide<->makefile+Editor)

对知识保持敬畏,虚怀若谷,对于不懂的问题,勇于承认,然后去探索、搞清楚,这个发现的过程会让你收益良多,知识的积累将愈加丰厚。

现实世界中的知识参杂了很多商业、宗教元素(如搜索引擎结果的第一项,可能并非最优,而是商家付钱最多),利用你既有的知识,甄别、提取其中对你真正有用的部分。

6. 交流