今天想着重指出的是“AJAX”的应用将使软件出错处理变得复杂。例如用户登陆,可利用“AJAX”在后台检查用户名及其密码,并给与提示。从安全的角度讲,软件后台所有有关的资源组件,如 Jsp, Servlet, JavaBean, DAO 等等,仍然需要做重复的验证。因为用户完全可以绕过你所设计的登陆表格,而直接调用所需资源。这样,使用“AJAX”就使得对客户数据的验证变得重复了:“AJAX”要验证,后台同样也要验证。这将产生大量重复代码,给开发与维护带来负担。
本文以为,出错处理才是软件中最复杂,最难处理的部分。从编程的角度讲,异常处理的设计与处理本身就是比较复杂的。JavaScript 从浏览器诞生起就已经存在了,为什么很多网络应用并没有选择利用 JavaScript 来验证客户提交的数据,而是统一放在后台处理的。这就是软件设计时应考虑到出错处理的统一性,扩展性与可维护性问题:异常经常是在业务层产生的,所以,异常处理也一般放在业务层处理,譬如 EJB 层。
很明显,如果整个应用大量采用了“AJAX”技术,而出错处理又根据需求发生了改变,“AJAX”部分也应作相应的调整。事实上,本文认为,出错处理必须为“AJAX”单独设计和实现。这不但增加了任务量,而且将极大扭曲后台组件,使得升级和维护的成本提高。两头忙活可不是什莫令人愉快的事。
在前一篇短文中,本人已经点明“AJAX”是客户端计算。他的局限性不言而喻,更何况 JavaScript 是脚本语言,开发维护很成问题。真正的软件系统,其业务逻辑是复杂的,不可能企望通过一种脚本语言来实现,我看连测试都成问题。
Google 很牛,但仅一搜索引擎而已。哪一个商业,科研,医药,工业或军事应用是通过搜索引擎来实现的?没有。所以 Google 的局限性是很明显的,Google 不是万能的,我看他也就和程咬金的本事差不太多。
联系客服