2,3,4,11章

绝大部分软件都是由多人合作完成的,大家的工作相互有依赖关系。单元测试应该准确,快速的保证程序基本模块的正确性。代码的作者最了解代码的目的,特点和实现的局限性。单元测试后,机器状态保持不变,单元测试要快,应该可重复,一致的结果,独立性,应该覆盖所有代码路径,应该集成到自动测试的框架中,必须和产品代码一起保存和维护。人们在实践中碰到的需求是经常变化的,软件设计的许愿原则是从实践而来,这些原则正是为了在不断变化的需求中保证程序的可维护性型和效率。从数据方面,需求方面,用户方面,软件构建方面扩展。

软件攻城包括了开发,运营,维护软件的过程中的很多技术,做法,习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,较软件开发流程,软件开发流程的目的是为了提高软件开发,运营,维护的效率,以及提升用户满意度,软件的可靠性和可维护性。然间开发流程不光指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的。在团队的大流程中,是每一个具体的个人在做开发,测试,用户界面设计,管理,交流等工作因此,个人在团队中也有独立的流程。把每个人的工作有序的组织起来,就是团队的流程。

软件工程师需要累计软件开发相关的知识,提升技术技能,积累问题领域的知识和经验,对通用的软件设计思想和软件工程思想的理解。提升职业技能,实际结果。

大多数工程师都在团队的环境中工作,因此要求做到:交流,说到做到,接受团队赋予的角色并按照角色要求的工作,全力投入团队的活动,按照团队流程要求工作,准备,理性的工作。软件工程师要避免分析麻痹,不分主次想解决所有依赖问题,过早优化,过早扩大化/泛化。

现代软件产业经过几十年的发展,软件基本都是在相互合作中完成的,而合作的最小单位就是两个人因此你的代码就需要如下规范:代码风格规范,设计规范。代码风格的原则是:简明,易读,无二义性。

我们写软件就是为了解决用户的需求,整个软件开发周期我们需要表达,传递和处理信息。人们经常用图形来帮助他们了解概念,强化记忆。思维导图是其中一个例子,思维导图没有严格的语法定义,几乎每个人都能开始画图。

在我和我的同伴练习源代码的过程中,了解到源代码必须由最熟悉代码的人来写,因为代码的作者了解代码的目的、特点和实现的局限性。所以,写源代码没有比作者更适合的人选了。项目往往有成百上万行的代码,这就需要小组成员之间的合作,而往往合作又会遇到各种各样的问题

 如1.代码衔接不好,同一个项目小组成员之间没有协同好用不同的算法参数造成程序无法运行

      2.由于粗心大意代码的字母打写错误,造成程序无法运行,或者标点符号的缺失。而这类错误往往需要耐心去发现

     3.设计的程序不符合最先的要求,原因是在编写程序中小组成员没有协商好

     4.编程能力缺失,方法思路有却无法编写成想要的程序,这需要团队成员扎实的编程基础

之后我们又探讨到了代码复审这一部分,在我们看来,要做到代码更加完美,需要一遍遍的复审代码,不容许有一丝错误的存在,那么就会存在一个问题:若果开发者做到完美,那么复审者的时间和精力就是一种浪费了?答:不对,即使是完美,代码复审也还有“教育”和“传播知识”的作用。更重要的是,不管多么厉害的开发者都会或多或少地犯一些错误,有欠考虑的地方,如果有问题的代码已签入到产品代码中,在要把所有的问题找出来就更困难了。大家学习软件工程都知道,越是项目后期发现的问题,修复的代价越大。代码复审正是要在早起发现并修复这些问题。另外,在代码复审中的问题与回应能帮助团队成员互相了解,就像练武之人相互观摩点评一样。

posted @ 2018-04-26 17:53  情悸心穹  阅读(85)  评论(0编辑  收藏  举报