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