软件复杂度与微服务架构解析
1. 复杂度基础概念
在软件开发中,复杂度是一个关键考量因素。从简单的代码示例来看,有两个用非优化的通俗 C 语言编写的程序。一个程序用于打印 111/222 的值:
printf("%f", 111.0/222.0);
另一个程序用于打印 1/2 的值:
printf("%f", 1.0/2.0);
对它们进行编译和压缩时,表达 111 和 222 所需的比特数总是比表达 1 和 2 所需的比特数多。因此, 111/222 比 1/2 更复杂,这也符合我们对分数可化简为最简形式且最简形式更简单的直觉认知。
在软件系统层面,与能以多种方式组合元素的面向对象系统相比,以少量方式组合元素的软件系统(加法组合)在元素数量增加时,复杂度增长要缓慢得多。如果将复杂度作为技术债务的代理指标,那么面向对象的单体应用更容易产生技术债务,而且这种易发性非常高。因为元素之间的总可能交互数会随着元素数量和连接方式的增加呈指数级增长。
2. 微服务理念
2.1 微服务的基本概念
大规模软件系统最好采用组件架构来构建,这种架构能使组件组合既可行又容易。“微服务” 这个术语涵盖了这
超级会员免费看
订阅专栏 解锁全文
169万+

被折叠的 条评论
为什么被折叠?



