1. 前言
新项目采用Erlang进行开发,从学习到开发功能已经有两个月,在此写下自己对这门语言的一些使用感受
2. 优点
①. 由于天生支持分布式,不同Erlang进程间的同步异步通信非常方便,而且数据不需要做任何转换.
②. 自带的数据结构简单,掌握list,dict,tuple,record即可满足开发. 而且list和dict提供了比较主要的api函数,基本可以实现大部分需求.
③. 代码热更新很方便.
3. 缺点
①. 语言不提供return和break语义,导致函数和循环无法中途返回,当然这个可以用catch + throw解决.
②. 报错信息太不直观,一般报错信息只会提示出错的名称和行号,这个行号有时还不一定准确,如果是函数调用出错(function clause)还会有出错时实际参数的打印,出错之后,目前我更多是要靠自己经验到出错位置的上下文去寻找原因, 关于堆栈信息的打印有待进一步了解,而对现阶段的报错信息也需要自己进一步实践和总结。
③. 为一个功能写了复杂的修改数据结构代码后,需要写同样复杂的保存代码,这是因为函数式编程变量不可变导致的。
4. 项目实践最佳做法
这里的做法仅是我个人总结出来的,仅供大家参考
①. 一个mod单独新建一个文件夹,文件根据内容可划分为
mod_rpc: 处理客户端数协议请求
mod_util: 辅助工具函数
mod_valid: 验证函数
mod_init: 数据初始化
mod_pack: 协议数据打包.
②. 如果有call和cast远程进程,有时候会