• 分而治之(Divide and Conquer)是一个强大的算法范例(banq注:其实是一种哲学方法,严格不属于算法):通过将复杂问题分解为更小,更易于管理的子问题来解决复杂问题。 分(Divide )
  • 在这里介绍了一些API设计模式,这些模式足够通用,对 API 设计过程中的几乎任何人都有用。 语言给事物命名是很困难的。计算机科学中的大多数事情都是如此,API 设计也不例外。这里的问题是,与变量和函数名称
  • 微前端应作为彻底解耦代码和依赖关系后的最后手段。 分布式单体很难管理,并有可能在多个代码库中重新引入相同的问题。 在拆分之前,需要进行彻底的重构,以尽量减少孤立部分之间的 icon
  • 如果你知道以下概念的含义,你就是一个伟大的工程师,:  #幂等 #幺半群 #解耦  #依赖注入  - 单元  #函数式编程  #异步编程 #并行编程  #线程 #同步锁 #最终一致性  #精确一致性 exactl icon
  • 功能需求定义了系统应该做什么。就汽车而言,这意味着将一个人从 A 地带到 B 地;而非功能性需求规定了系统应该是什么样子。 1. 可伸缩性可扩展性是指系统随着用户或请求数量的增加而执行和操作的能力。这可以通 icon
  • 来自a16z的大语言模型分析文章,以第三方观点概述了当前LLM大语言模型应用的特点: 大型语言模型是构建软件的强大新工具。但由于它们是如此之新,而且行为方式与普通计算资源如此不同,因此如何使用它们并不总是显而易见的。 icon
  • 微服务的好处之一就是定义边界。俗话说,好篱笆造就好邻居(中国谚语:亲兄弟明算账)。 定义边界是一件好事,但我们到底如何定义它们呢?微服务,由 Adrian Cockcroft 定义:具有有边界的上下文的松散耦合的面向服务的架构 icon
  • 是否有人有在其组织中使用 EA 工具的经验?以及在内部构建 EA 工具业务案例所使用的策略?最重要的是:工具是否可以帮助您沟通和社交化 EA 团队所做的工作,以获得更广泛的组织的支持? 以目前的成熟度来看EA工具并不可用,可将EA工 icon
  • 复杂系统本质上是多方面的、错综复杂的。它们往往不是有意设计成让人一眼就能理解的。无论是生态系统等自然形成的系统,还是先进软件或机械等人类设计的系统,都是如此。这些系统由多个部分组成,每个部分都有其独特的属性和作用。要了解整个系统,就必须了解每个组成部分及其相互之间的相互作用。这个过程需要时间 icon
  • 近年来,人们对领域驱动设计 (DDD) 的兴趣激增,正如DDD Europe等热门活动和Learning Domain-Driven Design等书籍所表明的那样。虽然对复杂业务领域进行建模对于成功的系统始终发挥着重要作用,但需要明确领域边界的模块化运行时架构(例如微服务应用程序)为 DD icon
  • 今年早些时候,我和 DrDoctor 的几位同事参加了 C4 架构建模1 的培训。培训师讲得非常好,经过几节课的学习,我们掌握了这种方法。我们继续运用所学知识,在 3 个月的时间里,每周四与所有人员会面。我们主要侧重于将现有架构建模为 1 级(上下文)和 2 级(容器)图。这个过程很有启发性 icon
  • 无论是作为工程师还是经理,职位越高,你就越需要软技能。 软技能指的是: 直接的社交技能--能够与他人建立联系、成功合作,甚至只是与你周围的人(尤其是领导)进行人际交往。 沟通--能够清楚、简洁地解释技术概念和实施方法,以便他 icon
  • 抽象是避免分心的有力工具。抽象一词的词源来自拉丁语,意思是“剪切”和“绘制”。通过抽象,您可以从复杂的系统中分离出协议,省略不必要的细节,并将复杂的系统简化为有用的模型。 例如,如果您对分布式系统的一致性模型感兴趣,则可以抽象出系统中的通信机制,因 icon
  • Leslie Lamport认为:如果你从一开始就没有正确设计,那么你编写的每一段代码都是一个补丁。 Leslie Lamport 是一位计算机科学家和数学家,因其对分布式并发系统的理论和实践的基本贡献而于 2013 年获得 ACM 图灵奖。他还创 icon
  • 随着 DoorDash 的微服务架构不断发展,服务间流量也在不断增长。每个团队管理自己的数据并通过 gRPC 服务公开访问权限,gRPC 服务是一个用于构建可扩展 API 的开源远程过程调用框架。 由于对下游服务的调用,大多数业务逻辑都是 I/O icon
  • 在 ThoughtWorks 上周发布的最新技术雷达中,我们看到了不同的主题: 1、AI辅助软件开发:与人工智能相关的话题在对话中占据主导地位。人们对使用人工智能辅助软件开发非常感兴趣。与会者讨论了 GitHub Copilot、Tabnine 和 Cod icon
  • 贝尔实验室可能是美国有史以来最具创造力和创新力的组织。 贝尔实验室有多大的创造性和创新性? 从 1937 年到 2018 年,它九次获得诺贝尔奖,四次获得图灵奖(被广泛称为 "计算机界的#诺贝尔奖")。 没有贝尔实验室,就没有手机。 icon
  • 在软件行业,似乎普遍认为软件架构和软件工程是截然不同的。在很大程度上,软件架构关注的是设计,而软件工程关注的是实现(即编写代码),两者在某种程度上是相互独立的。从根本上说,两者之间的联系大致类似于建筑行业中建筑师和土木建造师之间的关系。 但是,这并不代表软 icon