# 项目重用

  • 项目重用侧重于对已有功能模块、数据库表和代码的重用

# 设计初衷

  • 学过Java面向对象思想的开发者,都了解重构的方法,应该也用过Eclipse之类IDE相关的重构的工具,微软的VS IDE工具如VS2012也有类似的重构工具;

  • 这些工具能重用已有项目的代码工具级的积累,快速构建新的项目的框架,能大大开发者的效率。

  • 本框架提供了项目重用的工具架,目标是在代码级之上,更高一个层级上:项目上尽可能重用原有的表设计、功能设计;略作调整修改和换肤,即可实现新的项目主体的建设,可快速帮助客户搭建项目的原型。

# 项目重用的核心思想

项目重用的前提有两个

  • 首先是项目经理的经验和驾驭能力即人的因素;潜在的认识就是没有任何项目经理能在有限的预算和时间和开发人员条件下一次性100%完成真正市场所需的需求,因为需求在实际实施过程中因为对项目需求认识的加深而不断扩大膨胀;

  • 因此需要项目经理有比较强的规划计划能力和长远作战的打算,尽量在项目同质化的基础上不断迭代升级丰富后,再提炼最通用的功能级需求,从而实现市场所需的产品。

  • 项目重用的第二个前提是项目的同质化,例如所有的电子商务网站都有着类似的前后台功能级设计及数据库设计,如商品发布和订单管理;所有的新闻内容发布网站应该都有类似的权限角色设计、内容发布管理等。

  • 项目的类型越接近,功能级的具体结构设计越接近,项目重用的效果就越好,付出的代价就越小。

  • 项目重用是一把双刃剑,它可以让勤劳的开发者从重复的开发工作中脱身而出,更多的关注业务逻辑的实现;也会让懒惰的开发者不劳而获;如何使用框架,用于何种用途,这取决于开发者的态度。

# 重用类型

# 项目重用的方法论

  • 在Web项目开发中,往往商业模式是可以重用的

  • 只要在原有的代码基础上稍作修改即可,一般不需要高级开发者花费太多的时间

  • 在公司运作中,只需初级开发者找到文字修改或者换肤即可很快重用代码变身成新的项目;本工具提供图像化界面方便开发者快速重用现有代码生成新的项目

  • 输入项目:

    • 项目路径|项目名称【中文-英文】|项目别名

    • 重用类型

        1. 完整版【同现有版本一样】
        1. 精简版【只包括框架核心-包括MVC,前后台】
        1. MINI版【只包括框架核心-只包括了DAO,不包括显示组件、Service层等】
  • 处理流程操作:

      1. 复制整个项目到新的路径
      1. 修改Gc.php相关配置
      1. 修改ConfigDb.php[数据库名称|数据库表名前缀]
      1. 修改帮助地址
      1. 修改应用文件夹名称
      1. 重命名后台Action_Betterlife为新应用类
  • 精简版还执行了以下操作

      1. 清除在大部分项目中不需要的目录
      1. 清除在大部分项目中不需要的文件
      1. 清除缓存相关的文件
      1. 清除mysql|sqlite|postgres以外的其他数据库引擎
      1. 清除common大部分工程无需的文件

# 定位

  • 路径: tools/dev/
  • 文件名称: index.php

# 相关配置

  • 路径: config/config/
  • 文件名称: ConfigAutoCode.php

  • 配置设置说明如下

    /**
        * 只需要生成实体类
        */
    const ONLY_DOMAIN=false;
    
    

# 项目重用使用说明

  • 项目重用即工程重用,是同一个功能的两种说法。

  • 工程重用可通过访问框架本地首页地址: http://127.0.0.1/betterlife/

  • 下方应有以下文字链接: 工程重用 | 数据库说明书 | 代码生成器 | 报表生成器 | 工具箱 | 帮助

  • 点击其中的文字链接: 工程重用

  • 工程重用链接地址: http://127.0.0.1/betterlife/tools/dev/index.php

  • 根据自己项目的需求修改相关项目配置:

    • Web项目名称【中文】
    • Web项目名称【英文】
    • Web项目别名
    • 输出Web项目路径
    • 数据库名称
    • 数据库表名前缀
    • 帮助地址
    • 重用类型
  • 假设我们需要创建一个新的项目:bettercity

  • 它的定义如下:

    • Web项目名称【中文】: 美好的城市-上海
    • Web项目名称【英文】: bettercity
    • Web项目别名 : Bc
    • 输出Web项目路径 : bettercity
    • 数据库名称 : bettercity
    • 数据库表名前缀 : bc_
    • 帮助地址 : 默认的值,不变
    • 重用类型 : 精简版[3种重用类型之一]