首页 > 其他分享 >阅读笔记5

阅读笔记5

时间:2024-06-05 22:11:00浏览次数:17  
标签:估算 重复 代码 笔记 正交 原型 阅读 组件

1 重复的危害
系统中的每一项知识都必须是单一、无歧义、权威的表示;
DRY- Dont repeat yourself 不要重复你自己;
重复如何发生
       强加的重复
               信息的多种表示
               代码中的文档; 把注释保留给其他的高级说明
               文档与代码
               语言问题;
        无意的重复
               设计问题; 使影响局部化;
无耐性的重复
               走捷径;欲速则不达
开发者之间的重复
               交流,促进知识的沟通;
2 正交性
正交性:表示某种不相依赖性或是解耦性;
消除无关事物之间的影响,让组件独立、具有单一、良好定义的目的称为内聚;
正交的好处
提高生产率
        改动能局部化;
        促进复用;
        重叠减少,生产率提高
降低风险
        降低开发中的固有风险
        问题代码被隔离
        系统更健壮;
        更好的测试;
项目团队
        团队的组织有许多重叠,各个成员对责任感到困惑,效率差;
设计
        系统多个模块,分层架构
工具箱与库
        引入第三方要注意保持系统正交性明智选择技术
        面向切面编程 AOP
编码
        每次编码都有降低系统正交性的危险;
        让你的代码保持解耦
        避免使用全局数据
        避免写相似的函数
        养成不断批判对待自己代码的习惯;
测试
        正交的设计和实现,易于测试;
文档
        正交性利于文档的编写
3 可撤销性
不必作出许多关键的、不可逆转的决策;
不存在最终决策;
保持架构的灵活性,预先考虑问题,抽象服务等,只需要改配置文件;
薛定谔的猫
        猫,粒子50%机会分裂猫会死,猫是死是活?
        答案都是; 每当有两种可能结果的亚核反应发生时,宇宙就会克隆,一个发生一个不发生,只有你打开盒子才知道,你在哪一个宇宙中;
        每一项代码决策都导致不同版本的未来;
4 曳光弹
黑暗中机枪射击?1 找出目标确切的位置 2 曳光弹与常规弹交接射击,不断获得反馈;
在黑暗中发光的代码;总有改动需要完成,总有功能需要增加,渐进的过程;
优点
        用户能及早看到能工作的东西
        开发者构建了一个他们能在其中工作的结构;
        有了一个集成平台;
        有了可演示的东西
        能感觉到工作的进展;
原型制作:探究系统的某项具体的方面,对概念实验后,东西扔掉,根据学到的经验教训重新编码;
        你设计一个用户界面,用户满意后,把它扔掉,重新用目标语言编码;
原型制作生成用过就扔的东西,曳光代码虽然简约,却是完整的,并且构成了最终系统骨架的一部分。
5 原型与便笺
为了学习而制作原型
怎样使用原型
        正确性:适当使用虚假数据
        完整性:出错入参
        健壮性:可能不完整
制作架构原型
        主要组件的责任是否得到良好的定义
        主要组件的协作是否定义
        耦合是否最小化
        能否确定重复的潜在来源
        接口定义和各项约束是否可接受
怎样不适用原型
        确定是用过就扔,不会不熟的,不完整;
        坚持部署原型,适用曳光弹;
6 领域语言
靠近问题领域编程
        实现小型语言
        数据语言与命令语言
        独立语言
        易于开发还是易于维护?可扩展性与维护权衡
7 估算
估算,以避免意外发生;
多准确才足够准确; 某种程度上,所有的解答都是估算,只不过有一些更准确;
使用估算的单位不同会对结果的解读产生影响;
        130个工作日,相当接近的时间完成
        6个月,5-7个月完成;
        130更高的精确程度;
估算来自哪里;以问题的模型为基础;
理解提问的内容
        建立系统的模型;建立粗略、就绪的思维模型
        把模型分解为组件;每个组件都有一些参数
        给每个参数指定值
        计算答案
        追踪你的估算能力
估算项目的进度
        检查需求
        分析风险
        设计、实现、集成
        向用户确认
在被要求估算时说什么
        我等会儿回答你,今天晚上给你答复;

标签:估算,重复,代码,笔记,正交,原型,阅读,组件
From: https://www.cnblogs.com/Christmas77/p/18234011

相关文章

  • 阅读笔记3
    今天看了构建之法的第一章,有一些心得体会。在这一章中,作者为我们介绍了一些关于软件工程的基本知识。①软件=程序+软件工程:正是因为对软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。扩展的......
  • 阅读笔记4
    要做好管理,具体应该怎么做呢?作者给开出的药方,归纳来说,就三步:①找到正确的人②营造良好环境③打造高效团队人是天生的,管理者不可能从本质上改变员工,因此从一开始就找到正确的人至关重要。理想的工作状态是“流状态”——是一种深度的近乎冥想的状态。这种状态下,人们几乎意识不......
  • 阅读笔记1
    这几天开始了第二章的阅读,同样,标题让人捉摸不透--死定了,怀着疑问的心情我继续读了下去,这一章同样是运用叙事的方式,一开头讲述了程序员们因为完不成任务而陷入深深的苦恼中,他们其中的人认为原因是一直没有蓝图,才会碰到难以预料的问题,而另一个人认为不确定因素太多,所需时间取决于他......
  • 阅读笔记2
    1.团队和流程团队有一致的集体目标,团队要一起完成这目标。团队成员有各自的分工,互相依赖合作,共同完成任务。团队的集中工作模式(主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚漠式)开发流程:(写了再改漠式、瀑......
  • Day1 学习笔记及成果---MapReduce实现手机流量统计分析
    Day1学习笔记及成果—MapReduce实现手机流量统计分析题目统计每个手机号上行流量和、下行流量和、总流量和(上行流量和+下行流量和),并且:将统计结果按照手机号的前缀进行区分,并输出到不同的输出文件中去。13*==>…15*==>…other==>…其中,access.log数据文件部分......
  • Day2 学习笔记及成果---基于MapReduce项目实现中所遇到的问题及解决方法
    Day2学习笔记及成果—基于MapReduce项目实现中所遇到的问题及解决方法问题一:主机和虚拟机互相能ping通,主机能ping通外网,虚拟机不能ping通外网。解决方案:可能的错误原因是网关设置有问题,虚拟机的网关应该和自己的网关一直,自己的网关可在编辑-虚拟网络设置中查看。首先执......
  • 【YOLOv8改进】D-LKA Attention:可变形大核注意力 (论文笔记+引入代码)
    YOLO目标检测创新改进与实战案例专栏专栏目录:YOLO有效改进系列及项目实战目录包含卷积,主干注意力,检测头等创新机制以及各种目标检测分割项目实战案例专栏链接:YOLO基础解析+创新改进+实战案例摘要医学图像分割在Transformer模型的应用下取得了显著进步,这些模型在捕......
  • 【大物实验】期末复习双语笔记
    3vectorsandscalar20dampedharmonicmotion,forcedharmonicmotion,superpositionofSHMdampedharmonicmotionunderdampedmotion:欠阻尼criticaldamped零界阻尼overdamped过阻尼energyofdampedharmonicmotionapplicationofdampedoscillation:......
  • 初识C语言(03)—学习笔记
    常见关键字C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。归类下面是按照关键字的用途不同进行的归类变量的命名规则有意义,例如intage;floatsalary;等名字必须是字母、数字、下划线组成,不能有特殊字符,同时不能以数字......
  • 【调试笔记-20240601-Linux-在 OpenWRT-23.05 上配置 frpc 实现内网穿透】
    调试笔记-系列文章目录调试笔记-20240601-Linux-在OpenWRT-23.05上配置frpc实现内网穿透文章目录调试笔记-系列文章目录调试笔记-20240601-Linux-在OpenWRT-23.05上配置frpc实现内网穿透前言一、调试环境操作系统:OpenWrt23.05.3调试环境调试目标二、调试步......