美文网首页
开发设计中的一点感悟

开发设计中的一点感悟

作者: hadoop_a9bb | 来源:发表于2020-04-12 15:17 被阅读0次

    最近整理很多之前写的文档,产生了一些软件设计上的想法,在此记录下来。都是个人总结浅显观点,如果观点有偏颇,欢迎指正。

    软件设计的本质,其实是根据具体的场景找到空间时间互换的最优临界值,找出效率最高的方案。这里说的效率不仅仅局限于程序的执行效率,也包含系统整体的开发效率,维护效率,可扩展性,可用性等,伴随软件生命周期中各维度的平衡。

    比如架构体系的演变中,从单体,到集群,到 ESB,SOA,微服务到中台的管理理念,ServiceMesh,ServiceLess的演变中,前者在效率的转换上产生“分而治之“的思想,而后半段在转换上产生了“分久必合”的思想。具体哪一部分"分",哪一部分"合" 是需要我们到具体到业务场景中去寻找。

    比如分布式系统中,设计层面解决的问题,其实是一致性和可用性转换的最优临界值。cap和base理论也是根据具体场景 找到一致性和可用性两方面平衡 达到效率最高的临界值。如zk、redis、mysql、MQ的具体应用场景的选择策略上。

    比如设计模式中 ,设计模式的根本是耦合性、系统复杂程度、扩展性和复用性的互换。如果一味地减少耦合性有可能导致类膨胀导致系统过于庞大难以维护,相比起来允许适当的耦合,系统在有扩展性的前提下,来减少类的数量,减少系统整体的复杂程度。这两种策略(或多种)之间的平衡。

    比如具体编码中,扩容因子,体现时间空间互换的最优临界值。布隆过滤器,用最少的空间换取最大时间上的效率。各种算法的选择上,都是根据具体的时间空间比较 选择一种最适合当前应用场景最优时间空间转换最优的方案。

    所以架构师的职责是找到传说中的黄金分割比例,在架构设计的三高中(高可用,高扩展,高性能 )多种维度,多种变量的前提下,以丰富的知识和经验,来找到当前系统设计的最优解。

    相关文章

      网友评论

          本文标题:开发设计中的一点感悟

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