③测试接口定义的程序语意,而不是当前实现的具体行为
④对重要的模块,编写的时候就要做到基本性能测试
⑤对程序交付以后出现的问题和Bug,要构建相应的测试程序并提交代码库,保证以后回归测试可以自动运行这个测试
二:进阶通道
2.1需求分析:明确模糊不清的问题
①明确问题的边界条件 。
比如金额必须要有明确的数字,才算有边界条件,否则程序就没法写 。只有把边界条件明确地说清楚,定义出其中的规则和决策方式,软件工程师才能写出程序来 。
②关注不可预期案例 。
绝大多数人都会把时间花在可预期的事情上,而忘了关注不可预期的、可能出现故障的一些问题 。比如当这个程序走到某一步,走不下去了,怎么办? 而软件工程师必须把这些环节明确出来 。
2.2设计程序:学会谋篇布局
软件工程师设计程序更多需要的是谋篇布局的能力、思考总结的能力 。到这个阶段,就要有一定的独立思考的能力 。别人只给你一个问题,你要给出合理的科学的解决方案 。
2.3高度抽象:设计需要抽象的能力
所以,从众多的实例、案例中归纳总结出通用的方法和规则,是抽象的核心思想 。简单来说就是,对一个概念或一种现象包含的信息进行过滤,移除不相关的信息,只保留与某种最终目的相关的信息 。
①过程抽象
所谓过程抽象,就是把要解决的问题分解为一个个小的子问题,然后用一个个独立的代码模块(如函数、类、API等)来完成,再把这些代码模块组织起来构建成一个复杂的系统 。在组织的过程中,消除相似的模块,消除模块间的依赖,尽可能让每个模块都能重用到其他业务场景下 。这样就完成了抽象 。
②数据抽象
而所谓数据抽象,就是将复杂数据的使用和它的构造分离开来,数据结构用于定义数据的构造,数据接口用于定义数据的使用 。通过隐藏数据对象的内部特征,定义数据的外部使用,大大降低系统的复杂度 。
2.4原型设计
①从最难得做起
先做最难的部分,既能提早发现问题,又能节省开发时间 。如果在原型设计阶段解决了最难的问题,那么后期整个项目的推进就非常顺利 。当然,如果你对最难的部分做了评估后,觉得以当下的技术和人员难以攻克,那么整个项目可能就要往后放一放,不必继续浪费时间 。
②原型设计的关键是接口
原型设计最根本的哲学不是实现功能,而是要注重接口 。因为接口的好坏会直接决定整个项目设计的好坏 。做接口设计时,要想一想每个阶段可能会调用哪些接口、每个接口需要哪些字段、怎样定义数据,等等 。只有把这些问题想清楚,才能避免不确定因素对项目整体的影响 。
2.5架构设计
①分而治之,理清思路
架构设计就是把需求进行抽象和分解 。作为设计架构的人,首先你要知道怎样把同类型的内容抽象出来,还得知道实现目标要分成哪些步骤,以及怎么从大的步骤里切出小模块(设计模式)
②考虑异常情况和极限情况
第一,考虑系统的异常情况 。我们必须假设任何环节都会出问题,都会出现异常,并基于这种假设,去做更周全的架构设计,我们需要知道每个异常出现后应该怎么解决 。
第二,考虑系统的极限情况 。我们做一个系统,就要提前考虑这个系统最大能承受多大的流量,在发生一些极限情况时,系统会怎么反应 。
2.6技术调研:寻找最优解决方案
技术团队经常会接到一些以前没做过的需求,不太确定实现细节,这时候就需要做技术调研,看看同样或类似的需求在业内有没有被实现过,分析不同方案的优缺点,得出结论,做出决策 。
- 我需要一台代步车,爆红的那种 五菱吉尼斯记录
- 排位900连胜!国一阿古朵打破骚白纪录,AG梦泪的点评略显真实 梦飞吉尼斯记录
- 夜游南昌:一江两岸灯光秀,吉尼斯世界纪录认证的“视觉盛宴” 南昌夜景吉尼斯记录
- 公务员考试的题目到底有多离谱?看看这几道题目,考生直接崩溃 世界之最公务员考试题目
- 十大终极杀手之一的鳄鱼拥有一颗“慈悲的心”? 鳄鱼八大世界之最图片高清
- 五一小长假冷水江市波月洞景区异常火爆 波月洞三个世界之最介绍
- 每日一动物:羊驼「yáguó」 动物界中的世界之最的英文
- 西沙,我们心中最重的沙 祖国版图上的一个世界之最
- 初一英语成绩多少分正常,亲身经历分享给大家 初一英语写世界之最好吗
- 买香水怎么问比较专业,朋友介绍我购买一款ck香水,想问一下ck香水怎么样