服务是跟CS架构联系到一起的,CS适合于资源管理,资源意味着数量是有限的,服务提供了有限的但数量不确定的同类资源,可以动态spawn,资源之间通常是隔离的或松散耦合的。
而FSM是确定的单个实体,封装了状态,类实例其实就是FSM的延伸。
先具体后抽象。静态是动态的抽象。
模式:分析/细化,综合/简化,递归/复用,
动态:状态机,服务器(资源管理器),
静态:状态的抽象 - 数据(库)
服务器:由外部驱动的功能实例。可能会接受多种事件,数据/状态也可能有多样的变化。
有限状态机:特化的服务器。能够从某种维度刻画出少数几个状态,从而得以按照状态嵌套细化设计。
扫描二维码关注公众号,回复:
655704 查看本文章
代码产生思路,定义一个OTP高级框架(及指导使用文档),
OHF 。
图形建模工具 -》 解释脚本(或者直接是XML/JSON文件) -》Erlang行为及其他代码
喜欢自然语言的解释。符号化注释只能由解释脚本自动生成。
Erlang是动态语言,类型检查比较弱,有了解释工具后,纠错主要依靠文档规范,避免直面代码(保护视力)。
Dialyzer是一个erlang分析器。
暂不需要复杂的测试框架。
vim7.3自带了erlang.vim - "/usr/share/vim/vim73/syntax/erlang.vim"
OHF
1.包含简单的单元测试,
2.包含简单的日志
3.包含对Python的Port支持
4.支持服务器的管理
5.支持状态机的管理
OHF建模工具分三大区:
1.GUI元素区:Application,Supervisor, Server,Fsm,
2.模块接口区:APIs, Callbacks,列表
3.模块细节区: API/Callback 代码段