0%

前言

在国内,腾讯的社交网络及其强大,其社交生态也是百花齐放,而微信是其王牌中的王牌。

Elixir,继承了 Erlang 的衣钵,使用 Ruby 的皮肤,再加上强大的社区,开发出了众多神器,让这个小众语言在全球开始遍地开花。

为结合两者,因此有了此文。

阅读全文 »

gitee 下载加速已失效,因为 gitee 在下载页面加了机器验证,无法再通过命令行来下载,目前国内安装erlang最优解,建议使用asdf来安装:

1
OTP_GITHUB_URL="https://hub.fastgit.org/erlang/otp" asdf install erlang 23.0

如有更好的方式,请告知本人,谢谢

最近在用kerl安装不同版本的erlang,因为kerl默认是从官网下载包的,但是erlang的官网本来就慢,不知道是不是没有CDN或者国内没有对应的CDN节点,速度实在堪忧。

幸好kerl支持动态配置从github的包来构建,但是测试了一下github的下载也是非常慢。

突然灵机一动,想到码云(gitee)有做一下热门的开源项目的镜像,跟github上的项目是定时同步的,因此是否可以去利用这个呢?

实验一下便知!

阅读全文 »

前言

协议的选型上不多说,用Protobuf,关于如何选型,可以参考下面这个系列文章:

本文探讨的是基于Protobuf上如何做协议事件分发路由设计,预备知识可以参考:

版本选择建议选择: Protobuf3

阅读全文 »

2022.07.07 更新

非常感谢 @haoxian 的提醒,sf_transform 的解决方案终于可以落幕了

有了新的原生解决方案, 仅需要在 rebar.configerl_opts 配置项加入 deterministic 即可:

1
2
3
{erl_opts, [
deterministic
]}.

亦可以通过环境变量来配置:

1
ERL_COMPILER_OPTIONS="[deterministic]" rebar3 compile

官方文档deterministic 的解析如下:

Omit the options and source tuples in the list returned by Module:module_info(compile), and reduce the paths in stack traces to the module name alone. This option will make it easier to achieve reproducible builds.

阅读全文 »

程序调试,俗称 debug

一个程序员基本 80% 的时间都在 debug

这是一个很恐怖的比例,我们也不得不去面对

为了减少这个比例,学好调试方法就变得很重要,可以很大程度上提高开发效率

阅读全文 »

前言

有时候习惯了 shell 下面使用自动补全功能, 会发现这个功能减少了使用的学习成本, 另外还大大增加了效率, 平时我们在进行erlang开始时候,会用到rebar3构建工具,但是这个工具没有提供自动安装自动补全的命令, 只能自己去手动安装.

阅读全文 »