《程序员修炼之道:从小工到专家》第二章:注重实效的途径(2)

四、曳光弹

用曳光弹找到目标

敏捷开发,迭代开发

五、原型与便笺

应制作原型的事物

  • 已有系统中的新功能
  • 外部数据的结构和内容
  • 第三方工具或组件
  • 性能问题
  • 用户界面设计

为了学习而制作原型

原型与曳光弹的区别

原型是用完就扔掉的代码,曳光弹则是在迭代中找到方向,不断扩展,成为一个集成平台。

六、领域语言

语言的界限就是一个人的世界的界限

靠近问题领域编程

无论是用于配置和控制应用程序的简单语言,还是指定规则或过程的更为复杂的语言,你都应该考虑让你的项目更靠近问题领域。通过在更高的抽象层上编码,你获得了专心解决问题领域问题的自由,并且可以忽略琐碎的实现细节。

实现小型语言

数据语言与命令语言

  • 数据语言产生某种结构的数据结构给应用使用,这种语言常用于表示配置信息。比如sendmail。
  • 命令语言更进一步,在这种情况下,语言被实际执行,所以可以包含语句、控制结构、以及类似的东西。

独立语言与嵌入式语言

易于开发还是易于维护

七、估算

估算,以避免发生意外。

多准确才够准确

  • 问题的语境
  • 单位对结果的影响

估算来自哪里

所有的估算都以问题的模型为基础,在我们深入卷入建模技术之前,我们必须先提及一个基本的估算诀窍,它总能给出好的答案:去问已经做过这件事情的人。

  • 理解提问内容
  • 建立系统模型
  • 把模型分解为组件
  • 给每个参数指定值
  • 计算答案
  • 追踪你的估算能力(如果错了,找出原因)

阅读原文:程序员修炼之道:从小工到专家

学院君

学院君 has written 548 articles

资深PHP工程师,Laravel学院院长