• Bachue Zhou
    2019-11-22
    其实还有一种耦合度经常被人忽视,就是技术耦合度。我们相信,无论是今天多么流行的技术,未来都有失去竞争力的一天,但要开一家长达数十年甚至数百年的技术公司,不可能长期使用已经失去竞争力的技术,必然涉及到技术的多次演进。如果公司的关键性产品与某一种技术耦合度太高,则当该技术失去竞争力或彻底淘汰后,技术迁移成本过高,极易造成迁移彻底失败。所以我从不看好那种一个 Git 库里数十万甚至数百万行 xx 语言或者基于 xx 框架编写的代码,要起一个新项目还必须去引用这个库里的代码不可,这种项目不可能活很久。如果这个项目是公司的关键性产品,那么这个公司也活不了很久。

    作者回复: 👍

    
     6
  • 吴
    2019-11-21
    精彩,用心的总结
    
     2
  • Geek_03056e
    2019-11-20
    两个核心模块之间由接口调用,并且是A调用B这种的单方面调用,可是两个模块有公用的结构体数据,这些结构体的定义,应该放到那个位置呢?

    作者回复: 如果认为B更加基础、可以放在B。也有人会放在单独的C。anyway,如果A、B、C都隶属于核心系统,全局来说放在哪里只是个细节,对外来说没区别,只不过最好有一个总的入口级模块D把所有这些模块组装起来形成一个整体的DOM。

    
     2
  • 丁丁历险记
    2019-11-21
    笔记
    1 kiss 有时候,效率就是少做无意义的事。
    2 模块化
    缺经验,伤害值,耦合度为啥那样,理解不来。
    模块设计时应忽略框架的存在。认真审视模块的接口,发现其中“过度的(或多余的)” 约束条件,把它提高到足够通用的、普适的场景来看。
    3 可测试
      好处 一验证和引导代码设计的是否足够解偶。martin fowlor 敏捷开发 模式 实践里有详细论述
    其二 确保完成的代码可用。 在坚固的基础上叠加。
    4 正交分解, 架构就是一种不断正交分解的过程(需要长时间去体验感悟)
    让模块直接。 (推荐看吴军信息论,里面也有介绍信息正交性)
    组合是一种正交,让互为正交模块以乘法模式去组合业务。
    集成是一种加法,(个人觉得有时候抽象类干多了直接变减法)

    最后 缺经验。如何量化,知其然,不知所以然。
    先胡乱理解一波
    伤害公式 ,模块耦合度 用好设计模式,重构技巧优化。
    ,总耦合公式引导了团队开发方向。
    展开
    
     1
  • Tesla
    2020-01-28
    我是这样想的,极客时间的核心是知识,学生是知识的订阅者,老师是知识的发布者。但是知识的形式又是多样化的,所以知识本身也需要抽象。
    设计出来的核心数据结构是,保留知识基本信息及类型ID的类,用户类,用户发布知识的权限类,用户订阅知识的权限类,用户余额类。核心接口是用户注册接口,余额增加 减少接口,发布知识接口,订阅知识接口,判断是否有权添加 修改知识的接口,判断是否有权查阅知识的接口。
    其他的功能是周边系统,有知识的具体内容类,各种订阅优惠券类等等。
    不知道这样分析的思路对不对😂

    作者回复: 挺好的,我觉得基本上没有什么问题。我们在线下培训的时候会要求需求分析做足,正确的需求分析可以指导怎么做好架构。

    
    
  • Tesla
    2020-01-28
    老师,可以简单说下 极客时间app的核心系统和周边系统大概是什么吗?

    作者回复: 挺好的问题。你有找到自己的答案么?

    
    
  • 袁
    2019-12-24
    “优先使用对象组合,而不是继承”是面向对象设计的原则之一。其中老师说的组合是乘法,继承是加法让我困惑了下。网上查了下资料《组合也叫“对象持有”,就是在类中定义另一类型的成员,继承会破坏类的独立性,增加系统的复杂性,一般系统的继承层次不超过3层。组合拥有良好的扩展性,支持动态组合,因此优先考虑组合方法。》 更清楚了些。
    
    
  • @㍿社长
    2019-12-18
    想知道,动态的耦合会对系统的复杂性造成什么影响吗?

    作者回复: 动态的耦合?

    
    
  • 欧星星
    2019-11-23
    还是不太明白组合为什么比继承更好,老师说组合是做乘法继承是做加法为什么会是组合好呢,本来是想着继承是强依赖如果父类发生了变化会直接影响子类的行为,但如果用组合的话不一样也会影响实现的行为吗?希望老师解惑
    
    
  • Aaron Cheung
    2019-11-20
    KISS:简单比复杂好;


    封装很多次的代码 是否所谓体现抽象能力呢
    
    
我们在线,来聊聊吧