美文网首页
开发心得001

开发心得001

作者: kyo1992 | 来源:发表于2020-07-06 10:02 被阅读0次

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远程进程,有时候会需要修改目标进程的State,可以再添加两个接口,分别为state_call, state_cast以支持这种做法.
③. 一个玩家连接开辟一个logic process和一个socket process,玩家数据存储在进程字典, 定时对有修改的数据进行回写。
④. 需要落地的数据不要以record的形式直接存储,否则在record进行修改后,db数据加载到Erlang内存时会badmatch。 应该是自行编写数据转换函数,转换成简单的tuple或list形式后再存储。
⑤. 链式操作对象. 如果需要对一个对象进行连续的修改或访问操作,则函数调用入口传入对象,然后返回新的对象。

5. 总结

其实Erlang的优缺点很明显,天生支持分布式,为开发者编写分布式应用提供极大的方便,架构是其最大的优点; 而函数式编程所具备的特点,会令很多刚上手的同学无所适从,甚至觉得是个很大的缺点。 其实正是应用了函数式编程,Erlang才可以完美支持并发编程。 因为有架构上的先天优势,所以我觉得Erlang还是一门很好的语言,至于提到的一些缺点和不适用的地方,还是需要结合项目,自己编写一些工具去更好完善Erlang这一块的不足。

相关文章

  • 开发心得001

    1. 前言 新项目采用Erlang进行开发,从学习到开发功能已经有两个月,在此写下自己对这门语言的一些使用感受 2...

  • 读书心得001

    系统读书第一周第1天,共1天 读书心得书写第1周第1天,共1天 2018年12月12号,阴雨 要想会写作,就要先会...

  • 001减肥心得

    2019-03-19 上午看到同事刷QQ空间,想到最后一次刷空间好像还是在大学三年级的时候,到现在也有五六年的时间...

  • 【心得随手记】 001

    每天碎片化的时间很多,现在都在“微信读书”上看书,或者是听“得到”的有趣资讯。 往往听到的时候,都有很多启发,但是...

  • 每日教育心得:001

    我们要知道一个事实:我们从零开始学习一件新事物都是很难的,刚开始不会不熟悉都是很正常的。 哪怕是大人都尚且如此,何...

  • 开发心得

    通过贝塞尔是可以获得一个path属性,path是一个不规则形状。可以通过填充这个path实现半透明效果。 当给一个...

  • 【22天剽悍读书营】Day13-全神贯注的方法

    171228《全神贯注的方法》,第3遍001-126页 心得: 001 把时间花在有用的事上,才能成为有用的人。什...

  • 001--SaaS平台心得

    1.当我谈SaaS,我该谈些什么? 门店信息存储B端用户扩展C端用户扩展权限分配限制数据脱敏处理 2.数据存储 门...

  • 今日坐享心得001:

    早饭前5分钟、地铁上6分钟。当集中注意力在呼吸上时,有一点飘渺的感觉。在家坐享时,注意力时不时被窗外小鸟的叫声吸引...

  • 每日销售心得:001

    1.销售最核心的一个问题:客户为什么会买我们的产品? 2.客户给出的答案一定是远远超出我们的想象,也多数不是我们之...

网友评论

      本文标题:开发心得001

      本文链接:https://www.haomeiwen.com/subject/wsfwqktx.html