《程序员修炼之道:从小工到专家》阅读笔记四
十、曳光弹
构建未构建的东西时,相比于直接寻找计算,曳光弹似的“曳光”代码:
让用户急躁看到能工作的东西,
开发者构建了一个他们能在其中工作 的结构,
你拥有一个集成平台,
可用于演示的东西,
更能够感受到工作进展。
当然“曳光”代码能告诉击中的是什么,但那不一定是目标。曳光代码可表现每个主要的应用组件,用户看到的东西有现实基础,不仅仅是纸上的规范。
相较于原型制作:一旦做出决策,需要重新开始在其最终环境中为算法编写代码,与现实世界接合,曳光代码的区别是让我们能够在重复一次:简约,但却完整,并且可构成最终系统的骨架的一部分。
十一、原形与便筏
许多不同的行业都是用原型试验具体的想法:与完全的制作相比,制作原型要便宜得多,每一种设计的目的都是测量某个具体的方面--样式、结构等等。
同样的方式构建软件原型:分析和揭示风险,并大大降低代价、为修正提供机会。
原型:目的:回答一些问题。
研究事物:任何带有风险的事物,如架构,
已有系统中的新功能,
外部数据的结构或内容,
第三方工具或组件,
性能问题,
用户界面设计。
它的制作是一种学习经验,价值在于所学到的经验教训。
如何使用原型,要注意:正确性,完整性,健壮性,风格。
便筏:为像工作流和应用逻辑这样的动态事物制作原型非常好。
十二、领域语言
计算机语言会影响思考问题的方式以及看待交流的方式。
有了一些用户良好的陈述,我们可以发明一种为应用领域进行了适当裁剪的小型语言,确切地表达他们的需要。该语言无需是可执行的,一开始可以是只用于捕捉用户需求的一种方式--一种规范。但如果想更进一步,实现该语言。这规范便成了可执行代码。往后用户给新需求,编写会变得容易。
我们应该考虑让项目更靠近问题领域。通过更高的抽象层面上编码,获得专心解决领域问题的自由,并且可以忽略琐碎的实现细节。
应用有许多用户:最终用户,次级用户,操作员,未来的开发者-有各自的问题领域。我们要可以为他们所以人生成小型环境和语言。
实现小型语言:1、可采用面向行的、易于解析的格式。
2、可用更为正式的语法、实现更为复杂的语言。
3、扩展已有的语言。
数据语言与命令语言:
数据语言:产生某种形式的数据结构给应用使用。
命令语言:在数据语言上更近一步,语言被执行,可包含更多东西:语句、控制结构、类似的东西。
独立语言与嵌入式语言:
要发挥作用、小型语言无需由应用直接使用。许多时候,我们可以使用规范语言创建各种由程序自身编译、读入或用于其他用途的制品。把高级命令语言直接嵌入我们的应用是一种常见用法:在我们的代码运行时执行--通过改变应用读取的脚步,我们可以改变应用的行为,却完全不用编译。可显著地简化动态的应用领域中的维护工作。
易于开发还是易于维护的前横要素是可扩展性与维护。
十三、估算
估算,以避免发生意外。
多准确才是足够准确
某种程度上,所以的解答都是估算。只不过有一些要比其他的更准确。当有人要你进行估算时,我们首先要问自己一个问题:解答问题的语境时什么?他们需要高度的准确性还是只是大概齐。
“130日”和“大概六个月”,相同的长度,前者却可能暗含了比你的感觉更高的精确程度。
所有的估算:以问题的模型为基础。
诀窍:去问已经做过这件事情的人。
理解提问的内容。
建立系统的模型。根据对所提问的理解,建立粗略、就绪的思维模型估计。
该建模可以是创造性的,也可以是长期有用的。
不可避免吧不精确性引入估算过程中:有益:用模型的简单些与精确性做交易。
把模型分解成组件:找出描述这些组件怎样交互的数学规则,确定每个组件的参数。
给每个参数指定值,可能引入一些错误,诀窍是找出哪些参数对结果的影响最大,致力于让它们大致正确。
计算答案:电子表格可以有很大帮助,计算阶段可能出现很奇怪答案,不要太快放弃它们,可能对问题或模型的理解错误,这是非常宝贵的信息。
追踪你的估算能力:记录自己的估算。错误了,找出为何与自己的猜想不同的原因。
估算项目进度:通过代码对进度表进行迭代,
在被要求进行估算时:“我等会儿回答你。”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架