首页 > 编程语言 >《程序员修炼之道:从小工到专家》chap2(九月)

《程序员修炼之道:从小工到专家》chap2(九月)

时间:2023-10-03 12:22:51浏览次数:50  
标签:语言 重复 小工 正交 程序员 文档 chap2 模块 代码

Chap2 注重实效的途径

程序需要遵守的实用主义原则。

重复的危害:如果某个事物在代码中重复多次,就可能会在维护过程中带来问题,因为改动了一处而忘记改动另一处造成自相矛盾。这加大了维护难度。要遵守DRY原则,即Don’t repeat yourself。

重复通常由这些东西引起:

强加的重复,由文档或用户需求决定。这通常可以依照情况消除。需要重复表示的信息可以用元数据schema与代码生成器消除重复。注释与代码会重复,但实际上这种重复没有必要:注释不应重复代码中显而易见的东西,而应该表达更高级的东西。文档与代码也会重复,可以利用文档生成工具。有些语言会强加一些重复,这比较难解决,只能依情况而定,一些基本的技术是cpp中不要在其他文件中引用函数,而应该使用头文件。

无意的重复,由设计的疏忽造成,需要积极的检查和重构。如果为了性能需要违反DRY原则,记得将重复本地化,不要泄漏到模块外,并保持模块内行为良好。

无耐性的重复,可能造成远大于一时麻烦的痛苦后果。程序员要学会约束自己。

开发者之间的重复,需要加强开发者之间的沟通。

正交性:指系统各同层次的组件之间没有依赖关系,改变一个不影响另一个。如果系统不符合正交性,测试与维护会非常痛苦。而正交性的系统在出问题时更容易隔离修复,进行拓展时也不必改动已有模块,增加了生产力。

为了达到正交性,需要将团队分为几个清晰的小组分别工作,对系统进行模块化的设计。可以通过询问“讨论某个改动时需要设计多少人”判断小组分工是否正交,通过询问“改动某个模块背后的需求,会有多少模块受到影响?”判断系统设计是否正交。

引入第三方库时可能会破坏正交性,要小心不要使第三方库对整体代码造成改动。如果第三方库的接口存在问题,可以将第三方库用适合自己代码的方式进行封装。

编码也有可能破坏正交性,需要注意:使代码保持解耦,除了需要的功能不要暴露其它细节。避免使用全局数据。避免编写相似的函数。

对项目进行测试与debug也可以检查项目的正交性。如果测试或修正一个小模块会带来许多其它的影响,那么系统不够正交。

正交性同样适用于文档,文档内容与表达形式应该解耦。这让我想到了markdown……

可撤销性:许多需求会改变,许多政策会改变,所以编写项目时任何决策都应该可以撤销。项目结构应该保持灵活,不要依赖某个已有决策。

曳光弹:这个比喻有点晦涩。作者介绍了一种方法,编码之初先搭建一个大致框架,然后慢慢填充编码。这样既可以方便编码,又可以随时与用户沟通项目是否符合他们的需求。假如现有成果不符合需求,可以立马进行修改,而不必等代码基本固定时候再进行重构。

原型与便笺:不同于曳光弹,曳光弹在使用之后继续保留,只是逐渐“生长”成更完整的系统。原型是为了分析某个功能或需求建立的简化模型,将细节遮蔽以方便分析,用来找到最好的实现方式,然后便丢弃不用。如分析UI需求时先用绘图板确定最合适的UI,再用编码实现。

领域语言:任何领域都有自己的语言,如用于配制的语言,用于文档的语言,用于描述需求的语言。可以发展一种小型语言。小型语言分两种,配置语言方便解析但难以阅读,命令语言相当于小型的脚本语言,更近似于自然语言,但解析难度更高。小型语言可以是独立的语言,也可以嵌入高级语言的代码,方便直接执行。

模块与模块之间的信息交流需要清晰、易于解析并易于扩展。

估算:要学会估算。估算的方法在于限定问题的情景范围,对系统建立模型,对模块进行拆分并分别估算,抹去可忽略不计的量。估算不需要过于精确,但需要细心。

标签:语言,重复,小工,正交,程序员,文档,chap2,模块,代码
From: https://www.cnblogs.com/po3a/p/17740961.html

相关文章

  • 【不靠谱程序员】接收到回调通知的异步处理
    ​支付系统中,像资金下发这种业务,通常是在我们系统发给第三方支付通道后,第三方支付通道会进行资金业务处理。然后,付款完成后,会主动发起回调,即,调用我们系统API,将付款结果通知给我们系统。假定我们的支付系统对三方通道回调通知的处理逻辑包括:①修改本地付款单的付款状态;②将付款......
  • 读后感:《程序员修炼之道》第二部分 - 以实践为中心
    第二部分的《程序员修炼之道》为我打开了一扇通向更高质量代码编写的大门。它强调了编程实践的重要性,提供了一系列关于代码质量、可维护性和效率的宝贵建议。以下是我从这一部分中得到的主要启示:首先,书中详细讨论了代码的可读性。作者指出,代码应该对人类友好,易于理解。清晰的变量......
  • 9月《程序员修炼之道:从小工到专家》阅读笔记(2)
    三、基本工具14纯文本的威力纯文本可以获得自描述的,不依赖于创建他的应用的数据流。纯文本可以保证不过时,更容易测试等。15shell游戏对程序员来说,工作台就是命令shell。GUI无法让我们超越设计者提供的模型,而我们往往需要这种操作,这时候shell就是你最顺手的工具。16强力编辑......
  • 从小工到专家阅读笔记(二)
    4.足够好的软件所有设计出的系统都必须满足其用户的需求.才能取得成功.我们只是在宣扬、给用户以机会.让他们参与决定你的软件是否能让他们满意。“使质量成为需求”,很多时候都是开发人员在进行对于质量的评估,我们对质量要求低的话,交付时就会出现很多问题,我们对质量要求高,又会很大......
  • 从小工到专家阅读笔记(一)
    第一篇:1.我的源码让猫给吃了 出现了未曾想的问题,要设法尽可能地处理它们,可以为自己的能力自豪,但对于错误必须真诚面对。对于不可能做到的事情,有权不为之负责,如果答应别人的项目必须切实负则。不要为出错的情况找借口,对老板说"我的源码让猫给吃了”这种言语,对解决问题没有任何......
  • 《程序员修炼之道:从小工到专家》第一第二章读书笔记
    第一章:追求实效的哲学第一节:我的源码被猫吃了在开发过程中,我们经常会遇到一些意想不到的技术问题,导致交付延迟等情况。然而,作为程序员,我们需要诚实和坦率地面对这些问题,并勇于承认自己的错误。我们应该以专业的态度处理这些问题,而不是找借口。此外,我们要对自己承担的责任负责。......
  • 读后感:《程序员修炼之道》第一部分 - 哲学
    第一部分的《程序员修炼之道》引领我进入了一场关于编程哲学的探索之旅。它不仅仅是一本技术书籍,更是一本关于如何成为优秀程序员的指南。以下是我的一些主要印象和感悟:首先,书中明确了作为程序员的责任感。作者们告诉我们,我们不仅仅是代码的书写者,还是问题的解决者。我们需要理解......
  • 9月《程序员修炼之道:从小工到专家》阅读笔记
    一、注重实效的哲学1我的源码让猫吃了无论是什么任务,我们都可能出现错误,这时,我们需要尽可能处理好他们以示诚实坦率。我们必须承担责任,一味的推卸责任毫无用处。要找各种选择,而非借口。2软件的熵熵在软件中代表“软件腐烂”。究其原因,最重要为开发项目时的心理/文化。那么为什......
  • 《程序员修炼之道:从小工到专家》读后感九月篇一
    第一章主要讲了程序员修炼的哲学基础,包括注重实效、勇于承认错误和不断学习等。这些内容对我有很大的启示和帮助,让我更加明白了程序员成长之路上的方向和目标。一开始作者强调了注重实效的哲学。程序员在工作中会遇到各种挑战和困难,这种情况下,勇敢地承认错误,并不断尝试原型、测试......
  • 《程序员修炼之道:从小工到专家》读后感九月篇二
    《程序员修炼之道:从小工到专家》的第二章主要讲述了重复的危害和解决重复问题的关键。对于一名程序员来说,重复是不可避免的现象,但过多的重复不仅会降低代码的运行效率,也会给代码的维护带来很多麻烦。因此,解决重复问题对于提高代码质量和效率至关重要。作者对重复的危害进行了详细......