开源世界新军: newxy新坐标
作者:胡立新 2006年9月29日
newxy开源了,首先感谢中国软件网技术中心的专家们,有关newxy技术文章在博客栏不被任何人推荐的情况下被选到文档中心,竟有两篇列入网站的首页,使newxy技术得以广泛宣传。这反映了中国软件网技术中心的专家不人云亦云,具有对工作认真负责的态度(作者在中国软件网文档中心的文章网址:http://dev.csdn.net/author/nlhlx/index.html)。
newxy技术爱好者在学习和使用的过程中给以很好的建议,在此一并感谢。
今年六月九日newxy网站开通,其时未曾想过开源,只想过让大家免费使用。一些用户表现出了让newxy开源的期望打动了我,加上开源会让newxy更好的发展,便决定了开源。
下面作几点说明:
一、 newxy产生条件
1、运用通用办法解决问题的期待
newxy的开发历时两年多,但对产生的结果持有的期待确是在运用非java语言开发软件时就形成了。五年前用C++Builder开发单位软件时总是在不断开发通用组件,甚至对一些特别运用也期望能做一些通用的组件,即可足运用,也可以备后用。
2、一人包办前台、后台所有开发,洞悉各环节工作的每一细节
newxy宣传文章中有几处说明用newxy标签可以不写java代码实现数据增、删、改、查等,这里面涉及到标签如何产生javascript脚本,如何将formBean中的记录列示在静态页面上的同时将记录的行号、主关键字值对保存到静态页上,如何在静态页面上表现formBean的状态,如何使按钮的点击事件能够正确将所选对象相关参数传给脚本函数。脚本函数如何将数据传到后台,后台如何处理传来的数据。即使这一切解决好了,还要考虑是否好用,是否好理解,为了好用好理解,经过了几个月重新设计重新组合,而每一次重新设计都会象是打一场大战。
在很长一断时间,我感觉我是一个搬运工,一个崂山道士,自由地出入一方墙,将一些物件搬进搬出,而墙的一面是镶有标签的jsp,另一面是静态页面。
最始我能把那几个标签开发出来,可能是由于多年来单位的软件开发由我一人独立完成积累的经验。
这一断文字绝不要表现什么,是想说明,产品能实现的功能与开发者经历严重相关。
3、对开发的产品持续关注和维护
多年来不仅要独立开发单位软件,也要独立维护它,单位业务规则改变后要重新设计,这过程加深了用软件架构的持续性原则来开发产品的认识。newxy的开发过程惯彻了这个原则。
4、尽可能减少对第三方产品依赖
多一份依赖,可能增加使用者一份学习负担。newxy依赖的第三方产品仅限于struts依赖的第三方产品,这样只要运用系统能正常运行struts,newxy就能正常运行。坚持这个原则竞产生了两个付产品,持久类及ActionForm类生成器、帮助文档构建器。
二、 newxy的发展方向
1、 吸收其它软件的优点,但必需坚持好用好理解的原则。比如已构思好的表单验证,这项功能象JFS,但使用会更简单,可以复用struts绑定的validate方案。
2、 发展newxy的特色,如多表数据一次上传。在newxy1.0版时就已能实现,没有介绍是因为当数据库多表具有相同字段名时不能正确执行。方法是这样的,通过jsp页面表单上传多表数据,在后台只需这样操作:
BaseDAO baseDao=new BaseDAO();
DynaDto dto=(DynaDto)formBean.getDto();
//保存第一个表
Dto.set_table(“table1”);
baseDao.update(dto);
//保存第二个表
Dto.set_table(“table2”);
baseDao.update(dto);
//保存第三个表
dto.set_table(“table3”);
baseDao.update(dto);
在下一个版本中,提供多表有相同字段时的解决办法。
3、 标签的发展可能会吸收Web2.0思想。
4、 提供一些解决方案。如用户角色权限管理。这是常常遇到的问题,newxy会提供解决策略和组件包。
三、 有关代码
1、 风格
newxy是由一人独立开发的,而且有意无意让一些方法在很大一串的情况下解决问题,其时想的是代码会更安全。在可能的情况下这类代码会拆分,但也不着急。未来代码尽可能简短,易理解。某些方法会合并,极少数方法会丢弃。
2、 包结构
在未来版本中包结构难保不调整,调整的会是不被开发者引用的类。这最大影响因素是与其它框架集成时内在逻辑的驱使,或新思想的引入。
newxy新坐标技术网站:http://www.newxy.net
newxy新坐标源码下载: http://www.newxy.net/zh_cn/download/index.jsp