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

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

作者: 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