这里我们来说说CODEPRESS的插件机制,在我看来插件机制是CODEPRESS最棒的设计之一,也是最先要说的,她有非常多的好处。

首先,就是其强大的扩展性。CODEPRESS本身约定了内容的存储方式、权限方式和传输方式,但是没有限制使用方式,而能够发挥开发者想象力的就是插件机制,我们知道比较出名的插件机制有各种IDE,例如eclipse、vscode、jetbrains全家桶,或许你不是一名开发者不太了解IDE,那么这里还有一个著名的拥有插件机制的MMORPG游戏魔兽世界,大量的各种各样的插件让魔兽世界具有很棒的用户体验。当然,CODEPRESS自己也制作了一些插件来提供一个可供参考的生态链。

第二,可以简化协作。我们知道在区块链的世界中,社区是强大的力量,在一个常见的区块链项目中,都至少有一个主要贡献团队进行开发,然后社区对项目感兴趣的开发者会fork项目,然后增加功能,然后再提交给主要团队进行merge,这个操作会有什么问题呢?对,出现开发冲突的问题,因为主线由主要团队掌握,所以当我们出现分支冲突的时候,主线团队和爱好开发者双方就会消耗大量的时间进行合并处理。而插件机制很好的消除了这个冲突,爱好开发者可以以插件为单位制作一个完整的扩展组件,提交给主线团队,主线团队可以选择优秀的插件进入代码主线。

第三,定制化,个性化。CODEPRESS还会推出一个插件库,就像APPSTORE一样,所以使用者都可以自由决定使用哪些插件,这样一来每个客户端都是个性化的,更有意思的是,几个插件可能提供了同一种能力,用哪一个?你说了算。

那么CODEPRESS怎么实现插件的呢?CODEPRESS提供了一个插件框架和约定,同时提供了大量的与CODEPRESS网络交互的接口,开发者只需要按照框架和约定就可以调用这些接口,这包括了底层区块链、世界状态、账户、交易、网络传输等等一系列已有功能的操作交互环境。插件实际是一个完整的属性列表和操作方法,这和智能合约的形式还挺像,而且属性列表是可以存储在CODEPRESS的世界状态中的,当然用户有权利进行删除这个插件和其所有内容,同时,为了安全,每个插件在世界状态中都有独立的空间,这不仅仅避免了插件之间属性命名重叠的问题,同时还解决了跨插件操作的安全性问题,

作为CODEPRESS的设计者之一,我觉得如果你在找Next Big Thing,This is it。