1.7代码注释:像说明书一样清晰
其实我觉得好的注释是,别人带着问题去看你这段代码和注释,看完以后问题就解决了 。当我去调用这个模块或者函数时,好的注释直接摆了个例子告诉我,你这样写就好了,就像一份说明书,你去看的时候,脑海里有一个目标,然后它会非常清晰地一步一步告诉你,这样做就可以了 。这就是注释应该起到的作用 。
1.8编程原则:教科书没有告诉你的“为什么”
①避免重复原则
写代码的时候,如果出现雷同或相似的片段,就要想办法把它们提取出来,抽象成一段独立的代码.然后用这一段代码去解决多种问题 。因为这样做既能降低程序的复杂度,又能减少维护的工作量 。用一种方式解决多种问题,是避免重复原则的精髓,所以写代码写到高级阶段,其实是做数学建模 。
②单一职责原则
一个类或者模块应该有且只有一个职责,简单来说就是各司其职 。单一职责原则除了可以把复杂的问题简单化、模块化,从而降低问题的复杂度,让你更容易实现和驾驭,它还是一个可以让你的组件不断复用的原则 。
③高内聚、低耦合原则
这是UNIX操作系统设计的经典原则,其中内聚指的是一个模块内各个元素彼此结合的紧密程度,耦合指的是不同模块之间的依赖程度 。高内聚,低耦合(也叫解耦)简单来说,是让每一个模块做到独立,做到精益求精,同时把模块间的耦合降到最低,不会因为动了一个模块,而导致其他模块出问题 。
④开闭原则
开闭原则具体来说是指,对修改是关闭的,对扩展(协议)是开放的,这是为了保证把稳定的东西放在内核,把易便的东西扔出去,最终保证稳定性和重用性 。
1.9解决问题:别把原则当教条
毕竟我们编码的最终目的不是符合哪项原则,而是解决实际问题 。程序就是一个解决问题的手段,核心问题是:这个程序真正要解决的问题是什么 。
1.10全面思考:做测试比写代码难
①单元测试,一般是白盒测试
【一笔记 | 这就是软件工程师】单元测试的目的就是测试这些零件是否都能正常工作,可以说,单元测试实力问题最近的地方 。
②功能测试,一般是黑盒测试
一个功能是由很多个单元模块组装起来的,如果这些单元模块没有很好地配合在一起,互相矛盾,那整个功能也就不能正常实现了 。因此,软件工程必须有功能测试,测一测各个模块合在一起能否正常运转 。
③集成测试
从测试的角度来讲,单元测试测的是家庭,功能测试测的是社区,集成测试测的是整个城市的交互 。具体到软件工程上,集成测试其实模块和模块之间或者系统和系统之间的测试 。
④非功能测试
比如性能测试、安全测试、稳定性测试、健壮性测试、破坏性测试、可用性测试、灵活性测试,等等 。非功能测试主要用来检查软件应用程序的非功能性方面(性能、可用性、可靠性等),帮助降低与产品非功能性方面相关的生产风险和成本,优化产品的安装、配置、执行、管理和监控方式 。
⑤回归测试
回归测试的意思是把以前做过的测试以及犯过的错误再测一遍 。它的主要目的是确保代码或配置的修改、需求的增加不会影响现有的功能 。通常来说,回归测试的成本是非常大的,尤其是对那些使用人肉测试方式的公司来说 。所以一般来说,回归测试意味着自动化测试 。
1.11程序测试:对软件工程师的基本要求
①测试要自己做,尤其不能让用户称为你的测试工程师
②除了测试基本输入以外,还要努力构想更多的边界条件
- 我需要一台代步车,爆红的那种 五菱吉尼斯记录
- 排位900连胜!国一阿古朵打破骚白纪录,AG梦泪的点评略显真实 梦飞吉尼斯记录
- 夜游南昌:一江两岸灯光秀,吉尼斯世界纪录认证的“视觉盛宴” 南昌夜景吉尼斯记录
- 公务员考试的题目到底有多离谱?看看这几道题目,考生直接崩溃 世界之最公务员考试题目
- 十大终极杀手之一的鳄鱼拥有一颗“慈悲的心”? 鳄鱼八大世界之最图片高清
- 五一小长假冷水江市波月洞景区异常火爆 波月洞三个世界之最介绍
- 每日一动物:羊驼「yáguó」 动物界中的世界之最的英文
- 西沙,我们心中最重的沙 祖国版图上的一个世界之最
- 初一英语成绩多少分正常,亲身经历分享给大家 初一英语写世界之最好吗
- 买香水怎么问比较专业,朋友介绍我购买一款ck香水,想问一下ck香水怎么样