美文网首页
程序员修炼之道 第一部分

程序员修炼之道 第一部分

作者: 飞猪的浪漫 | 来源:发表于2022-12-26 16:54 被阅读0次

    读书笔记:来自自己的学习和反思;

    1. 每一个问题:有来源,有支持过程,有讨论和思维的维度,有结论和最后的影响。

    2. 负责:溯源根本,学会考虑不同模块的关系,

    程序员修炼之道:

    1. 不害怕暴露弱点;2、 提供解决方案,而不是寻找借口。

    3. 给他人提供选择,而不是寻找蹩脚的借口。

    4. 不要容忍 破旧的窗户。从小处的规范做起,保证我们的质量过关。找出源头,寻找可以改进小的点。

    5. 做好催化剂,融合大家的共同目标,抱团取火。

    6. 足够好体现在用户满意,满足需求。质量范围和质量也是需求的一部分。

    保证质量,做出一个毛坯质量给用户,然后不断修缮,不要过度修饰和过于求精。满足硬性要求。

    学会止步,让代码保证一会儿质量。

    1. 学习职业之外领域的内容,比如ml和ds。2.非技术的书也需要看。3.跟上科技和商业的潮流。

    有问题去寻找,去发现别人的想法,不断阅读和学习,增长相关的知识。

    批判的分析 听到的和读到的内容。

    交流:用户,机器,文档的记录,撰写报告,申请资源,修正和提出。

    1. 列出大纲,自己想说的小点, 2.开会的时候,列出交流的点和策略。

    3. 了解听众的需求,兴趣,和能力,对症下药。

    他们对什么感兴趣?多少经验?怎么吸引他们的注意?想要多少细节?

    选择交流风格,选择文档的制作方式,让读者参与文稿的制作。

    鼓励大家来提问和沟通,也要及时回复 语言和邮件。

    邮件:拼写,少引用,检查收件人,纯文本,格式保持简单。

    dry:单一,无歧视,权威的表示。

    强加:过滤器或者代码生成器,文档:低级的知识在代码,高级的知识在注释。

    保证测试能跟着客户需求而变动。无意的重复:包括类,需要补充面向对象的知识,注意数据规范。

    类中的方法:保持行为良好。必要时,把持重复,减少维护的损失。

    学会访问他人的技术习惯,然后不断抄袭。

    正交:单一,良好定义的组件,相互隔离,不互相影响。改变其他的,不会影响其他的。

    正交的好处:

    1. 开发测试时间减少,新代码只写单元测试,不用动其他的。

    2. 促进复用,组合和新的组件。

    3. 为了不同的需求,然后重新组合不同的组件。

    风险降低:问题不扩撒,修改还在某一个模块里,测试方便,不会与特定的平台或者产品绑定。

    1. 项目也是,明确分工,需要衡量正交性。

    2. 设计:设计好一个组件,显著改变某个特定的功能的需求,多少模块受影响?尽量一个功能的变动,理论上影响一个模块。

    3. 工具箱:应用的时候,会不会迫使代码照成不必要的变动。

    4.编码的时候, 让代码保持正交,不向其他模块暴露,也不依赖。

    避免使用全局数据,所需要的任何语境显式的传递给模块,更易于维护。

    避免编写相似的函数,不要写重复的代码。

    5.测试:单个模块的编写单元测试,针对每个独立的模块。也是检验正交性的方式,是否独立和切断联系。

    正交:降低模块间的依赖,dry:减少重复。

    可撤销性:没有最终的决策,每一项决策都会导致不同版本的未来,你的代码能支持多少种可能的未来?哪一种未来更有可能发生?到时候支持起来更困难?

    e.g 第三方产品隐藏在定义良好的抽象接口后面。需要彻底的隔离他们,使用元数据。

    曳光弹:1. 用曳光弹比如数据结构,前端框架,拥有产品代码拥有的错误检查,结构,文档,自查。2. 达到段对端的链接,检查距离目标多远,然后增加功能。

    1,用户能及时的看到工作的内容, 2 构建了一个能在其中工作的结构(端到端的设计)3. 集成平台:每天充分测试新的代码。每一个改动很明显,交互有限。

    4 用于演示的东西 5.一个个处理用例,感受到 工作进展。

    曳光模型:1. 怎么结合和整体, 2. 怎么向用户演示,3 实际的交互 4. 软件骨架的基础。算法实现和ui界面,不断添加新功能和测试演示。

    原型:1 为了分析和揭示风险,降低代价, 为修正提供机会;2. 测试性能和计算上面的能力,不需要考虑IU界面。 3. 需要考虑细节的时候,用曳光模型。

    原型研究主体:1,构架 2. 已有系统中的功能 3. 外部数据的结构 4. 第三方工具或组件 5.性能问题 6. 用户界面

    1. 主要组件责任得到良好定义,2.组件间的协作是否得到良好定义 3, 愈合最小化 4. 确认重复的潜在来源 5.接口定义和各项约束是否接受

    每个模块运行时,能否访问到所需要的数据,只要需要的时候访问。

    原型的问题:

    1 靠近问题领域编程,更高的抽象层面编程,获得专心解决领域问题的自由,忽略琐屑的细节。

    最终用户,操作人员,配置于测试管理人员,维护人员,开发者,各自的问题领域,小型环境和语言。

    小型语言:1.扩展已有语言,2. BNF得法定义语法。 又程序员亲自编译,读入,其他途径的用处。而嵌入式语言是直接嵌入 高级命令语言。

    数据语言:1. 配置信息,命令语言:被实际执行,语句。控制结构,类似的东西

    在各自的情景,使用额合理的命令来易于维护。

    语言一开始是捕捉用户需求,然后到可以执行。

    好理解的语言,难以编写,但是初期的努力构建,后期的维护成本会降低很多。

    相关文章

      网友评论

          本文标题:程序员修炼之道 第一部分

          本文链接:https://www.haomeiwen.com/subject/afbnqdtx.html