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

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

前言

1,关注你的技艺

2,思考!思考你的工作

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

第一章 务实的哲学

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

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

2,软件的熵:破窗理论

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

一扇破窗

不要放任破窗

漠视会加速腐烂

3,催化剂角色:石头汤

石头做的汤和煮熟的青蛙

做推动变革的催化剂

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

避免陷入偏执的完美主义

知道何时止步

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

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

构建知识组合

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

说什么和怎么说同样重要

第二章 务实的方法

1,DRY(Do not Repeat Yourself)

2,软件设计的正交性

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

3,曳()光弹

在黑暗中发光的代码

使用曳光弹找到目标

4,用原型学习

5,估算

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

问问已经做过的人

第三章 基础工具

1,纯文本的威力

2,shell脚本

3,游刃有余地使用编辑器

4,版本控制

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

5,调试

调整心态,不要恐慌

找个橡皮鸭

6,工程日记

它比记忆更可靠

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

它就像一个橡皮鸭

第四章 务实的偏执

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

2,断言式编程

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

第五章 宁弯不折

1,解耦

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

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

3,变换式编程--管道符

4,继承税

第六章 并发

0,一切都会并发

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

并行的机会

识别出这些机会只是开始

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

信号量和其他形式的互斥

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

角色只会是并发的

4,黑板

黑板方法

第七章 当你编码时

1,听从你的蜥蜴脑--直觉

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

2,如何深思熟虑地编程

3,算法速度Ο()

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

评估算法到底是什么意思?

4,重构

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

何时该重构?

持续变革:革新而非革命

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

6,事务命名

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

第八章 项目启动之前

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

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

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

如治愈般编程

3,需求是个过程

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

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

5,处理无法解决的难题

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

6,自由度

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

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

9,结对编程

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

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

10,敏捷的本质

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

敏捷价值观:

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

第九章 务实的项目

1,务实的团队

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

维持小而稳定的团队:

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

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

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

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

3,在作品上签名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值