技术架构与体系结构
Oreilly报告:2023年IT行业总结
要点: 软件架构领域的内容使用量整体下降,但企业架构和事件驱动架构的使用量出现增长。 微服务的使用量下降,反映出许多开发人员对微服务的失望,并主张回归单体应用。 编程语言方面,Python和JavaS.
软件架构中10个反模式
发现常见的架构反模式,学习如何避免它们并克服设计陷阱!获得宝贵的见解、实用的建议和实际示例,以构建更好的软件架构并改进现有架构。反模式1:货物崇拜在不了解流程、技术或方法为何以及如何运作的情况下采用它.
什么是系统设计 – 学习系统设计
系统设计被定义为为系统的不同组件、接口和模块创建架构并提供有助于在系统中实现这些元素的相应数据的过程。系统设计是任何分布式系统设计背后的核心概念。系统设计涉及识别数据源,它是描述、创建和规划框架以满足.
Go-Architect:Go架构分析工具简介
Go-Architect是一个用于分析Go语言项目架构的工具,可以使用此工具来分析工件的设计,以便简化与重构代码、修复问题或改进工件功能相关的决策。为什么我们应该使用架构分析工具?架构分析工具可以帮助.
Spring框架中@component、@Service、@Controller和@Repository
在Spring中,@component、@service、@Controller和@Repository注释称为构造型注释。当启用组件扫描时,Spring会自动将这些bean导入到容器中,并将它们注入.
软件架构简介
软件架构和软件设计是同一主题的两个方面。两者都是关于如何构建软件以执行其任务。术语“软件架构”通常指软件系统的较大结构,而“软件设计”通常指较小的结构。架构和设计之间的确切界限很难说,因为系统的架构也.
什么是自足系统(Self-contained Systems)?
自足系统(又称为自包含系统、自我独立系统,英文Self-contained Systems,简称SCS)是一种软件架构方法,SCS 包含自己的 用户界面、特定的 业务逻辑 和单独的 数据存储 。SCS.
MVC、MVP、MVI、MVVM、MVVM-C和VIPER等模式的区别
以下是最重要的架构模式列表:1、MVC(Model-View-Controller):它是最早被采用的设计模式之一。其主要目标是将应用程序的数据、用户界面和控制逻辑分离成三个相互关联的组件。在这里,模.
Instagram 如何仅靠 3 名工程师就将用户数量扩大到 1400 万
从 2010 年 10 月到 2011 年 12 月,Instagram 在短短一年多的时间里,用户数量从 0 增长到 1400 万。做到这一点的只有 3 名工程师。他们之所以能做到这一点,是因为遵循.
Spring Modulith 1.0 GA发布
我很荣幸地代表 Spring 社区和所有做出贡献的人宣布 Spring Modulith 1.0 GA 正式发布。5 年多前,Modulith 还是一个研发辅助项目,2022 年成为 Spring 的.
用Java的Rama构建Mastodon降低100倍成本
Rama 完全使用 Java API 进行编程,与使用 Ruby on Rails 构建的官方 Mastodon 实现相比,我们的实现大大减少了代码。Rama 负责处理所有数据处理、数据索引和大部分产.
Golang六边形架构源码和分析
维护软件的成本比开发软件的成本高得多。为了使维护软件具有成本效益,我们需要一种架构,使每个开发人员都能轻松理解代码库的每个部分并鼓励并行工作,因为大型软件通常有一个团队在背后支持。六边形架构旨在通过提.
尽可能长时间地坚持令人乏味的架构?
构建真正为客户带来改变的产品所带来的满足感,比追赶最新技术潮流所带来的短暂兴奋更有价值。依靠稳定且易于理解的技术来优先考虑交付价值。有选择地、有意识地进行创新。这种创新属于什么创造力?创造力是一个动态.
多层、六边形、洋葱和clean架构简介
流行软件架构模型的优缺点
多年来,软件架构模型和框架已经取得了长足的进步,不断发展以应对软件开发领域的挑战和复杂性。从早期的Zachman框架开始,到更全面的TOGAF,再到4+1架构视图模型,最后到最近的C4模型,进步是显着.
六边形架构:为什么它比 MVC 或Clean架构更好?
六边形架构,也称为端口和适配器,是一种促进松散耦合、可测试性和可扩展性的流行方法。这种架构风格使开发人员能够创建健壮且适应性强的系统。本文探讨了六边形架构的概念,并提供了实际用例、代码示例和比较,以帮.
简介:六边形、单体、微服务和分层架构
在不断发展的软件开发领域,选择正确的架构范式对建立强大的可扩展的应用程序至关重要:在不断发展的软件开发领域,选择正确的架构范式对于构建健壮和可扩展的应用程序至关重要。本文旨在探讨四种著名的架构方法之间.
七篇国外大科技公司工程博客摘录
有选择地从科技公司的工程博客中挑选博客文章:1、[Airbnb]用HTTP流提高性能讨论HTTP流如何提高页面性能,以及Airbnb如何在现有的代码库中启用它。流式传输的含义,想象一下,我们有一个水龙.
单体不是恐龙
构建可演进的软件系统是一种策略,而不是一种宗教。必须以开放的心态重新审视您的架构。软件架构不像桥梁和房屋的架构那样。桥梁建成后,很难、甚至不可能改变它的建造方式。软件则完全不同,一旦我们运行我们的软件.
系统设计蓝图:终极指南
在这篇博文中,我们将探索基本的系统设计组件,例如 DNS、负载平衡、API 网关等,以及一个简明的备忘单,可以帮助开发人员设计不同复杂度的系统。第一节:系统设计原则1.1:模块化将系统划分为更小的、易.
服务器制约伸缩性的四种关键资源
计算机服务器有4种关键资源来驱动其功能。大多数可伸缩性问题都是在这些资源耗尽或分配不当时出现的。内存(也称为RAM)在服务器中起着至关重要的作用,因为它临时存储数据,以供中央处理器(CPU)快速访问和.
软件架构文档的终极指南
软件架构文档创造了共同的理解(在同一种语境上下文BC中的达成共识)软件架构文档至少应该支持开发团队,例如,当一个新的团队成员新入职,会有很多问题: 在哪里可以找到系统构建块的概述? 你为什么使用Ang.
实践中的模块化单体 | Foojay.io
为什么好的软件架构很重要? – Maciej
近年来,我在IT公司遇到过很多因软件架构不正确而导致的问题。不正确是什么意思?在大多数情况下,这是一个方向——相对于它应该解决的问题来说:要么过于简单要么极其复杂这两种情况都会导致性能问题并阻止组织变.
Spring Modulith能成熟实现模块化了吗? - Foojay
如何绘制技术架构图?
能显示业务目标的DDD微服务架构图 -Aleix
MVC模式与六边形架构区别?
系统设计面试完整列表
系统设计面试完整列表:1.网络通信协议分布式系统中的机器通过网络彼此通信。需要了解的内容: - 对低级网络的基本了解 - 协议(IP、TCP、UDP、DNS和HTTP) 2.储存信息存储是每个分布式系.