我们的软件出了什么问题------《敏捷软件开发:原则、模式与实践》(一)

最近一直在读《敏捷软件开发:原则、模式与实践》,做做笔记。

第一篇 软件设计存在的问题

我们知道,系统的设计,是存在于头脑中的衣服至关重要的图像。

即使我们在一开始的设计阶段,就非常清晰的了解了需求,甚至于在发布的时候,依然清楚。但是在接下来,随着不断的使用,弊端、不足会一一的被暴露出来。系统变得越来越难以维护,最后,即使仅仅进行最简单的更改,也需要花费巨大的努力。

笔者提出了一下观点:当软件出现了下面任何一种气味时,就表明软件正在腐化:

1、僵化性:很难对系统进行改动。因为牵扯到其他太多部分的改动。

2、脆弱性:对系统的改动会导致心痛中和改动的地方在概念上无关的许多地方出现问题。(开发人员就像是一只不停追逐自己尾巴的狗)

3、牢固性:很难解开系统的纠结,使之可重用。

4、粘滞性:做正确的事比做错误的事要困难。

两种表现形式:软件的粘滞性和环境的粘滞性

面临一个改动时,开发人员发现,有一些方法会保持设计,但是实施起来困难,另一些方法会破坏设计,但是实施起来相对简单。而我们希望的是,可以更容易地进行哪些保持设计的变动。

5、不必要的复杂性:设计中包含有不具任何直接好处的基础结构。

6、不必要的重复:设计中包含有重复的结构,而该结构本可以使用单一的抽象进行统一。

7、晦涩性:很难阅读、理解。

待续.....

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小怪聊职场

用户画像(二)|为“一面APP”数据建模一、一面产品介绍二、为一面APP数据建模三、为一面APP数据建模

3556
来自专栏ThoughtWorks

TW洞见 | 运用系统思考,走上改善之路

今日洞见 文章作者来自ThoughtWorks:李剑。图片来自ThoughtWorks。 本文版权归【ThoughtWorks中国】(微信ID:思特沃克Thou...

3415
来自专栏PPV课数据科学社区

2016年最流行的六大深度学习开源工具

对于希望在应用中整合深度学习功能的开发者来说,GitHub上其实还有很多不错的开源项目值得关注,以下我们推荐2016年人气最高的六款开源深度学习工具:(阅读原文...

3098
来自专栏Forrest随想录

AI时代,我们离AIOps还有多远?

AI时代,AIOps热炒,这篇算是蹭个热点:)。回到本行,我们运维应该关心的是什么:

1392
来自专栏斑斓

结束语与参考文献

四. 结束语 遗留系统的技术栈迁移可能是一个漫长艰苦的过程,它的难度甚至要高于新开发一个系统,这是因为我们常常会挣扎在新旧系统之间,并在不断的妥协、权衡中缓步前...

3587
来自专栏互联网数据官iCDO

6个分析方法快速诊断搜索竞价排名(SEM)的表现

  这篇文章给需要快速了解一个账户的朋友们使用。这六个方法分别是:“一九”分布、消费和转化的四象限、转化分解、核心词互动度与ROI的气泡图分析、单页推广的核心词...

3195
来自专栏ThoughtWorks

小数据:理论和架构 | TW洞见

今日洞见 文章作者及图片来自ThoughtWorks:熊节。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站...

3275
来自专栏互联网数据官iCDO

排名到底和谁相关?---论域名权威与品牌搜索量

两周前,我很高兴有机会在Search Love San Diego的活动上演讲。那次演讲的主题围绕“谷歌是否还重视链接?”该演讲着眼于谷歌在2017年会如何以及...

1454
来自专栏机器学习和数学

Newton迭代法

今天和大家分享一下,之前抽空写的一篇论文,主要内容就是Newton迭代法,属于数学里面比较基础的,原理也不难,主要通过Newton迭代法可以体会到迭代的思想,以...

1476
来自专栏新智元

【AI大红包】Facebook发布张量理解库,几分钟自动生成ML代码

新智元报道 来源:research.fb.com 编译:文强 【新智元导读】Facebook今天宣布发布Tensor Comprehensions,能够...

34815

扫码关注云+社区

领取腾讯云代金券