程序员修炼之道–读书简记

仅仅知道如何编程,并不会让你成为一名更好的程序员,在这个过程中必须经历有意识和深思熟虑的实践

前言

1,关注你的技艺

2,思考!思考你的工作

3,这是一个持续的过程(改善

第一章 务实的哲学

1,人生是你的,你有选择权

人生是你自己的,是你在拥有、经营和创造;学习一些看起来有趣的新东西

2,软件的熵:破窗理论

在城市中心,有些建筑干净漂亮,而另一些则破落不堪,为什么会这样p>

一扇破窗

不要放任破窗

漠视会加速腐烂

3,催化剂角色:石头汤

石头做的汤和煮熟的青蛙

做推动变革的催化剂

4,够好即可的软件:完美的诱惑

避免陷入偏执的完美主义

知道何时止步

5,对知识组合做定期投资

我们可以将程序员所了解的一切有关计算过程的事实、工作的应用领域,以及所有经验,视为他们拥有的知识组合

构建知识组合

6,交流:所获对方的反应即是沟通的意义

说什么和怎么说同样重要

第二章 务实的方法

1,DRY(Do not Repeat Yourself)

2,软件设计的正交性

消除不相关事物之间的影响

3,曳()光弹

在黑暗中发光的代码

使用曳光弹找到目标

4,用原型学习

5,估算

所有的估算都是基于对问题的建模

问问已经做过的人

第三章 基础工具

1,纯文本的威力

2,shell脚本

4,版本控制

        进步,远非寓于改变之中,而是依赖于保持。那些不能铭记过去的人,注定要重蹈覆辙。– 乔治·桑塔压那

5,调试

调整心态,不要恐慌

找个橡皮鸭

6,工程日记

它比记忆更可靠

它为你提供了一个放想法的地方

它就像一个橡皮鸭

第四章 务实的偏执

1,你无法写出完美的软件

2,断言式编程

        自责中往往有种奢侈。我们自责时,总觉得别人无权再责备我们。– 奥斯卡·王尔德《道林·格雷的画像》

第五章 宁弯不折

1,解耦

        当我们试着单独挑出一个事物的时候,总会发现它与宇宙中其他一切都有关联。– 约翰·缪尔《夏日走过山间》

2,在现实世界中抛球杂耍–事件

3,变换式编程–管道符

4,继承税

第六章 并发

0,一切都会并发

1,通过分析工作流程来提高并发性

并行的机会

识别出这些机会只是开始

2,共享状态不是正确的状态

信 量和其他形式的互斥

3,用角色实现并发性时不必共享状态

角色只会是并发的

4,黑板

黑板方法

第七章 当你编码时

1,听从你的蜥蜴脑直觉

如何同蜥蜴脑交谈:转移当前的注意力,做一些其他无关的事情

2,如何深思熟虑地编程

3,算法速度Ο()

Ο,读音:big-oh、欧米可荣(大写);表示上界(tightness unknown),小于等于的意思。

评估算法到底是什么意思p>

4,重构

        四境所见,尽是变迁腐朽······ — 亨利·弗兰西斯·赖特《与我同往》

何时该重构p>

持续变革:革新而非革命

5,出门在外注意数据安全

6,事务命名

        名不正,言不顺;言不顺,则事不成。– 孔子

第八章 项目启动之前

1,需求之坑:无人确切知道自己想要什么

人们只有在知道自己真正想要什么的时候才会尝试自动化。

2,程序员帮助人们理解他们想要什么

如治愈般编程

3,需求是个过程

需求是从反馈循环中学到的

4,需求文档不是为客户准备的,是为计划准备的

5,处理无法解决的难题

一些工程问题你把握不了,或者某些代码比你想象的更难写,也许看起来根本做不到。但这些真的像看起来那么难吗p>

6,自由度

7,不要跳出框框思考 — 找到框框

8,携手共建,用户是你团队的一部分

9,结对编程

我们人类的大脑带宽有限,天马行空地输入编译器勉强能接受的深奥的单词和符 ,就已经占用了我们相当大的处理能力,在执行任务的过程中,有另一个开发人员的完整大脑可用,将带来更多的脑力供我们支配。

不要一个人埋头钻进代码中

10,敏捷的本质

敏捷不是一个名词,敏捷有关你如何做事

敏捷价值观:

  • 个体和互动>流程和工具
  • 工作的软件>详尽的文档
  • 客户合作>合同谈判
  • 响应变化>遵循计划
  • 敏捷是做事时该有的精神

第九章 务实的项目

1,务实的团队

团队是小而稳定的实体,50个人就不算团队,那是部落。

维持小而稳定的团队:

  • 禁止破窗
  • 煮熟的青蛙
  • 为知识组合安排日程
  • 团队整体的对外交流(创建一个品牌,起一个稀奇古怪的名字)
  • 团队的曳光弹
  • 椰子派不上用场
  • 同一尺码无法适应所有人
  • 重构、复盘

2,取悦用户,而不只是交付代码

用户真正要的不是代码,他们只是遇到某个业务问题,需要在目标和预算范围内解决,他们的信念是,通过与你的团队合作,能够做到这一点。

一个务实程序员的本质:解决问题的人。

3,在作品上签名

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2023年1月5日
下一篇 2023年1月5日

相关推荐