代码大全阅读随笔(一)

软件构建的步骤
定义问题——》需求分析——》规划构建——》软件架构——》详细设计——》编码与调试——》单元测试——》集成测试——》集成——》系统测试——》保障维护

构建具体的一些任务:
①验证有关的基础工作已经完成, 因此构建活动可以顺利进行
②确定如何测试所写代码
③设计并编写类和子程序
④创建并命名变量和具体常量
⑤选择控制结构,组织语句块
⑥对你的代码进行单元测试和集成测试,并排除其中的错误
⑦评审开发团队其他成员的底层设计和代码,让他们评审你的工作
⑧注释补充,进行代码格式化,和注释添加
⑨将单独开发的多个软件组件集合成一体
⑩调整代码,让它更快,更省资源

什么是建模:
通过把你不太了解的东西和一些你的理解且十分相似的东西进行比较,你可以对这些不太理解的东西产生更深刻的理解,

程序员是软件食物链的最后一环,架构师吃掉需求,设计师吃掉架构,而程序员则消化设计。
发现错误的时间尽可能接近引入该错误的时间。

需求,架构,详细设计,构建, 质量保证/系统测试。 绝大部分的项目来说,各种活动会在一定程度上有所重叠。

需求详细秒数软件系统应该做什么,这是达成解决方案的第一步,需求活动也称需求开发,需求分析,需求定义,软件需求,规格书,功能规格书,充分详细色描述需求,是项目成功的关键,它甚至很可能比有效的构建技术更加重要。
需求像水,如果冻结了。就容易在上面开始建设。
应该明确定义各个构建块的责任,每个构建块应该负责某一个区域的事情,并且对其他构造块负责的区域知道越少越好。 通过使用各个构造块对其他构造块的了解达到最小,你能将设计的信息局限于各个构造块内部。

应该明确定义灭一个构造块的通信规则,对于每个构造块,建构应该描述他能直接使用那些构造块,能简介使用那些构造块,不能使用那些构造块。

Major Classes
架构应该能详细定义所用到的主要类。他应该指出每一个主要类的责任,以及该类如何与其他类交互。 他应该包含对类的继承体系,状态转化,对象持久化等的描述。如果系统足够大,他应该描述如何将这些类组织成一个个子系统。

Data Design
架构应该描述所用到的主要文件,和数据表的设计。他应该描述曾静考虑过的其他方案,并且说明做出选择的理由。数据通常应该由一个子系统或一个类能直接访问。

架构应该模块化,以便在替换新用户界面时不影响业务规则和程序输出部分。例如:架构应该使我们很容易地做到,砍掉交互界面的类,插入一组命令行的类。

好的架构设计应该与待解决的问题和谐一致,在查看架构时候,你应该很愉快,因为他给出的解决方案看上去既自然又容易。

构建要点:
①构建活动的准备工作根本目标在于降低风险,而要确认你的准备活动是在降低风险,而非增加风险。
②如果你想开发搞质量的软件,软件开发过程必须由始至终关注质量,在项目初期关注质量,对产品质量的正面影响比在项目末期关注质量的影响要大。
③程序员的一部分工作是教育老板和合作者,告诉他们软件开发过程,包括开始编程之前进行充分准备的重要性。
④你所从事的软件项目的类型对构建活动的前期准备有重大影响,许多项目应该是高度迭代式的,某些应该是序列式的。
⑤如果没有明确的问题定义,那么你可能会在构建期间解决错误的问题。】
⑥如果乜有良好的需求分析工作,你可能没能察觉解决问题的重要细节,如果需求变更发生在构建之后的阶段,其代价是在项目早期更改需求的20倍至100倍,因此再开始编程之前,你要确认需求已经到位。
⑦如果没有良好的框架设计,你可能会在构建期间用错误的方式解决正确的问题。架构变更的代价会随着,为错误的架构编写的代码数量增加而增加,因此也要确认架构已经到位。
⑧了解项目的前期准备所采集的方法,并相应的选择构建方法。

在高质量的软件中,你能看到架构的概念的完整性与底层实现之间的关系,实现必须与指导该实现的架构保持一致,并且这种一致性是内在的,固有的。
大多数重要的编程原则:并不依赖特定语言,而依赖于你使用的语言方式,如果你使用的语言缺乏你期望的构件,或者倾向于出现的其他种类问题,那就应该试着去弥补它。

你可能感兴趣的:(c#)