文档章节

沉思录:别人的棺材

雅各宾
 雅各宾
发布于 2013/11/28 09:37
字数 556
阅读 82
收藏 0
点赞 0
评论 0

一个大的软件系统通常包括若干子模块。通常来说,良好的设计具有这样一些特点:
    1.模块功能单纯、明确、不重叠;
    2.模块之间的通讯接口清晰;
    3.模块耦合度较小。

现在有A、B、C...等几个模块,B模块(但不限于B模块)负责生成指令,A模块负责执行指令,两个模块对指令的格式定义了规约。

B模块生成的指令,可能在格式上就是不正确的,也可能格式正确但内容非法,比方说,指令里的某个参数不得超过某个值,否则A若照搬执行,即会造成严重后果。很显然,A模块必须具有严谨的逻辑分析例程,要考虑所有边界条件和异常情况。

现在有人提出一种“更保险的”设计方案:B模块也要实现同样的指令逻辑分析例程。乍一看,似乎颇有些道理,实际上……,唔,你说呢?

道理其实很简单。假如现在C、D、E...等(第三方)模块都要向A模块发送指令呢?更有甚者,假如指令分析的业务规则发生了变动呢?你希望只修改一处逻辑分析例程,还是修改好多处?

类似地,还有一些 不属于技术认识缺陷的例子。

在一个开发团队中,本来是甲的任务,却被乙做掉了,或者甲已经开发过的好端端的模块,乙也要写一个功能类似的“更好的”模块。

不管是乙的自作多情,还是某人打着“团队协作”幌子的无端指派,造成的后果都可能会比B模块执行了一个非法指令所导致的后果,严重得多。

那些来源于生活、听起来滑稽的故事常常使我们感到好笑,以至于忘了自己可能就是笑话中的丑角,或许有些话非得说到极端才能 振聋发聩
把别人家的棺材抬回自己家哭”,说的就是这个道理。

本文转载自:http://blog.csdn.net/optimizer/article/details/14428

共有 人打赏支持
雅各宾
粉丝 9
博文 123
码字总数 52806
作品 0
深圳
技术主管
Android开发技术周报 Issue#151

十月 23, 20170 条评论AndroidDevWeekly 新闻 关注我就能达到大师级水平,这话我终于敢说了 安卓之父的全面屏Essential Phone降价促销:4000元 只能插线当U盘?安卓USB这些神奇用途你知...

脉脉不得语
2017/10/23
0
0
Android开发技术周报 Issue#155

十一月 20, 20170 条评论AndroidDevWeekly 新闻 Google 开发技术周刊 088 期 11月Android占比出炉:上线数月Android 8.0 Oreo占比为0.3% 小容量手机福音:Android 8.1将优化非活跃APP...

脉脉不得语
2017/11/20
0
0
Android开发技术周报 Issue#161

一月 02, 20180 条评论AndroidDevWeekly 新闻 Firebase 控制台更新 宣布在TensorFlow Lite 中支持Core ML 让 Pixel 更适合驾驶员 Android Things Developer Preview 6 教程 小窗播放视...

脉脉不得语
01/02
0
0
笨办法学C语言

继《笨办法学Python》之后,Zed Shaw开始动手写《笨办法学C语言》。 和《笨办法学Python》一样,这本C语言入门书也将采用习题方式引导读者学习。 在序言中,他引用了笛卡尔《第一哲学沉思录》...

小卒过河
2011/07/04
5.2K
16
Android开发技术周报 Issue#154

十一月 10, 20170 条评论AndroidDevWeekly Android开发技术周报 Issue#154 新闻 Google 官方文件管理器 Files Go 上线:入门设备也能流畅运行 Google 发布 Android 十一月更新:修复 ...

脉脉不得语
2017/11/10
0
0
Android开发技术周报 Issue#160

十二月 25, 20170 条评论AndroidDevWeekly 新闻 Mandrake Linux的创始人正在开发Eelo 一个开源的移动操作系统 谷歌强推安卓 8.0 系统:明年所有 APP 都必须支持 教程 Android 开发者和...

脉脉不得语
2017/12/25
0
0
Go 语言向中国示好?No!只是我们自作多情罢了

在 Go 语言的首页上有一个 HelloWorld 示例,其输出是:“Hello, 世界”,这让很多中国的 G 粉丝兴奋不已,大家都认为这是 Google 向中国抛出的橄榄枝! 可是接下来的事实可能要让大家失望了...

曾赛
2010/09/19
0
3
我的博文观——带你走进优秀博文的世界

优秀博文的特点 一篇好的博文不仅能让人获得知识、开阔见闻,还能启发人的思考,使人身心愉悦!我拜读过众多博文,也发现了许多优秀的博文,于是总结了这些优秀博文的特点,发现好的博文一般...

spencer.luo
2017/12/25
0
0
我们到底要怎样,才不是渣男?

1 同学群里的某同学说,他有一个朋友小d,前不久刚跟女朋友分手。 原因是他们两个一起出去吃饭都是aa,而小d也很少给对方买礼物,但是—— 小d的女朋友了解到她的一个朋友每次出去吃饭都是男...

梦履薄冰
2017/11/16
0
0
伪共享和缓存行填充,Java并发编程还能这么优化!

前言 关于伪共享的文章已经很多了,对于多线程编程来说,特别是多线程处理列表和数组的时候,要非常注意伪共享的问题。否则不仅无法发挥多线程的优势,还可能比单线程性能还差。随着JAVA版本...

技术小能手
07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周一乱弹 —— 你的朋友圈有点生锈了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Devoes :分享Trademark的单曲《Only Love (电视剧《妙手仁心 II》插曲)》: 《Only Love (电视剧《妙手仁心 II》插曲)》- Trademark 手机党少...

小小编辑
44分钟前
27
5
【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
今天
1
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
1
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部