dao第一阶段开发概要
Erlang/OTP平台版本
如果dao平台最近发布的话,按照版本选取原则,应该选择前一个大版本的最后一个稳定发布版,也就是说R16B03-1。由于dao平台还在开发中,因此应该选择使用当前的主线大版本的稳定版,也就是Erlang/OTP 17。不过OTP 17是一个里程碑式的大革新版本,增加了很多语言特性和内核特性,很多第三方资源还没有提供支持,这让人选择起来还是比较头疼。不过这也是考验dao平台的自洽性和版本兼容能力了,迎接挑战还是选择当前的主线版本吧。
看了一下erlang官方站点,昨天erlang/otp刚刚发布了17.3版本,就使用这个版本吧。看来OTP 17连原来怪异的RxxBxx的版本命名方式都改了,变成通行的:主版本号•子版本号•修正号•构建号格式。欢迎erlang拥抱主流编程世界!
构建工具
操作系统级别的Erlang/OTP平台本身有一整套生成、测试、分析、发布、升级及部署工具及方法。看起来很完备,但配置和使用起来非常繁琐。光是学习这些工具都要花费很长时间。好在有很多第三方开发团队提供了对这些工具配置的整合,使用起来非常“傻瓜化”。
目前在使用普及程度上排在第一位的是rebar,还有一个可选的新秀是erlang.mk。rebar是之前一直在使用的,erlang.mk则是最近刚上手评估。二者在使用上差不多,不过erlang.mk的构建生成速度要比rebar快很多,但是erlang.mk对单元测试eunit的支持不如rebar。erlang.mk与rebar相比,主体逻辑采用了标准GNU Makefile语言,而rebar则完全采用erlang语言。简单一点,激进一点,从效率和透明度角度,选择erlang.mk。
组成架构
本阶段是框架构建阶段,也是需要有五个主要模块组成。
- Erlang/OTP系统框架。用于系统的封装、发布、引导和升级。采用otp application标准框架。主体是一个boots trapper模块。
- Actor Model框架。简化和降维版的SOP框架,实现基本的Actor编程模式。
- Graph DB。实现基本的Graph操作,分别针对快速缓存和持久化层进行优化。
- Web Server。使用第三方的WEB服务器框架实现基本的web server功能。
- Publish Tool。代码和数据的发布工具,就是graph db的导入/导出工具。