关于软件工程的原则-ArmStrong


以下内容,来自Armstrong--面对软件错误构建可靠的分布式系统;总结的很经典。

--------------------------------------------------------------------------------------------------------------------

3 软件工程原则

3.1 从一个模块导出的函数越少越好
模块是Erlang的基本代码结构实体。一个模块可以包含有大量的函数,但是只有包含在导出列表中的函数才能够在模块外部被调用。从一个模块的外部看,模块的复杂性决定与它所导出的函数的个数。一个只导出一、两个函数的模块肯定比导出几十个函数的模块更容易理解。
用户希望一个模块的导出函数/非导出函数的比率越低越好,这样他只需要理解导出函数的功能就足够了。
还有,只要模块的外部接口保持不变,模块代码的编写者和维护者可以任意改变模块的内部结构。
3.2 尽量降低模块间的依赖
一个调用了许多不同模块中的函数的模块要比只调用了很少的几个模块中的函数的模块要难以理解得多。
这是因为每次我们修改一个模块的接口时,我们必须要检查所有调用了该模块的地方。降低这种模块间的相互依赖将会简化这些模块的维护工作。
我们可以通过减少一个特定模块调用的不同模块的数量来简化我们的系统结构。
还要注意,模块间的调用依赖关系最好形成的是树型结构而不是环状结构。例如:
A->B->C

而不要是:

A->B->C->A

3.3 将公用的代码放入库中
公用的代码应该放入库中。这个库应该是相关的函数的集合,应该努力使得库中包含的是同类型的函数。因此,像一个叫lists的库只包含对列表操作的函数,这是一个好的决策;而一个叫lists_and_maths的库既包含对列表的操作的函数,也包含有数学运算的函数,就不是一个好的决策。
最好的库函数是没有副作用的。含有带副作用的函数的函数的库限制了其可复用性。
3.4 将“复杂的”或“脏的”代码隔离到单独的模块中
一个问题的解决通常需要综合用到净代码和脏代码,那么就把净代码和脏代码放入彼此隔离的模块中。
脏代码是指做了一些脏事情的代码。如:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值