当我正式签约中交第二公路勘测设计研究院后,参加了青海省公路勘测设计研究院管理信息系统一期(一下简称“青海院系统一期”)的开发。第一次真正的接触项目,接触到真正的企业级应用程序开发。并且开始学习理解MVC模式,N-层架构的应用程序。因为青海院系统一期项目工期特别短,开发人员相对缺乏。而且新引进开发人员也不能立杆见影的解决问题。所以系统软件在设计的过程中,特别注意分层的概念,数据层,商业逻辑层,用户界面层。针对不同的层,都有相应的代码生成工具。数据层通过数据库表结构生成数据实体类,数据操作类。用户界面层通过页面模板生成应用程序页面。通过代码生成工具实现简单的MDA的思想,极大的加速了“青海院系统一期”开发进。使用Web版QQ与工作流集合,提高用户使用体验。在青海院一期的开发过程中,我们已经自发的应用了structs,hiberate等等主要部分,但是没有系统的使用这些加快应用程序开发的框架。在Web版QQ中我们已经使用了异步javascript,已经是Ajax的雏形,但是没有形成框架。
青海院系统一期结束后,我参加了广西省交通设计研究院信息系统二期(以下简称“广西院系统二期”)的需求调研,系统设计阶段。到广西省南宁市出差,与应用程序的使用者接触,认真了解,分析,确认客户的需求。在二期的设计过程中有几个重点要考虑的方面:应用程序集成,新的面向用户的设计理念,分阶段部署程序,可定制(装卸)应用程序结构,分布式存储,集中式管理。应用程序集成:因为广西院在全院已经使用了腾讯公司的RTX即时通讯软件。我们的应用程序要能与RTX集成。广西院已经购买了K2.net工作流软件,我们的软件不使用自己的简易工作流,所以必须与K2.net集成。公司没有DWG图纸的比较和信息抽取的技术,而二期的图档管理模块必须实现该功能,要与武汉市天喻CAD中心合作,与我们的设计管理以及项目管理软件集成,几个应用程序之间的单点登陆。新的面向用户的设计理念:从前的应用程序是以数据为中心的应用,每一个功能都分门别类的放在不同的菜单的下面。广西院二期想突破从前的设计理念。以用户为中心,弱化菜单,通过我的项目工作区,我的邮件,我的任务。。。等等面板把信息推送到用户的面板上,用户的面板是可以根据用户的需要和喜好自由定制(设计思路来源于微软SharePoint,Groove.net2007)。分阶段部署程序:在二期的设计过程中分离几个重要的软件,分别是:设计管理,项目管理,图档管理。分3个阶段部署3个软件。每个阶段要交付可以使用的软件产品。可定制(装卸)应用程序结构:每一个软件产品都可以替换成其他的软件产品。前提是符合广西院二期的设计接口标准,或者是包装别人的软件符合我们的接口标准。分布式存储,集中式管理:因为交通设计院的图纸比较多,每张DWG图纸比较大,所以采用传统的主服务器存储的模式是不能满足需求的。必须采用p2p的存储模式,其中还涉及到p2p图档搜索。
当我接触到设计模式的时候,我被其深深的震撼了。原来优秀的软件源于优雅的设计。在对设计模式理解我经历了,认识,领会,应用几个阶段。在理解设计模式的基础上,学习和理解微软企业应用程序参考框架(EDRA)。在实际软件开发过程中应用设计模式。在学习了Martin Fowler一篇关于“依赖注入”的文章后,重新思考在软件开发的过程中合理使用设计模式,提高应用程序的可扩展性,健壮性。以及在.net FrameWork本身寻找设计模式的应用。
通过我的工作经历,资料学习,我对企业级应用程序有了自己的认识。用我自己的领悟去理解应用程序设计,我喜欢.Net Remoting的简单易用,也曾经激情万丈的设计开发一个分布式的消息服务框架。也曾经想在单一的行业应用下,设计开发出真正的MAD框架。
也曾经在分布式通讯框架和lucene.Net的基础上嫁接企业级应用――分布式搜索引擎。这些都已经成为历史,激情还在继续。想在北京园了我的软件梦想,想在北京开始我人生的下一个接力。
浙公网安备 33010602011771号