日日新
文章平均质量分 74
txxs
这个作者很懒,什么都没留下…
展开
-
复杂系统设计解决之道
系统复杂的原因:由大量相互作用的部分组成的系统,组成部分相对简单且没有全局通信,但其相互作用会导致复杂行为。系统复杂通常分为两种:一个是规模复杂,一个是结构复杂,规模复杂相对宏观,结构复杂是规模复杂的一个子领域。在系统设计的时候过度设计和设计不足都会导致系统的复杂度提升。解决复杂的思路:分治、抽象和标识,分治针对于各个领域的划分,抽象更多的是领域内部的动作,标识用于业务在系统内部的流程。 分治:通过系统分治解决系统复杂性,具体的方法就是领域划分(系统划分,模块划分),明确系统的核心能力和边界(原创 2022-04-09 00:15:46 · 1377 阅读 · 0 评论 -
故障兜底方案
【代码】故障兜底方案。原创 2023-07-24 11:49:35 · 92 阅读 · 0 评论 -
对系统可复用性的理解
软件复用(Software Reuse)是指将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费,是提高软件生产力和质量的一种重要技术。软件复用对程序员来说是再平常不过的事情,可能从学校里的编程作业开始,我们就在接触复用。早期的软件复用主要是代码级复用,被复用的知识专指程序。但其实领域知识、架构设计、技术文档等知识类的沉淀,同样适用上述定义,也属于软件复用的范畴。大部分情况下系统的核心复杂度不会减少, 只是转移;不会因为所有代码一个人写,会比分成两个人写更快,分工是应该且必须的。原创 2023-07-28 16:11:59 · 537 阅读 · 0 评论 -
对系统可扩展性性的理解
可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时或容量出现问题时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。基本可以定义为,系统架构扩展性=系统架构适应业务变化能力+容量变化的能⼒。原创 2023-08-03 12:00:13 · 2364 阅读 · 0 评论 -
架构实践方法
而同样都采用 ZooKeeper,一个方案的节点设计是 /service/node/master,另一个方案的节点设计是 /company/service/master,这两个方案并无明显差异,无须在备选方案设计阶段作为两个不同的备选方案,至于节点路径究竟如何设计,只要在最终的方案中挑选一个进行细化即可。架构师的工作并不神秘,成熟的架构师需要对已经存在的技术非常熟悉,对已经经过验证的架构模式烂熟于心,然后根据自己对业务的理解,挑选合适的架构模式进行组合,再对组合后的方案进行修改和调整。原创 2023-08-08 16:00:09 · 1032 阅读 · 0 评论