二、第二阶段,Nitrogen 的套路分析
此前的学习,比较简单。从今开始,进入困难重重的部分。说到困难,是指由于缺乏技术资料,对于Nitrogen技术细节不容易说清楚。当然,通过查看源码和老外的博客,对Nitrogen框架的总体特点和主干脉络的概况,也是能够把握的。
Nitrogen 程序是事件驱动,而非采用MVC,有其道理。
Erlang的Web编程,都强调Web 2.0技术,即运用Ajax,Comet等的动态网页。Nitrogen更是做得彻底,几乎一切网页都是由Erlang代码动态生成,静态网页只用一个模板。这样的技术,是为了集中力量处理动态交互的网页,解决实际应用的关键问题。如果面面俱到、搞大而全、小而全,没有实际意义。有名的Twisted的web服务器,基本上也是只处理动态网页,它的文档也直言不适合处理静态文件。
孤立地看这样做不符合某些“设计模式”的规矩,技术上显得有些原始,但实际上,这种技术切合Web 2.0的客观需要,摆脱了八股教条的束缚,有利于简化编程任务,提高工作效率。
事件产生于元件(element),事件在客户端的传送和处理,是通过Javascript脚本。
这种程序运行方式,如果套用MVC模式,只会是削足适履。
我觉得,Nitrogen的基本编程套路,是Erlang与Javascript综合运用的“组合拳”。
Nitrogen把大量的任务交给Javascript,后者又简单易懂,因此,有利于学习掌握Nitrogen编程。
由于使用了Jquery”库程序“,编程中的Javascript部分以调用现成子程序为主,工作量大为减轻。
下面,对Nitrogen的Erlang技术部分,尝试着做些分析。