技术开发 频道

一次难忘的项目经历 从编码到架构



    时间要回到2005年8月,一次意外的项目开发,让我终身难忘,也从此影响了我的开发之路。

    任务概述:
    设计一个表格框架(HTML中的table元素),用于物业管理系统开发中,提高项目的开发效率。现在看来,当时需要实现的表格框架和ExtremeComponents很相似。不过在我的功能需求中还包括数据的添加和编辑功能。

    挑战
    项目经理突然交给我一个任务,既然兴奋,又紧张。兴奋的是,我终于可以作为一个重要的角色参与到项目开发中;而紧张的是,我之前根本就没有做过框架的东西,甚至在写代码的时候都很少用过抽象类,接口……..难度可想而知。

    挑战1、系统建模
    一个优秀的框架不仅能实现系统的需求,还应该有极强的扩展性。所以最重要的就是抽象系统模型。于是就开始设计表格抽象类,表格列接口,表格单元接口,渲染器,校验器,编辑器组件,数据源接口等等。能想到都给他抽象出来,所以我就抽象啊,抽象啊……到最后我自己都觉得这个系统设计变得没有边界了。由于没有设计框架的经验,现在看来许多设计思路也是有问题的。比如说数据源接口,它的作用其它就是给表格提供原始的数据,表格并不关心这个数据是从哪儿得到的,可能是数据库,也可能是文件。而我在设计的时候,却把它设计成JDBC的结构。比如说得到表格的所有数据getData方法,我返回的数据类型是一个类似于ResultSet的对象,限制了表格的扩展性,或者就叫着设计过度。 

    挑战2、技术需求
    在这个框架中用到很多技术是我以前没用过的。但在公司里学技术却有一种不同的感受,那就是压力。无形之中让自己不得不全速前进,快速掌握新的技术。比如说框架中需要通过XML来配置一个表格,所以需要了解XML的解析,DTD的定义。在页面中使用表签的形式来显示一个表格,要学习如何编写自定义表签。为了测试表格正常的提取数据,采用一个O/R框架来实现数据源接口。以前看过半年的XML,没有弄明白是怎么回事,在公司里逼着用。一天不到学会使用ibatis;使用PowerDesigne建模等等。使用再一次体会到那句话:人是逼出来的。PS:我自己说的。
0
相关文章