我们组的情况是这样的,我们根据【面向的用户】区分,将项目划分为对内/对外两个项目,这两个项目共用一个数据库。对外项目主要负责外部用户提交需求,对内项目包括内部工程人员处理需求和一些管理员相关的功能。
随着代码的积累和增长,对内/对外项目中出现了许多重复的代码:包括 models/helpers/views 里的诸多文件。比较典型的是一个报告展示页面(对内工程师需要审核报告后发布给外部用户看,因此对内/对外都需要报告展示),报告展示功能涉及到两个工程中许多 model/helper,这些对象中的绝大多数方法都是重复的。
为了解决代码重复的这个困扰,我们引入了git subtree
功能,将重复的 model/helper 移动到了对外项目
的一个共享文件夹。可是渐渐又出现了一个困惑:可能某个同学只是需要修改对内项目
的某个功能,却需要在对外项目
中去修改代码,然后上线时同时更新对内/对外两个项目的代码。而且由于git subtree
的使用经验不足,经常会出现各种奇怪的报错。也有同学担心改动出错影响到两个项目,不敢轻易去改共享文件夹中的代码。
我自己整理了下目前的几点困惑/思路:
这样类似的问题社区中的一些同学也许遇到过、实践过。想请教大家分享/探讨下类似问题的解决思路。