20个OOP基本抽象原理问答题

52 3K
通过我们的 20 个最重要的抽象原理问题来掌握您的面向对象编程面试。提升您的理解并展示您的抽象能力,这是有效软件设计的关键概念。准备好在下一次技术面试中取得好成绩!1. OOP 中抽象原则背后的基本思.

空间结构性胜过时间性

73
这篇文章讨论了在项目开发中,人们通常关注时间节点,但作者认为应该更关注项目的结构。文章指出,项目的结构和复杂度对于解决问题至关重要,而人们往往忽视了这一点。作者提出了“自然选择我们的最后期限”的观点,.

绕开事件驱动架构5个坑

57 3K
事件驱动架构 (EDA) 并不是什么新鲜事物,如果您四处搜索,您一定会找到很多有关此架构概念的信息。您会了解企业服务总线 (ESB) 或队列的差异、领域驱动设计 (DDD) 的重要性,甚至找到有关如何.

云计算中单租户与多租户的比较

56 4K
在过去的几年中,我一直在构建一个具有单租户架构的多消费者应用程序。每个消费者都有一个独特的、独立的资源堆栈,从而实现简单性和较小的爆炸半径(半径?)。然而,我们正在达到可扩展性限制,并将很快转向多租户.

Oreilly报告:2023年IT行业总结

301 1 6K
要点: 软件架构领域的内容使用量整体下降,但企业架构和事件驱动架构的使用量出现增长。 微服务的使用量下降,反映出许多开发人员对微服务的失望,并主张回归单体应用。 编程语言方面,Python和JavaS.

什么是事件驱动编程范式?

82
事件驱动编程是一种范例,其中程序的执行由用户操作或消息等事件决定。程序通过预定义的操作响应事件,从而允许异步和响应行为,这在 GUI 应用程序和分布式系统中常见。事件驱动编程范式的优点 实现异步处理,.

模板方法和构建器模式的终极指南

52 6K
在软件工程中,模板方法和构建器模式是两种关键的设计模式,每种模式都提供了不同的面向对象设计方法。模板方法是一种行为设计模式,强调算法步骤的骨架,允许子类在不改变算法结构的情况下改变某些步骤。相反,构建.

模板方法和策略模式比较

56 7K
在软件设计中,理解和应用正确的设计模式通常对于创建健壮且可维护的系统至关重要。模板方法和策略模式这两种模式提供了不同的软件设计方法,每种方法都有其独特的优势和应用。模板方法依赖继承来定义算法结构的一部.

Akka,事件溯源和分布式数据库迁移

53
VirtusLab 的基于事件溯源的 Akka 应用程序的底层数据库迁移案例研究。这篇文章介绍了一项针对大型工业事件溯源项目的研究,其中涉及了对Akka和数据库选择的讨论。作者对Akka Persis.

德国大型企业的企业架构管理建议介绍

66
我们开始启动一家德国公司的第一个企业架构:该公司在全球拥有约3万名员工,IT部门约有600人。我们有一个独立的应用程序和系统环境。我们的工作将从今年4月开始实施企业架构管理,你会推荐哪些领域、哪些主题.

设计软件最重要的目标是可理解性?

81 1 2K
当您设计一款软件时,设计时最重要的一点就是可理解性。安全性、性能和正确性都很重要,但它们次优于可理解性。被误解的软件会产生Bug缺陷如果软件的实施者和维护者对软件存在误解,那么软件最终就会出现缺陷。主.

TOGAF中架构视角与架构视图区别?

81
TOGAF 规定,架构视点(Architecture Viewpoint)管理架构视图(Architecture vView)。那么,如果利益相关者有疑虑,该疑虑会反馈到哪里,是架构视点还是架构视图?.

架构合规性审查清单指南

140 11K
本章提供了确保项目符合架构的指南。确保单个项目符合企业架构是架构治理的一个重要方面(见架构治理)。为此,企业内的 IT 治理功能通常会定义两个互补流程: 架构功能将被要求准备一系列项目影响评估(见项目.

7种软件架构建模语言

224 1 4K
由于软件的复杂性,始终需要以图形方式可视化软件架构并与其他人进行交流。对这些系统及其抽象进行建模和图表化使我们能够分析和改进设计,从而在构建它们时获得更高质量的实现。在本文中,我们将比较 7 种流行的.

系统分析和设计指南

146 13K
系统分析是系统设计中“做什么”之前的“如何” 。它提供了构建一个能够有效且高效地解决预期问题的系统的基本路线图。“想象一下你正在建造一座梦想之家。如果没有详细的蓝图,你不会开始敲钉子,对吧?“软件开发.

分布式数据库系统中主从、主主和无主三种复制算法

92 12K
分布式系统中的复制对于确保数据一致性、可用性和系统弹性至关重要。这是一种将数据存储在多个节点或服务器上的策略,即使在服务器故障或维护期间也可以防止数据丢失并实现不间断访问。1、单领导者主从复制:涉及一.

软件顾问与软件开发人员:有什么区别?

97 5K
在软件开发领域,软件解决方案的概念和执行很大程度上取决于软件顾问和软件开发人员等两大技术专家的职责。虽然这两个角色对于成功完成软件项目都很重要,但他们的职责和技能有所不同。本文将讨论软件开发人员和软件.

单体应用、微服务和无服务器

89
本文说明在决定单体、微服务和无服务器架构时权衡的简化思维模型。目标是突出每种风格的固有优势和差距,同时为何时选择哪种建筑风格提供指导。单体小型团队或项目的理想入门架构。它启动起来很简单,并且通常可以提.

案例研究:采用巧妙的遗留技术堆栈的人寿保险系统

73
一家保险公司开发了一个庞大而复杂的系统来处理其人寿保险单。由于不同技术和范式的混合,系统变得非常难以维护。6个月的部署周期对于业务需求来说太长了。系统的背景是什么?该系统已投入生产约十年,目前维护团队.

软件架构中10个反模式

196 1 11K
发现常见的架构反模式,学习如何避免它们并克服设计陷阱!获得宝贵的见解、实用的建议和实际示例,以构建更好的软件架构并改进现有架构。反模式1:货物崇拜在不了解流程、技术或方法为何以及如何运作的情况下采用它.

2024年值得关注的8个API设计趋势

75 2K
制定有关 API 如何向客户显示数据和功能的有意决策的过程称为 API 设计。成功的API设计主要以规范格式描述API的端点、资源和方法。什么是API设计?API 设计是指创建应用程序编程接口 (AP.

开源工作流BPM比较

125 7K
本文的分析是在 jBPM 7.7、Camunda 7.17.0、Flowable 6.7.2 和 Activiti 7.3.10上进行的:本文将概述工作流、BPM 以及 BPM 产品支持的一些行业标准.

24年1月大科技公司的工程博文摘要

69 8K
过去两周科技公司的工程博客上最值得关注的文章:用微服务重建Netflix视频处理管道、Cloudflare的DDoS威胁报告、提高Expedia航班搜索速度、衡量预订移动应用性能等等!1. “用微服务.

10个微服务设计模式以实现更好的架构

97 6K
历史上,单体架构被开发人员使用了很长一段时间,并且在很长一段时间内它都有效。不幸的是,这些架构使用的部件较少但较大,因此这意味着如果单个部件发生故障,它们更有可能整体发生故障。通常,这些应用程序作为单.

为何SIEVE缓存没有被早点发现?

65 2K
缓存对于从 CPU 到存储再到整个分布式架构的每一层系统的性能都至关重要。缓存如此重要意味着设计人员需要仔细考虑缓存清空时会发生什么,但他们并不总是做得很好SIEVE 是一种逐出算法,是一种在需要放入.

分布式 PostgreSQL 架构概述

104 8K
许多分布式数据库讨论的重点都是分布式查询规划、事务等方面的算法。这些都是非常有趣的话题,但事实上,作为一名分布式数据库工程师,我只有一小部分时间花在算法上,而过多的时间花在了在各个层面进行非常谨慎的权.

什么时候应该转向微服务?

147 6K
什么时候仍然选择微服务是正确的?微服务架构是一种将软件拆分成小型独立服务组成的架构,它可以提供更好的扩展性和快速开发能力。微服务需要按照业务功能划分,实现自动化部署和独立部署,还需要具备封装、去中心化.

rockscache:保证与DB最终或强一致性的Redis缓存库

255 11K
随着缓存的引入,分布式系统中的一致性问题出现了,因为数据同时存储在两个地方:数据库和Redis。到目前为止,我们看到的所有缓存解决方案,如果没有在应用程序级别引入版本控制,都无法解决数据不一致场景。目.

Jilt :Lombok建造器的终极替代

211
Jilt 是一个Java 注释处理器 ,用于自动生成实现 Builder 设计模式的类。与同一领域的其他工具相比,Jilt 的“杀手级功能”包括: 支持构建器模式的类型安全(有时也称为分阶段、伸缩或步.

SIEVE:比LRU更快更简单的新缓存算法

105 1
新的名为SIEVE的缓存淘汰算法,简单而高效。点击标题SIEVE使用一个队列和一个指针来确定缓存中的哪些数据保留,哪些数据丢弃。它通过访问位来追踪数据的访问状态,并根据访问情况进行淘汰。SIEVE在效.