分包总结

一.背景
  1.项目组原来使用的是c++builder进行开发;
  2.有自己一套的控件(包括表格, 打印, 和其它小控件);
  3.整个项目就只有一个工程, 即编译后的可执行文件, 大小约为15M;
  4.由于上头的压力, 项目一般都没有按照完整的开发流程展开, 而是讨论完需求后, 即开始分模块编码(模块一般比较固定);
  5.后期的错误比较多
二.问题
  1.编译速度太慢: 往往重新编译一次需要3小时, 严重的影响了开发进度;
  2.错误比较难查: 某些模块的错误会引起其它模块的出错;
  3.程序员分工不明确: 虽然指定了程序员负责某些模块, 但有些共用的文件形成了灰色地带, 不知道谁负责;
三.思路
  分包. 按照功能模块把原来的大的工程进行拆分. 拆分后, 实现以下目标:
  1.每个包都实现一个模块的功能;
  2.每个包由指定程序员来负责;
  3.每个包的错误不允许出包外;
  4.每个包的修改不会导致其它包的重新编译;
四.实现
  1.拆分情况: 将工程拆分为主界面包, 共用包, 系统维护包, 权限包, 基础资料包, 单据包, 生产包, 项目管理包, 客户关系包, 办公管理包, 报表包, 自定义报表包, 数据中心包,凭证包, 固定资产包, 工资包.
  2.通信实现:
    a. 除共用包外, 其它的每个包都向外公布两个接口: xxxLoad(), xxxUnload().
    b.主界面包启动后会装载各个包. 装载时会自动调用每个包的xxxLoad()函数. 退出程序时, 主界面包会卸载各个包, 卸载时, 会自动调用每个包的xxxUnload()函数.
    c.共用包中, 有一数组, 记录了各个包已经注册的提供给别的包调用的接口.
    d.每个包的xxxLoad()函数中要实现本包的初始化, 及对提供给别的包调用的接口进行注册.
    e.若某包需要调用其它包的接口, 则向共用包提出要求:我要执行xxx接口. 共用包查找接口数组, 若发现此接口已经注册, 则将此要求转给指定的包.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值