1、百小融FAQ和运营助手FAQ,总体功能非常类似。

70%是一样的,30%各自有定制化的代码。

2、先直接复制粘贴,再修改,发现重复代码太多,不方便以后维护。

把完全一样的代码,通常是那些业务逻辑无关的,比如 纯粹的crud、数据转换、格式化等,放到XxKit,XxKitService、XxEnum。

3、还剩下261行代码,主要分为查询Query和修改Save 2大类代码。

查询的,数据库表共用,但 业务类型bizType有区分、2个业务的字段有很多不同的,因此各自维护。

修改类的,核心的是save方法,逻辑基本一致,少量不同,比如 某个默认参数的值,先有根据key获得值。

想增加1个业务对应的默认值参数,分开维护,分2个key。

不太想改成默认值:从1个字符串,改成 1个数组。

4、读写分离,精心维护核心方法

一个业务类的项目,一般都是围绕一个核心流程在开发,核心流程的关键是一个:下单、投标、提问、回答之类的创建save方法。

比如,电商的下单、P2P理财的投标、DTS的匹配任务创建、DMS百小融的用户提问和收到回答、问答网站的提问和回答。

重点精心维护核心流程中的核心方法,整个项目就清晰了。

一切尽在掌握。