zoukankan      html  css  js  c++  java
  • 面试连环炮系列(十八):了解康威定律吗

    1. 了解康威定律吗

      • 定律一:组织沟通方式会通过系统设计表达出来,就是说架构的布局和组织结构会有相似。
      • 定律二:时间再多一件事情也不可能做的完美,但总有时间做完一件事情。一口气吃不成胖子,先搞定能搞定的。
      • 定律三:线型系统和线型组织架构间有潜在的异质同态特性。种瓜得瓜,做独立自治的子系统减少沟通成本。
      • 定律四:大的系统组织总是比小系统更倾向于分解。合久必分,分而治之。
    2. 你认知的比较深刻是哪一条?
      定律二和定律四比较深刻。

      • 开发中也经常碰到,产品经理的需求太复杂了?适当忽略一些细节,先抓主线。产品经理的需求太多了?放弃一些功能。
      • 目前火热的微服务就符合这个定律,将大型系统拆分,更利于开发和管理。
    3. 这几个定律如何解释微服务的合理性

      • 人与人的沟通是非常复杂的,一个人的沟通精力是有限的,所以当问题太复杂需要很多人解决的时候,我们需要做拆分组织来达成对沟通效率的管理。
      • 组织内人与人的沟通方式决定了他们参与的系统设计,管理者可以通过不同的拆分方式带来不同的团队间沟通方式,从而影响系统设计。
      • 如果子系统是内聚的,和外部的沟通边界是明确的,能降低沟通成本,对应的设计也会更合理高效。
      • 复杂的系统需要通过容错弹性的方式持续优化,不要指望一个大而全的设计或架构,好的架构和设计都是慢慢迭代出来的。
    4. 依据这个定律,让你去管理一个团队,你会怎么做

      • 我们要用一切手段提升沟通效率,比如github,wiki。能2个人讲清楚的事情,就不要拉更多人,每个人每个系统都有明确的分工,出了问题知道马上找谁,避免踢皮球的问题。
      • 通过MVP的方式来设计系统,通过不断的迭代来验证优化,系统应该是弹性设计的。
      • 你想要什么样的系统设计,就架构什么样的团队,能扁平化就扁平化。最好按业务来划分团队,这样能让团队自然的自治内聚,明确的业务边界会减少和外部的沟通成本,每个小团队都对自己的模块的整个生命周期负责,没有边界不清,没有无效的扯皮。

    参考文章(摘抄的文字版权属于原作者):

    https://yq.aliyun.com/articles/8611

  • 相关阅读:
    【SAS NOTE】OUTPUT
    【SAS NOTES】_NULL_
    【SAS NOTE】sas 9.2 安装
    【SAS NOTE】FREQ
    纯数学教程 Page 203 例XLI (1)
    纯数学教程 Page 203 例XLI (3)
    纯数学教程 Page 203 例XLI (2)
    Prove Cauchy's inequality by induction
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
  • 原文地址:https://www.cnblogs.com/xiaoyangjia/p/11676587.html
Copyright © 2011-2022 走看看