美文网首页
客户端开发—架构设计思考

客户端开发—架构设计思考

作者: 11e17ad00a2a | 来源:发表于2017-11-11 18:06 被阅读12次

    1.架构设计考虑哪些问题?

    • 提供一套具备唯一性的完整方案(唯一性:业务唯一(贴合业务)、问题解决方案的唯一性(每种问题有多种解决方案,根据使用场景,上下文、限定唯一更合适的解决方案))
    • 通过你的设计能力来减少工程的开发成本(测试的便利性、程序的低耦合、扩展性、可维护性)、降低工程的开发难度(主要是指封装)。
    • 规避工程实施中可能会遇到的问题(技术问题和非技术问题,防止架构被腐蚀)
    • 架构要能持续演化、演进
    • 追求简约和极致
      1. 对业务工程师做最少的假设
      2. 对使用流程做最极致的简化
      3. 尽可能利用一切原生框架已经提供的手段,不要重复发明轮子

    2.是否要套用现有方法论,具体该怎么做?

    • 已有成熟方案:可以直接上成熟方案
    • 没有成熟的方案:从demo开始,实现核心功能,并逐渐演进成组件化

    3.接手新项目时,如何做架构调整?

    • 先找问题,再动手
    • 揣测现有架构的设计思路,新方案尽量不要动得很大
    • 找到过渡方案
    • 提供自动化工具(自动化codereview、自动化生成代码模版、自动化打包、自动化测试)

    4.架构中的对称性

    • 有if有else(问题处理的完整性)
    • 有大有小(如:胖model、瘦model),有正有反(如:add操作对应remove操作),有集约有离散
    • 有来有去(如:)

    5.辩证对待架构的灵活和限制

    • 灵活会引入混乱,造成架构腐蚀
    • 限制会使程序代码方案统一有序
    • 在架构改变的场景下保持灵活(业务转型、架构演进、团队人员变化的情况下,要保证架构能灵活handle),在方案实现的场景下保持限制(在同一种上下文环境里保持使用同一种方案)。

    6.辩证对待多和少

    • 不怕多,怕乱
    • 用多换少(用多一些代码,换更少的bug率、更少的耦合、更少的便利的测试、更少的维护成本、更少的拓展成本等)

    PS:模块化架构设计的核心思想是:分治思想

    相关文章

      网友评论

          本文标题:客户端开发—架构设计思考

          本文链接:https://www.haomeiwen.com/subject/mycgmxtx.html