Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
架构师资料教程
面向服务的架构SOA与事件驱动的架构EDA比较
我们都希望有用和有趣的内容被推送给我们。新闻提醒出现在我们的手机上,信息通知出现在我们的桌面上。我们希望了解最新的事件,而不是去寻找它们。当相关的信息被传递给我们时,这就容易多了。 事件驱动的系统也是如此。当信息出现在需要的地方,而不是一个系统不得
分布式单体的六大病症
当公式的组织架构及其代码被拆分以后,但仍然存在紧密耦合时,就会出现分布式单体。这已经成为一个问题,因为系统的规模增加,单体的所有部分都需要一起管理,这会放慢开发速度并增加任何变化的风险。 能够识别何时处理分布式单体很重要:
何时停止设计并启动实施编程? - Alter
我们希望有一个策略,能让我们决定何时停止设计,开始实施编程,同时优化成本函数。 启发式#1:有足够的 "已知的知识"。你是否有最小的知识来带来价值?你的项目可能是庞大的;因此,有许多需求,可能有些需求可以在没有其他需求的情况下
系统架构10大架构特征 - zonito
想象一下你正在买一辆车。您需要其中的哪些基本功能?车辆应该将人从 A 点运送到 B 点。但我们还要检查的是安全性、舒适性、可维护性、易于维修或更好的里程。您也可以寻找电动版本或更快的速度。为什么?为了限制在提供主要功能时可能发生的意外。同样,就像汽车、摩托车或房屋一样,软件也有其非功
软件架构图表与模式介绍
软件架构是任何成功软件系统的基础,并且会影响整个系统生命周期中的可维护性、可扩展性、稳定性和安全性等方方面面。实施新软件系统的第一步是架构图.随着软件系统和 Web 应用程序变得越来越复杂,精心设计的系统架构图对于与其他开发人员和利益相关者进行交流变
什么是解决方案架构师 - Chiu
随着云计算的发展以及 PaaS 和 SaaS 服务的使用,来自不同领域的 IT 从业者更容易学习、实践和研究不同解决方案架构的样子。然而,与此同时,它增加了设计的复杂性以及与各种解决方案平台、服务、集成方法的可能组合。这个故事旨在提供一些关于解决方案架构的基本概念和想法,以及如何长期
架构师应该多维度多视角地思考 - Gregor
程序员是无到有构建代码,应该注重组合思维,做出来的东西需要能够相互组合在一起;而架构师是从上而下的视角,因为不参与具体细节构建,但为了落地,应该具有多维度多维度视角,从程序员到架构师思维转变很重要,下面是原文摘要:一个人能看得更多不仅意味着要有更好的视力,还意味着能看到更多的维度。想
亚马逊使用架构决策记录来简化软件开发项目的技术决策 - AWS
本指南介绍了软件工程项目的架构决策记录 (ADR) 过程。ADR 支持团队协调,记录项目或产品的战略方向,并减少重复和耗时的决策工作。 在项目和产品开发期间,软件工程团队需要做出架构决策以实现其目标。这些决策可以是技术性的,例如决定使用命令查询职责
架构师职业回归:分布式系统架构师 - Leon
不久前,在一个并不遥远的IT世界里,架构师的角色被认为是不必要的。开发人员精通他们在大学数据库和网页设计课上学到的三层架构和ERD。精通对象建模、UML图解和文档的架构师只是臃肿的,是已逝的瀑布时代的遗物。 这在云计算时代已经完全改变了。现代的架构
微服务的发布管理
想象一个由数十个持续部署的自治服务组成的微服务应用程序。每个应用程序的服务群都有自己的存储库,具有不同的版本控制方案和不同的团队不断发布新版本。谜语:我怎样才能知道(整个)应用程序的版本?由于变更历史分散在数十个存储库中,那么跟踪变更的最有效方法是什么?我们如何管理应用程序发布?
解决方案架构师提示:如何构建您的第一个架构图 - Allen
所有伟大的图表都在讲述一个故事。 让我们拿学习如何驾驶汽车做个比喻。当你学习如何开车时,教练描述了启动汽车的必要步骤,把它放在驱动位置,然后驶入交通。每一个步骤都有上下文,向你展示每一个步骤是如何进行下一个步骤的。
复杂软件的崩溃 - nolanlawson
1988年,人类学家Joseph Tainter出版了一本名为《复杂社会的崩溃》的书。在书中,他描述了罗马人、玛雅人和查科人等伟大文明的兴衰。他的目标是回答几个世纪以来一直困扰着思想家的一个问题:为什么这些强大的社会会崩溃? 在他的分析中,泰恩特发
使用DSL表达软件设计意图 - guitarvydas
我们目前还没有一种用于DI(Design Intent设计意图的简称,意图包括架构,业务规则)的语言。当DI被嵌入到了代码中的会出现病症:如果你需要重构,那么很可能代码还没有被切分为DI和实现两个部分。 过多的细节走向了DI的对立面。
复杂性是心智杀手 - PhilipK
当面临选择时,总是选择最简单的东西来解决你眼前的问题。然后确保你以后可以改变主意。我所说的最简单的事情是指最容易推理的解决方案。 当我们总是选择最简单的解决方案时,我们就可以避免分析瘫痪,即找出在我们可以想象的所有未来情况下哪个解决方案可能是最好的
2022年软件开发的十五种趋势 - geekculture
以下是通过参加了一些关于软件开发的会议搜集到的软件开发趋势: 1. 可观察性[跟踪、监控和记录]是至关重要的!你正在开发你的软件,并且你已经准备好部署它。所有的测试都通过了,测试覆盖率也达到了一个不错的水平
如何应对系统设计面试问题? - hackpack
在研究数据结构/算法 (DSA) 面试问题时,有一个清晰的剧本:掌握概念并始终如一地实践
system-design-resources: 最好的系统设计英文资源
这些是 Internet 上系统设计的最佳资源。 视频处理大规模转码视频:https ://www.egnyte.com/blog/2018/12/transcoding-how-we-serve-vide
Twitter构建高度可靠的广告投放系统的经验教训
在设计、实施和运营起广告投放系统的两年中,我们学到了一些值得分享的东西: 首先,不可能为所有故障设计服务并为耗尽而设计。在容错的复杂性和各种故障的可能性之间找到平衡是很重要的。例如,为了达到所需的 SLA,
上页
下页