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

十、曳光弹

构建未构建的东西时,相比于直接寻找计算,曳光弹似的“曳光”代码:

                                 让用户急躁看到能工作的东西,

                                 开发者构建了一个他们能在其中工作 的结构,

                                 你拥有一个集成平台,

                                    可用于演示的东西,

                                            更能够感受到工作进展。

当然“曳光”代码能告诉击中的是什么,但那不一定是目标。曳光代码可表现每个主要的应用组件,用户看到的东西有现实基础,不仅仅是纸上的规范。

相较于原型制作:一旦做出决策,需要重新开始在其最终环境中为算法编写代码,与现实世界接合,曳光代码的区别是让我们能够在重复一次:简约,但却完整,并且可构成最终系统的骨架的一部分。

十一、原形与便筏

许多不同的行业都是用原型试验具体的想法:与完全的制作相比,制作原型要便宜得多,每一种设计的目的都是测量某个具体的方面--样式、结构等等。

同样的方式构建软件原型:分析和揭示风险,并大大降低代价、为修正提供机会。

原型:目的:回答一些问题。

   研究事物:任何带有风险的事物,如架构,

                  已有系统中的新功能,

                  外部数据的结构或内容,

                  第三方工具或组件,

                  性能问题,

                  用户界面设计。

   它的制作是一种学习经验,价值在于所学到的经验教训。

如何使用原型,要注意:正确性,完整性,健壮性,风格。

便筏:为像工作流和应用逻辑这样的动态事物制作原型非常好。

十二、领域语言

计算机语言会影响思考问题的方式以及看待交流的方式。

有了一些用户良好的陈述,我们可以发明一种为应用领域进行了适当裁剪的小型语言,确切地表达他们的需要。该语言无需是可执行的,一开始可以是只用于捕捉用户需求的一种方式--一种规范。但如果想更进一步,实现该语言。这规范便成了可执行代码。往后用户给新需求,编写会变得容易。

我们应该考虑让项目更靠近问题领域。通过更高的抽象层面上编码,获得专心解决领域问题的自由,并且可以忽略琐碎的实现细节。

应用有许多用户:最终用户,次级用户,操作员,未来的开发者-有各自的问题领域。我们要可以为他们所以人生成小型环境和语言。

实现小型语言:1、可采用面向行的、易于解析的格式。

       2、可用更为正式的语法、实现更为复杂的语言。

       3、扩展已有的语言。

数据语言与命令语言:

数据语言:产生某种形式的数据结构给应用使用。

命令语言:在数据语言上更近一步,语言被执行,可包含更多东西:语句、控制结构、类似的东西。

独立语言与嵌入式语言:

要发挥作用、小型语言无需由应用直接使用。许多时候,我们可以使用规范语言创建各种由程序自身编译、读入或用于其他用途的制品。把高级命令语言直接嵌入我们的应用是一种常见用法:在我们的代码运行时执行--通过改变应用读取的脚步,我们可以改变应用的行为,却完全不用编译。可显著地简化动态的应用领域中的维护工作。

易于开发还是易于维护的前横要素是可扩展性与维护。

十三、估算

估算,以避免发生意外。

多准确才是足够准确

某种程度上,所以的解答都是估算。只不过有一些要比其他的更准确。当有人要你进行估算时,我们首先要问自己一个问题:解答问题的语境时什么?他们需要高度的准确性还是只是大概齐。

“130日”和“大概六个月”,相同的长度,前者却可能暗含了比你的感觉更高的精确程度。

所有的估算:以问题的模型为基础。

     诀窍:去问已经做过这件事情的人。

     理解提问的内容。

     建立系统的模型。根据对所提问的理解,建立粗略、就绪的思维模型估计。

             该建模可以是创造性的,也可以是长期有用的。

             不可避免吧不精确性引入估算过程中:有益:用模型的简单些与精确性做交易。

     把模型分解成组件:找出描述这些组件怎样交互的数学规则,确定每个组件的参数。

     给每个参数指定值,可能引入一些错误,诀窍是找出哪些参数对结果的影响最大,致力于让它们大致正确。

     计算答案:电子表格可以有很大帮助,计算阶段可能出现很奇怪答案,不要太快放弃它们,可能对问题或模型的理解错误,这是非常宝贵的信息。

     追踪你的估算能力:记录自己的估算。错误了,找出为何与自己的猜想不同的原因。

     估算项目进度:通过代码对进度表进行迭代,

     在被要求进行估算时:“我等会儿回答你。”

 

posted @   孙欣然  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示