《程序员修炼之道–从小工到专家》阅读笔记01

这段时间读的是第1章注重实效的哲学和第2章注重实效的途径。

第一章阅读笔记及其个人感受

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

1.1 负责(分析和把控)

2 软件的熵(无序“总量”)

不要留着“破窗户”(低劣的设计、错误决策或是糟糕代码)

2.1 灭火

  1. 石头汤与煮青蛙

    有试试请求许可去做,你会遇到拖延和漠然。如果每个人都会护卫自己的资产

  2. 足够好的软件

     欲更好,常常变得更糟。

金融资产管理

  1. 定期投资习惯
  2. 多元化
  3. 保守、高风险之间平衡
  4. 最大回报
  5. 周期性评估和平衡资产

知识资产:

  1. 每年至少学习一种新语言
  2. 每一季度阅读一本技术书籍
  3. 也要阅读非技术书籍
  4. 上课
  5. 参加本地用户组织
  6. 试验不同的环境
  7. 跟上潮流
  8. 持续投入

学习的机会

  • 阅读
  • 搜索信息
  • 搜索知道信息的人

批判性思考

交流

  • 必须的
  • 知道你想说什么
  • 了解你的听众
  • 选择时机
  • 调整你的风格
  • 让听众参与
  • 做倾听者
  • 回复他人

提示

  • 不要容忍破窗户
  • 做变化的催化剂
  • 记住大图景
  • 使质量成为需求的问题
  • 定期为你的知识资产投资
  • 批判地分析读到的和听到的
  • 你说什么和你怎么说同样重要

第二章 注重实效的途径

重复的危害(不要重复你自己,要有权威规范和标准)

  • 强加的重复(改了代码,也要改注释)
  • 无意的重复 (设计时没有考量到的)
  • 无奈的重复 (这里可以去拷贝?)
  • 开发者之间的重复(如何知识管理)

2.1 正交性(消除无关事物的影响)
内聚

  • 促进复用。
  • 降低风险
  • 更好地测试

思考

  • 怎么划分职责
  • 怎么设计
  • 工具箱+库 ==> AOP

需要

  • 不断测试
  • 写文档

2.2 可消除性

如果某个想法是你唯一的想法,再也没有比这更危险的事情了。

变化==> 灵活架构

代码与 薛定谔的猫。
未来有多少个未来?你敢打开盒子么?

拽光弹

快速、直观和可重复地从需求出发满足系统的某个要求。
让你有方向地调整。
侦察与收集情报。

优点:

  • 用户及早看到工作的东西
  • 构建一个开发者能在里面操作的结构。
  • 有自己的集成平台
  • 有了可演示的内容
  • 能感觉到工作的进展

抽象,解耦。

11 原型

  • 正确性(分析与揭示问题)
  • 完整性
  • 健壮性

适当使用原型

早期缺点和改正潜在的问题
便宜、容易,节省成本。

12 领域语言

语言的界限就说一个人的世界的界限。——维特根斯坦

计算机世界

  • 编程语言会影响你思考问题
  • 交流方式

用一个工具去分析需求

  • 靠近问题思考
  • 抽象层中,专心解决领域问题的自由。
  • 构造数据结构
  • 可能是小的交互脚本(bat)

思考

  • 易于开发还是易于维护?
  • 维护性的回报?

13 估算

思考

  • 传送一个40m文件需要多久?
  • 你编写的时候,知道需要哪些子模块么?
  • 多准确才足够准确?
  • 估算从哪里来?(模型基础)
    • 系统的模型
    • 创造性,也说有趣的
    • 哪些说确定的,哪些说不确定的。(分解+计算)
    • 有问题再重头再来估算
  • 项目进度
    • 检查需求
    • 分析风险
    • 设计、实现、集成
    • 向用户确认

提示

    • 不要重复你自己
    • 让复用变得容易
    • 消除无关事物之间的影响
    • 不存在最终决策
    • 用拽光弹找你的目标
    • 为了学习而制作原型
    • 靠近问题领域编程
    • 估算,以避免发生意外
    • 通过代码对进度表进行迭代

第二章阅读笔记及其个人感受

猜你喜欢

转载自www.cnblogs.com/zzstdruan1707-4/p/10928359.html