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

你所理解的“模块化”是怎样的;来讲一下一切你对模块化所做过的思考吧

  •  
  •   kfll · 2015-09-15 11:21:15 +08:00 · 3368 次点击
    这是一个创建于 3386 天前的主题,其中的信息可能已经有所发展或是发生改变。
    10 条回复    2015-09-16 17:37:19 +08:00
    iugo
        1
    iugo  
       2015-09-15 11:29:11 +08:00
    模块之间没有代码与数据的纠缠. 互相独立.
    比如 mailgun 是邮件模块.

    但是模块颗粒度不同, 可以大模块包含小模块.
    比如基于 mailgun 制作找回密码模块.
    500miles
        2
    500miles  
       2015-09-15 13:38:46 +08:00
    最好是单独拎出来可用了 当然这种很难...只有像 发短信 发邮件之类的 才能做到吧

    大部分时间都要对应一些具体业务逻辑, 尽量做到 沿着业务逻辑这条线, 拆分 组合各种小模块吧, 再就是适合的设计模式的应用了


    功力不到, 说不清楚 ... 希望更有经验的牛牛分享下.. 经常思考 尝试; 但是总感觉不理想
    ryanking8215
        3
    ryanking8215  
       2015-09-15 13:42:47 +08:00
    轻耦合,高内聚。
    往这 2 个靠准没错
    anubiskong
        4
    anubiskong  
       2015-09-15 13:50:32 +08:00
    文件目录不同, 恩, 别理我
    lyd600lty
        5
    lyd600lty  
       2015-09-15 17:17:39 +08:00
    不好好上班啊你。
    exch4nge
        6
    exch4nge  
       2015-09-15 17:57:19 +08:00
    模块间尽可能没有循环(相互)依赖关系,分清主次关系,比如 A 使用 B 模块,那你在写 B 模块的时候,需要尽可能不依赖 A 模块,并写清楚哪些是 A 模块会调用的接口。如果 B 模块有主动行为,可以考虑用注册回调函数等等的其它设计方式来避免直接依赖 A 。

    划分模块的过程很痛苦,有些功能可以放这也可以放那,需要长时间的思考+几次推倒重设计,来完成适合此项目的模块设计,过度设计也不好,不设计就更不好。
    kfll
        7
    kfll  
    OP
       2015-09-15 18:35:34 +08:00 via iPhone
    @lyd600lty 咱那还在吃饭时间ˊ_>ˋ
    Felldeadbird
        8
    Felldeadbird  
       2015-09-15 20:29:59 +08:00 via iPhone
    方便搬砖就是好模块
    ddou
        9
    ddou  
       2015-09-15 22:34:02 +08:00
    最先想到的就是 功能内聚,接口清晰、易用
    empvio
        10
    empvio  
       2015-09-16 17:37:19 +08:00
    低耦合,高内聚,可复用,能拓展 。是这个意思么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1145 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.