对于系统改造的一些思路
长期没有更新,但是这几个月除了日常工作以外,一直在学习、跟踪一些“新”的概念和技术,希望能够综合起来为系统的改造提供一些有建设性的方案。以下是最近关注的一些内容:
- UI 页面设计
主要的考虑就是如何使UI设计和开发有机结合,统一UI风格。进一步的做法是提供一个页面设计的工具,通过Drag-and-drop的方式设计管理页面,程序员不再关心页面的具体展现、多浏览器支持等问题。
主要参考SalesForce,具体可以参考这个演示。
- 工作流
jBPM是主要的考察对象,但是对于工作流的引入和应用,仍然有些争议。这个系统并不是针对那种对于流程变化较多或者较快类型的企业。大部分企业的流程一旦确定,就不太改变。如果考虑需要比较灵活的支持不同企业的不同流程,就需要BPM了,但这又会引起系统管理的复杂化。纠结中…
- 离线技术
当前系统是基于BS架构的,一直没有做offline的打算。但是随着Google Gears以及大量相关应用的出现,online和offline的概念正在逐渐模糊。尤其是我在使用Buxfer后,感觉到PC online/offline + Mobile online/offline会渐渐走向统一。当然,对于基于第三方的方案,比如积木网,也做了了解,但最近不会投入太多。手机方面也是一个重点,后续需要跟进研究。
- HTML5
由于Google刚刚比较低调宣布将不再继续开发Gears,而全面转向HTML5(据说HTML5的离线部分规范,正是在由Google工程师主导)。大概了解了HTML5以后发现,这又是一个深不可测的未知世界,预测要到2022年才可以定稿。但不管怎么说,今后的重心将会转移到HTML5兼容上来,最近公司内部已经开始全面推广IE8/FF/Chrome的使用。随着IE6逐渐退出和IE不再一枝独大,转向标准HTML的趋势会越来越明显。
- 编程语言
重点在关注RoR上,并不是一定就会放弃Java,只是希望改变思路来解决当前一个非常严重的问题,这个问题也是一个架构的问题。由于系统的复杂程度太高,达到一定规模后,任何大大小小的修改都会带来巨大的工作量——评估、设计、开发、测试、发布、验收,以及大量的不确定性。RoR原则上会大大提高开发效率,这个比较看重的一点。初步的想法是使用RoR,搭建一个外围子系统,看看实现维护成本。
- 架构
这里说的架构,除了大型系统必须具备的一些架构思想,更加多的是考虑如何让编程变得简单的架构。包括,开发效率、代码管理(自我管理)、模块化等等,希望程序员能够更加多的关注在业务逻辑上。主要关注REST和OSGi,当然RoR和可定制页面工具也是其中重要的一环。自然而然,我关注到MDA相关的架构方法,虽然还是理论上的东西比较多,但Taylor(演示)这个东东还是让我看到了很多有意义的实践过程。
SaaS是一个非常有意义思想,在这个思想指导下,上面那些思考就会自然而然的呈现出来。
- 其他
Google Wave是一个好东西,如果在公司内部使用的话,完全可以替换eMail,通过扩展完全可以实现TD/BugZilla/MSN Messager/Knowledge sharing等等工具。
ChromeOS的推出也给我们带来了真切的感受:未来的基于云的系统会是什么样的。