V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mokeyjay
V2EX  ›  程序员

请教各位在正式项目中关于代码和视图合理复用的问题

  •  
  •   mokeyjay ·
    mokeyjay · 2017-05-27 10:42:45 +08:00 · 2316 次点击
    这是一个创建于 2762 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接手我司一个项目,PHP 开发,有三个后台,分别是:

    • 我司自己用的最高权限后台
    • 下放给其他企业的企业后台
    • 普通用户后台

    有些功能三个后台都有、有些则是某一、两个后台独占
    往往这些功能在各个后台基本相同,只是部分细节、前端展示的数据不同
    (例如我司后台发布文章时可选择发布到哪个企业下,而企业自己发布时只能发布在自己名下、禁止且隐藏企业选择框)

    而有些功能呢,看似在各个平台一样,但逻辑流程却不同

    这项目的前一位主程用的是复制粘贴解决,改一个需求可能要改 3 处地方,大毛病没有、小毛病不断。非常繁琐,我觉得应该合理复用
    虽是这么说,但我对于如何复用这里面的代码、视图也没有很好的办法,目前也只是把新建、编辑页面合并这类的小优化
    因此来请教一下大家有没有遇到过类似的问题?你们是如何解决的?

    6 条回复    2017-05-27 19:12:10 +08:00
    alen
        1
    alen  
       2017-05-27 11:13:54 +08:00
    功能封装,继承重写
    isCyan
        2
    isCyan  
       2017-05-27 11:49:20 +08:00 via Android
    关注,也遇到类似疑惑
    zaxlct
        3
    zaxlct  
       2017-05-27 13:01:17 +08:00 via Android
    用一些前端框架,比如 vue,react 组件化一下?
    ibufu
        4
    ibufu  
       2017-05-27 13:07:15 +08:00
    小业务组件化。
    再将小业务封装成流程组件。
    jybox
        5
    jybox  
       2017-05-27 13:21:15 +08:00
    后端部分大部分代码移到 Model 或单独的 Service 层,然后 Controller 层( Web 框架的路由、中间件)只是调用 Model 和 View 和鉴权,三个部分有各自的 Controller 来进行不同的权限控制,其他部分全部复用。
    nicevar
        6
    nicevar  
       2017-05-27 19:12:10 +08:00
    这种问题与需求相关,无论是做服务端还是客户端开发都能遇到,能抽象出来模块化当然好,但是如果下层的需求又需要各种定制,有时候复用本来做得很好,经过不断的需求填充,改得也不像样子
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5140 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:34 · PVG 17:34 · LAX 01:34 · JFK 04:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.