《构建之法》第4.17章读书笔记
第四章
原文语句:
异常不能跨过DLL或进程的边界来传递信息,所以异常不是万能的。
提出问题:
1.什么是DLL?DLL是来解决什么问题的?
网上说法:
DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。
我的理解:
DLL是存放各种程序函数等内容的一种文件,是一种相对独立地动态链接库,当我们执行程序时,就要从系统中调用多个DLL文件如果想从·其他进程https://blog.csdn.net/shenzi/article/details/4739746共享内存,必须使用内存映射文件或者声明一个共享数据段,一个DLL文件也可以被多个应用程序使用。当我们无法跨越进程地址空间的边界时,我们就需要“DLL注入”技术,将DLL注入到进程地址空间中。这些都是DLL注入的方法和例子:https://blog.csdn.net/zm_21/article/details/52654482、https://www.cnblogs.com/5iedu/p/5180828.html,在我们生活中也经常遇见DLL文件,比如exe文件等。
原文语句:
领航员:审阅驾驶员的文档;监督驾驶员对编程等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体技术问题。领航员也可以设计TDD中的测试用例。
提出问题:
什么是重构?重构的目标是什么?
网上说法:
1、 代码重构(Code refactoring)重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。
重构(),通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。 也许有人会问,为什么不在项目开始时多花些时间把设计做好,而要以后花时间来重构呢?要知道一个完美得可以预见未来任何变化的设计,或一个灵活得可以容纳任何扩展的设计是不存在的。系统设计人员对即将着手的项目往往只能从大方向予以把控,而无法知道每个细枝末节,其次永远不变的就是变化,提出需求的用户往往要在软件成型后,才开始"品头论足",系统设计人员毕竟不是先知先觉的神仙,功能的变化导致设计的调整再所难免。所以"测试为先,持续重构"作为良好开发习惯被越来越多的人所采纳,测试和重构像黄河的护堤,成为保证软件质量的法宝。
2、通过重构可以达到以下的目标:
我的理解:
1、代码重构就是在你的代码中出现过大的类或者过长的方法、牵一毛而需要动全身的修改、类之间需要过多的通讯、过度耦合的信息链等问题时,在不改变软件系统外部行为的条件下,改变它的内部结构,从而达到改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性作用。"测试为先,持续重构",测试和重构成为保证软件质量的法宝。
2、重构的目标有:持续纠偏和改进软件设计、帮助发现隐藏的代码缺陷、有利于提高编程的效率、改善软件的质量,提高代码的可读性,使代码更加的符合人们的需求,促进软件的可持续发展,也为软件的质量提供也保障。
第十七章
原文语句:
人员(People):参照RASCI模型,说清楚谁负责什么,谁不负责什么(说清楚谁不负责有利于大家放手工作)。
提出问题:
什么是RASCI模型?
网上说法:
无论一个科研项目计划本身多么完备细致,具体实施人员及负责分配方面的误解与疏漏总会客观存在,并引发一系列严重问题。
RACI模式旨在帮助大家落实项目定位、分配具体责任,并改善项目成果。据管理学家研究,大多数机构都未能有效处理或高度重视其中最为关键的一大决定性成功因素。所谓决定性成功因素,是指项目实施过程中参与者以及关键负责人的角色定位与责任细则。无论项目规划本身多么详尽完善,参与者与关键负责人在角色定位与责任细则方面的模糊及混乱几乎已经成为一种常态。在每一次着手对陷入困境的项目加以补救时,首先都应将这一因素当作需要优先处理的内容。
RACI模式是目前最简便、最高效的项目角色定位及责任分配方案,将RACI模式与机构的项目运作周期相结合,能够为整体工作带来最大化的效果提升及产出改善。
一、RACI模式中的四大角色定位RACI模式通过严谨的结构与细致的表述,帮助关键性项目负责人找到自己在工作中的准确定位。这套模式的主旨在于明确每个岗位的责任分工,并确保项目中的一切细节都与相应的“执行者”关联起来。在实施RACI模式时,我们首先要对项目中的每项任务、阶段性成果及关键决策进行收集整理,并明确哪些人对特定内容负责、哪些 人需要为特定内容提供咨询及指导意见。所谓RACI模式,四个缩写字母代表的是项目中普遍存在的四种主要管理角色:
负责人(R = Responsible)他们是工作中的“执行者,一切具体执行内容都由他们来掌控。他们的任务是完成目标、处理对象或者做出决策,而且在大多数项目中负责人角色彼此独立。
管理者(A = Accountable): 扮演这类角色的工作人员可以说是任务的“拥有者”,一项任务、具体工作或者责任内容是否完成需要由他们来签字确认。管理者的职能是确保各项任务按预期分配给对应负责人。要让项目取得成功,必须确立惟一一位管理者,这样才能保证出现问题时问责机制能够立即发挥作用。
顾问(C = Consulted): 这类角色需要在工作正式开展之前提出建议,并对讨论结果进行签字确认。他们始终处于讨论、审议实施效果、讨论的工作循环之中,并以参与者的角度全程监控。
指导员(I = Informed): 这类角色需要时刻关注“发展蓝图”,他们的责任是在项目过程及决策环节提供指导意见,但并不会直接以顾问身份出现。而且他们的看法也不会直接影响任务或议程的结果,指导意见”或者说“参考意见”是他们对于管理者们的主要贡献。
除了RACI以外,RASCI和RASIC也都是用来描述变革过程中的角色、任务的。其中支持者(S= Support)是对任务提供支持, 辅助任务的完成的角色。以下主要介绍RACI模式的应用。
二、RACI模式的实际应用RACI模式的实际应用并不复杂,只需以下六个简单步骤,我们
1. 确定项目实施过程中涉及的所有具体任务,并在图表左侧按照优先级顺序将内容一一列出。对于项目而言,这样做能够最大程度地保证项目周期与交付成果之间的平衡。
2. 列出项目中所有相关负责人,并将他们在图表上方一一列出。
3. 将模式中的每个工作单元划分出来,并确定哪些人在其中扮演负责人或者管理者的角色。接下来考量工作人员的职业技能与知识背景,并为每项具体任务分配合适的顾问及指导员。
4. 确保每项任务都拥有至少一位主要负责人。
5. 每项任务最多只能分配一位主要管理者。这样做是为了避免同一项特定任务由于决策者过多而导致冲突或意见分歧。
6. 将RACI模式与团队中的主要负责人分享,确保大家都能够在讨论之后认同这种执行方案。在项目启动之初做好这些准备工作,能够防止未来可能出现的意见分歧或者沟通障碍等负面影响。下图所示的就是一套简化版的RACI模式,我们可以从中看到项目如何按特定流程转化为方案内容:
我的理解:
RASCI模型当中R是指负责人,A是指管理者,S是指支持者,C是指顾问,I是指指导者。RACI、RASCI和RASIC也都是用来描述变革过程中的角色、任务的,都是一种科学合理的具体实施人员及负责分配方面的模型,旨在帮助大家落实项目定位、分配具体责任,并改善项目成果。其中RACI模型是运用最简单、最快捷的模型。RACI模型是在专案管理或组织改造时常用的工具。任何一项流程改造或专案的活动,都不会自动发生,除非“人”让它发生,RACI就是协助你找到那个“人”及其他必要资源的有效分工计划工具。