正在浏览:
1 名游客
快速构建XOOPS模块的思路探讨 |
||||
---|---|---|---|---|
Support Team
注册日期:
2005/2/24 15:17 所属群组:
注册会员 技术文档组 等级: 19; EXP: 28
HP: 0 / 457 MP: 143 / 4150 |
快速构建XOOPS模块的思路探讨
@ncnynl @20080403 摘要: 本文意在解决以下的问题: 如何避免模块开发中的重复劳动? 有哪些自动生成工具呢? 如何建立满足需求的生成器? 如何避免模块开发中的重复劳动? 重复劳动和时间浪费 首先遇到的问题是重复劳动在那产生及它的后果是什么。开发过Xoops模块的程序员应该知道,构建模块目录和文件大概的方法有两个:边做边建或复制修改。边做边建,就是根据需求自己去建立这个文件,基本上模块需要的哪些基础 都是手工一个一个加起来的。复制修改,就是把一个现有的模块作为模板,复制修改从而得到一个新模块的基础文件。或许后面的方法稍微聪明一点,不过也都是不同程度的重复了劳动。那真正可怕的地方是那呢? 假如,你一次要写100个模块,你利用上面的方法,你能想象得出来,你要怎么做么? 我自己就感觉到心惊胆跳,这已经不是单纯的体力劳动,简直就是折磨啊。算一下时间的帐,100个模块,平均开发时间是每个模块1个月,那么就是100个月。那么每个模块基础模板和文件建立估计也要20分钟,那么就是单为了建立一个模块的基础目录和文件就要浪费掉2000分钟也就30个小时,如果工作时间是8小时,那就是4天半的时间.怎么样,你认为你累计浪费的时间是多还是少呢? 避免时间浪费和提高效率 知道了重复劳动及浪费的时间,那接下来就是要解决怎么样去避免或减少重复劳动以及所带来的时间浪费。一个有效的方法就是,让这些重复性的工作批量完成或者说自动完成。以上面的例子说明,100个模块我就只需要几分钟的就能生成,然后模块里面的逻辑的实现,就程序再去实现,因为那个已经没有方法去自动完成了。好了,对比之下,很明显,我们应该建立一套好的自动完成的工具来减少大量的重复性工作,避免时间的浪费,提高效率。 有哪些自动生成工具呢? 利用自动生成工具的项目 已经有很多项目都已经应用这些理念或作法来提高效率。Eclipse编辑器嵌入了Ant生成器;symfony项目嵌入了一个轻量级生成器;Propel嵌入了Phing生成器。 可见,优秀的项目里面都提供这些优化开发过程的自动生成工具,为何我们不使用呢? 自动生成工具 Ant 这个来自apache项目里面的一个子项目,在eclipse也集成这个自动生成功能,它根据配置文件来生成所需要的文件和目录。 PHing 基于Ant项目的,利用PHP来开发的自动生成工具 如何建立满足需求的生成器? 生成器需求 基本的需求是根据配置自动生成整个模块的目录和文件结构,根据配置自动生成数据库SQL文件和类生成。深入的需求是能根据配置自动生成测试类文件,代码文档等等。 总结需求如下: 1. 标准的模块结构模板 2. 独立生成类文件 3. 独立生成SQL文件 4. 独立生成前台文件 5. 独立生成后台文件 6. 能不同的XML配置来建立不同的模块标准,用户可以根据自己的喜好选择或建立自己的模块标准模板. 设计生成器 这个生成器首先是考虑现有模块的特点,模块风格是可变点,也就是可建立不同模块标准。 简要设计如下: 1. 通过现有的目录和文件模板替代的方式生成新的模块目录和文件 2. 根据SQL XML数据结构文件生成类文件、前台、后台对应的文件 3. 使用XSLT2.0强大的模板功能,通过源模型采用三级结构模式生成类文件和SQL文件 1. Abstract Model -> SQL Model -> SQL 2. Abstract Model -> Database Access Model -> PHP 4. 生成过程: 1. 通过配置文件,利用PHing生成目录结构及基本文件 2. 通过配置文件,利用PHing调用AltovaXML来生成类文件和SQL文件
昨天 15:25
|
|||
_________________
nightcat 小站 不同时刻的访问,有不同的惊喜 小站已经改版,欢迎有事没事来踩踩,内容丰富不少,希望你有喜欢的, Xoops 模块演示站 (筹备中....) 模块演示站 Xoops 开发... |
||||
|
回复: 快速构建XOOPS模块的思路探讨 |
||||
---|---|---|---|---|
网站管理员
注册日期:
2005/10/29 13:32 来自 北京
所属群组:
网站管理员 注册会员 ComSupp 推广组 等级: 38; EXP: 16
HP: 371 / 929 MP: 724 / 6601 |
曾经处理docbook时用过内嵌于Eclipse的Ant,配置好后,对批处理工作确实很实用。Ant学习起来也很简单,如果有高手定义好了功能,其他用户纯粹使用,那就更简单了。
昨天 17:19
|
|||
|
您可以查看帖子。
您不可发帖。
您不可回复。
您不可编辑自己的帖子。
您不可删除自己的帖子。
您不可发起投票调查。
您不可在投票调查中投票。
您不可上传附件。
您不可不经审核直接发帖。
您不可使用主题类别。
您不可以使用HTML语法。
您不可以使用签名档。