- 博客(7)
- 收藏
- 关注
原创 软件构造笔记——软件质量
最近软件构造复习到了软件质量的问题,有些感想,做个整理: 软件质量 :外部质量因素:速度或易用性等质量,其用户可以检测到软件产品的存在与否(不仅是实际与最终产品交互的人,还有购买软件或合同的人它的发展)。 适用于软件产品的其他质量,例如模块化或可读,是内部因素,只有能够访问实际软件文本的计算机专业人员才能感知。 内部质量影响使用代码的内部人员 最终只有外部因素比较重要 达到这些外部因素的关键在于内...
2019-06-24 00:05:51
269
原创 软件构造笔记
最近看了软件构造的概论,略有思考,便整理了一下 软件构建时: 时刻 代码级别:源代码,抽象语法树,内部类属性方法 组件级别:包,源文件,静态链接库,测试用例 时期 代码级别:代码变化 组件级别:环境项目 运行时: 时刻: 代码级别代码快照、内存dump 组件级别:包,动态链接库、环境、数据库、中介软件、网站、硬件 时期: 代码级别:执行轨迹、过程调用图,消息图(序列图)并行和多线程...
2019-06-24 00:00:14
143
原创 软件构造学习心得——lambda表达式
这次在写实验六的时候解除了一个新的东西,java lambda表达式,它是java 8 新加入的。它使得java的代码更加精炼紧凑。 Java lambda表达式通常用于实现简单的事件侦听器(event listeners)/回调(callbacks),或者使用Java Streams API进行函数式编程。 实现事件侦听器: 在java7中,如果你需要区实现一个方法去为某个状态变化侦听的化,想像...
2019-06-18 10:39:41
194
原创 软件构造学习笔记——并行
共享内存: 共享内存可能会导致微妙的错误! 例如:银行拥有使用共享内存模型的自动提款机,因此所有自动提款机都可以在内存中读取和写入相同的帐户对象。为了说明可能出现的问题,让我们将银行简化为一个帐户,余额变量中存储美元余额,两个操作存款和取款只需添加或删除一美元:假定每次存/取款都处理1美元 为了说明可能出现的问题,让我们将银行简化为一个帐户,余额变量中存储美元余额,两个操作存款和取款只需添加或删除...
2019-06-17 22:01:31
124
原创 软件构造学习笔记——代码异味
代码异味code smell代码异味(卫生)Code "smells"(hygiene)重复的代码:过长的方法:庞大的类:长的参数表:不同方向的变化:霰弹式修改依恋情结 Feature Envy:数据堆积:基本类型迷恋(primitive obsesstion)Switch语句:平行继承层次:冗余类:暂时的字段消息链:中间人:过度亲密:具有不同接口的替代类(Alternative Classes ...
2019-05-26 22:17:14
475
原创 软件构造学习笔记——重构
重构什么是重构?代码维护:什么是“重构”?为什么重构呢?什么时候去重构呢?例子1:例子2:例子3: 什么是重构? 问题:比特衰减(Bit rot) 在几个月后或者几个新版本后,许多代码库(databases)达到下面一种状态: 重写:什么都没有从原始代码中留下来 遗弃:原始代码被扔掉了,被从头重写 为什么呢? 系统进化去满足新的需求和添加新的功能 如果代码的结构不也进化,它将会“腐烂” 即使代码起...
2019-05-26 21:51:41
412
原创 软件构造学习笔记——并发
并发编程 什么是并发编程 并发意味着多个运算同时发生:在现代编程中并发到处都是: 网络上的多个计算机 在一个计算机上运行的多个程序 一个计算机上的多个进程 并发在现代编程中十分关键: 网站必须解决多个同时的用户 移动app需要在服务器上处理他们的进程(云处理) 图形用户界面几乎总是需要不会中断用户的后台工作。 为什么并发? 处理器始终速度不断增加 新一代的芯片都会由很...
2019-05-23 00:41:25
173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人