Python演绎的精彩故事(三)

Softchip架构到底为开发者带来了什么?和传统的开发套路相比到底有什么本质的不同?

相信有部分开发者在阅读完前两篇之后已经有了基本清晰的认识。

在这里阐述一下笔者个人的见解,仅供参考。


形式上看,Softchip为模块制订了一个限制性设计规范,把模块深深地包藏起来,各模块不能再自由地调用其他模块的方法了。

而实际上,这个看似限制的动作却把模块彻底解放了。严格来说,是把模块设计者彻底解放了。为什么呢?


1、你不再与数不清的模块发生关系,你只与一个叫做Machine的角色打交道。

2、你不知道也不再计较系统中还有什么模块和你一起工作,你只知道你和Machine之间有什么APIEvent

3、你在编码期和编译器不需要仰任何人鼻息,你自由的写你自己的代码。

4、在你需要调试的时候,你可以mock出任何你需要的APIEvent来配合自己的调试。


你失去了几个模块的句柄,取而代之,你拥有的是却整个Machine,条件是规范地拥有!

在这样的场景中,开发者不再被其他模块牵扯精力,专心于自己的事情。

每个模块都能专心于自己的事情。

大部分模块专注于具体工作,其中一部分模块站在全局或中层的高度上统筹规划API和Event的分配。

这正是层次化、模块化设计的精髓。整个系统的复杂度大幅降低了,质量提高、效率提高是自然的事情。


在软件开发领域,这样的效果似乎是非分之想,但看看硬件领域,其实已经司空见惯。

比如PC的网卡,它作为一个组件,只需要插在主板的PCI插槽里。

它并不需要知道它将要发送的数据是来自10cm之外的某个内存条的某一段地址。

内存条作为另一个组件,只需插在主板的内存插槽里,它并不需要知道自己的数据要经由10cm之外的另一个chip发送到网络上去。

那么谁知道的?Machine知道,作为Machine具体形象代表的Board知道,这就够了!

因此,设计网卡的人不需要知道内存条的事情,同样,内存条的设计者也不需要知道显卡的事情,大家都只需要履行自己和Machine之间的接口协议,这就够了!



Softchip描述起来很美好,代码写起来很漂亮,但有人质问:“你说的是真的吗?能实现吗?”

最关键的Softchip代码写得出来吗?这时候,Python终于千呼万唤地出场了。

可以说,Softchip天生就是为Python量身定做的,非她莫属!反过来,也只有Python可以承载Softchip。


对于Softchip架构至关重要的Python语言特性包括:

完善的OOP,duck typing,可变参数机制,函数/方法指针,dict/list数据结构。



这些语言特性,单独看某一个,很多语言里都有,但是当你把他们全部组合在一起的时候,除了Python,谁能与之争锋呢?

C提供强大的指针,但是却缺少其他全部要素。

C++有OOP,但是它没有与类型无关的dict/list,无法获得非静态方法指针。

Java里指针已经不存在了。。。


在本系列的下一篇中,我们将讨论至关重要的Softchip本身的设计与实现。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值