Erlang服务器开发:通用与特定代码分离实践
在Erlang的服务器开发中,将代码划分为通用部分和特定部分是一种重要的设计理念,它有助于提高代码的可维护性和复用性。下面我们通过一个频率服务器的示例来详细探讨这一理念。
启动服务器
首先,我们来看用于创建和初始化服务器的函数。 start/0 函数会生成一个进程,该进程调用 frequency:init/0 函数,并将其注册为 frequency 别名。 init 函数会用一个元组初始化进程状态,该元组包含可用频率列表(在 get_frequencies/0 函数中硬编码)和已分配频率列表(初始为空列表)。我们将这个频率元组绑定到 Frequencies 变量,在后续循环中,当可用频率在已分配和可用列表之间移动时,进程状态变量会随之改变。
-module(frequency).
-export([start/0, stop/0, allocate/0, deallocate/1]).
-export([init/0]).
start() -> register(frequency, spawn(frequency, init, [])).
init() ->
Frequencies = {get_frequencies(), []},
loop(Frequencies).
get_frequencies() -> [10,11,12,13,14,15].
超级会员免费看
订阅专栏 解锁全文
300

被折叠的 条评论
为什么被折叠?



