翻译文章
文章平均质量分 92
寒水馨
让天下没有难敲的代码
展开
-
深入探讨分布式追踪
深入探讨分布式追踪;尽管有这些好处,但与日志记录和指标相比,分布式跟踪的采用数量相形见绌,因为分布式跟踪带来了相当多的挑战。此外,根据应用程序的不同,跟踪可以生成大量数据。随着服务数量的增加以及随之而来的复杂性,对于任何希望升级其可观测性平台的组织来说,一个好的分布式跟踪系统将成为必需品。在本文中,我们将深入探讨分布式跟踪的组件、使用分布式跟踪的原因、实现分布式跟踪的注意事项,以及当今市场上流行工具的概述。虽然实施跟踪需要一些规划,但随着越来越多的强大的开源和商业工具可用,翻译 2023-02-08 22:03:12 · 176 阅读 · 0 评论 -
什么是 CDN?CDN 如何工作?
什么是 CDN?CDN 如何工作?几年前,我在浏览互联网时偶然发现了一个新的电子商务网站。我注意到网站上的图片加载速度不快。我刷新了页面并重试了几次。终于,十秒钟后,我能够看到带有图像的渲染网页。最初,我以为我的互联网连接很差,但互联网下载速度足够好。我也可以观看高清的 Youtube 视频。这激发了我的好奇心,想知道为什么电子商务网站无法快速加载图片。我内心好奇的工程师决定研究网站性能缓慢的原因。翻译 2023-02-08 21:39:58 · 349 阅读 · 0 评论 -
7 个很棒的 Java 单元和集成测试库
7 个很棒的 Java 单元和集成测试库;AssertJ、Awaitility、Mockito、Wiser、Memoryfilesystem、WireMock、Testcontainers;翻译 2023-02-07 19:47:02 · 347 阅读 · 0 评论 -
GitHub 新代码搜索背后的技术
GitHub 新代码搜索背后的技术;了解如何构建世界上最大的公共代码搜索索引。从一年前推出我们对新的和改进的代码搜索体验的,围绕我们如何,对一些核心 GitHub 产品体验进行了一系列创新和显着变化,作为开发人员,查找、阅读和导航代码。我们听到的关于新代码搜索体验的一个问题是,“它是如何工作的?” 为了补充,这篇博文给出了该问题的高级答案,并提供了一个了解系统架构和产品技术基础的小窗口。那么,它是如何工作的呢?简短的回答是,我们在 Rust 中从头开始构建了自己的搜索引擎,专门用于代码搜索领域。翻译 2023-02-07 18:34:33 · 485 阅读 · 0 评论 -
事件驱动 2.0
在消息驱动的架构中,如果需要将类似的消息发送给多个接收者,则发送者必须将其分别发送给每个接收者。相反,在事件驱动架构中,生产者生成一次事件并将其发送到处理系统/之后,该事件可以被连接到该系统的任意数量的订阅者使用。因此,需要开发这样的软件架构来满足现代业务需求,并且能够将数据作为事件流进行处理,而不仅仅是处于静止状态的数据。但是重构业务对象的状态,需要发送标准的请求,难度大,效率低。通常,在设计程序时,会同时使用多种方法。在本节中,我们将讨论允许您实现事件驱动架构的最流行的模式、它们的优势和应用领域。翻译 2023-02-06 23:13:52 · 215 阅读 · 0 评论 -
前 5 个 Node.js REST API 框架
前 5 个 Node.js REST API 框架;Express、FeatherJS、LoopBack、Nest.Js、Moleculer。翻译 2023-02-06 23:02:31 · 1358 阅读 · 0 评论 -
好的机器人设计意味着永远不必说:“对不起,我没听懂”
好的机器人设计意味着永远不必说:“对不起,我没听懂”;理解遗憾的悬崖是设计对话体验的关键,对话体验不仅可以提供快乐的路径,还可以提供优雅的错误处理。“对不起”,就像机器人对话中的任何其他元素一样,必须经过有意义的设计,而不是对所有错误的后备响应。在您的对话设计过程中,花一些时间思考您的用户可能如何与您的机器人交互。即使对话是与机器人进行的,当清晰明确的输入无法引起有用的响应时,我们也会感到特别受挫。有关,哲学家兼语言学家保罗格赖斯说:“在对话发生的阶段,按照对话交流的公认目的或方向翻译 2023-02-05 23:07:44 · 329 阅读 · 0 评论 -
编写 SQL 代码时要避免的常见错误
编写 SQL 代码时要避免的常见错误。这包括了解您的数据库系统的隔离级别并根据您的需要使用正确的级别。为避免此错误,请务必仔细考虑列的数据类型,并根据要存储的数据的类型和大小选择正确的数据类型。但是,重要的是使用正确的分组和聚合技术以确保您获得预期的结果。每种类型的索引都有其自身的优点和缺点,根据您的需要选择正确的索引很重要。例如,如果您有一个包含大量列的表,并且许多列是可选的或仅包含几个不同的值,则将表分解为较小的列并使用外键在它们之间创建关系可能会有所帮助。翻译 2023-02-05 22:52:24 · 119 阅读 · 0 评论 -
重写、重构还是重新发明?——6 个软件重写故事的经验教训
重写、重构还是重新发明?——6 个软件重写故事的经验教训翻译 2023-02-05 00:00:00 · 485 阅读 · 1 评论 -
ARPANET协议是如何工作的
ARPANET协议是如何工作的;ARPANET 证明可以使用标准化协议连接制造商截然不同的计算机,从而永远改变了计算。在我,我提到了其中的一些协议,但没有详细描述它们。所以我想仔细看看他们。我还想看看这些早期协议的设计有多少在我们今天使用的协议中得以保留。ARPANET 协议,就像我们的现代互联网协议一样,被组织成层。较高层的协议运行在较低层的协议之上。今天的 TCP/IP 套件有五层(物理层、链路层、网络层、传输层和应用层)翻译 2023-02-04 23:55:34 · 598 阅读 · 0 评论 -
开源项目中的 Java 异常处理示例
开源项目中的 Java 异常处理示例;Exception;仅在异常情况下使用异常、对可恢复条件使用检查异常,对编程错误使用运行时异常、避免不必要地使用检查异常、支持使用标准异常、抛出适合抽象的异常、记录每个方法抛出的所有异常、在详细消息中包含故障捕获信息、争取失败的原子性、不要忽视异常翻译 2023-02-03 20:17:46 · 149 阅读 · 0 评论 -
使用 Infracost 控制云成本
使用 Infracost 控制云成本。立即启动资源的能力是一把双刃刀:Terraform 文件中的拼写错误可能是一个代价高昂的错误。因此,通过在 CI 中运行 Infracost,我们可以让团队中的每个人都可以获得相关的成本信息。和管理服务的自动化部署,那么您不妨将 Infracost 添加到组合中,以做出更明智的决策并施加支出限制。等 IaC 工具相结合时,我们获得了按需创建资源的近乎神奇的能力。这不可能是正确的,除非没有人使用我们的 Lambda 函数,这正是该工具默认假定的。翻译 2023-02-03 19:26:07 · 112 阅读 · 0 评论 -
2023 年 Java 发展趋势
2023 年 Java 发展趋势;GitHub 语言统计表明,Java在其他编程代码中排名第二,而在 2022 年TIOBE 指数中,Java 移至第四位。区别在于方法论方法。抛开排名不谈,Java 是自诞生以来企业使用率最高的编码语言,至今仍保持着同样的地位。作为一种编程语言,它优于许多竞争对手,并继续成为大多数公司/组织的软件应用程序选择。但是,Java 并没有保持不变。它经历了变化和现代化。本文基于 2022 年最重要的事件和成就,概述了 Java 的七种预期趋势。翻译 2023-01-31 17:58:58 · 645 阅读 · 0 评论 -
图数据库的 PageRank 算法
图数据库的 PageRank 算法。PageRank 最有趣和最著名的应用程序肯定是真正激发其创建的应用程序。谷歌创始人拉里佩奇和谢尔盖布林需要并为用户提供最佳搜索结果。使用 PageRank 算法,每个页面都会根据链接到它的其他页面的数量和重要性获得排名。页面排名较高的页面比排名较低的页面增加了它们链接到的页面的排名。在图数据库术语中,PageRank 算法用于根据传入关系的数量和相关源节点的排名来衡量每个节点的重要性。翻译 2023-01-31 17:32:40 · 568 阅读 · 0 评论 -
分布式 SQL:数据库分片的替代方案——MariaDB Xpand
分布式 SQL:数据库分片的替代方案——MariaDB Xpand。分布式 SQL是指新一代的关系数据库。简单来说,分布式 SQL 数据库是一种具有透明分片的关系数据库,在应用程序看来就像一个单一的逻辑数据库。分布式 SQL 数据库实现为无共享架构和存储引擎,可扩展读写,同时保持真正的ACID合规性和高可用性。分布式 SQL 数据库具有NoSQL 数据库的可扩展性特性——NoSQL 数据库在 2000 年代流行起来——但不会牺牲一致性。它们保留了关系数据库的优势,并增加了具有多区域弹性的云兼容性。翻译 2023-01-27 14:25:30 · 525 阅读 · 0 评论 -
Java Set 对比:HashSet vs. TreeSet vs. LinkedHashSet
Java Set 对比:HashSet vs. TreeSet vs. LinkedHashSet;Set 不包含重复元素。这是使用集合的主要原因之一。Set 的常用实现有 3 种:HashSet、TreeSet 和 LinkedHashSet。何时使用以及使用哪个是一个重要的问题。简而言之,如果你需要一个快速的集合,你应该使用 HashSet;如果你需要一个排序集,那么应该使用 TreeSet;如果您需要一个可以存储插入顺序的集合,则应使用 LinkedHashSet。翻译 2023-01-27 13:29:30 · 264 阅读 · 0 评论 -
Java List 对比:ArrayList vs. LinkedList vs. Vector
Java List 对比:ArrayList vs. LinkedList vs. Vector;如果您的程序是线程安全的,ArrayList 是更好的选择。Vector 和 ArrayList 几乎是一样的,不同的是 Vector 是同步的。List,顾名思义,是元素的有序序列。LinkedList 对于添加/删除的任意索引具有 O(n) 时间复杂度,但对于列表末尾/开头的操作具有 O(1) 时间复杂度。ArrayList 对于任意索引的添加/删除具有 O(n) 时间复杂度,翻译 2023-01-26 22:38:15 · 157 阅读 · 0 评论 -
Java Map 对比:HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap
Java Map 对比:HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap。Map是Java中最重要的数据结构之一。在这篇文章中,我将说明如何使用不同类型的映射,例如 HashMap、TreeMap、HashTable 和 LinkedHashMap。翻译 2023-01-25 21:33:17 · 191 阅读 · 0 评论 -
静态(static)存储 vs 堆(heap) vs 栈(stack)
静态(static)存储 vs 堆(heap) vs 栈(stack)翻译 2023-01-25 21:07:10 · 534 阅读 · 0 评论 -
Java 最常用的 16 个工具类(含中文文档)
org.apache.commons.io.IOUtils,org.apache.commons.io.FileUtils,org.apache.commons.lang.StringUtils,org.apache.http.util.EntityUtils,org.apache.commons.lang3.StringUtils,org.apache.commons.io.FilenameUtils,org.springframework.util.StringUtils,翻译 2023-01-24 23:57:06 · 948 阅读 · 0 评论 -
关于 Java 异常(Exception)的十大问题
关于 Java 异常(Exception)的十大问题;捕获与未捕获、异常的最佳处理方式、为什么在try中定义的变量不能在catch或finally中使用?、为什么 Double.parseDouble(null) 和 Integer.parseInt(null) 会抛出不同的异常?、Java中常用的运行时异常、我们可以在同一个 catch 子句中捕获多个异常吗?、java中构造函数可以抛出异常吗?、在最后的子句中抛出异常、return可以用在finally块中、为什么开发者总是忽略异常?翻译 2023-01-24 23:26:38 · 186 阅读 · 0 评论 -
Java 开发人员常犯的 10 大错误
Java 开发人员常犯的 10 大错误;将数组转换为 ArrayList;检查数组是否包含值;从循环内的列表中删除元素;哈希表与哈希图;使用原始类型的集合;访问权限;ArrayList 与 LinkedList;可变与不可变;Super 和 Sub 的构造函数;“”还是构造函数?;翻译 2023-01-23 20:42:18 · 194 阅读 · 0 评论 -
掌握 JavaScript 闭包:理解和使用这个强大的特性
掌握 JavaScript 闭包:理解和使用这个强大的特性。一个 JavaScript 闭包函数,可以访问其父作用域中的变量,即使在父函数返回后也是如此。当嵌套函数引用其包含(外部)函数中的变量时,将创建闭包。JavaScript 闭包可用于创建私有变量和方法、跨多个函数调用维护对象状态以及公开公共 API 同时保持实现细节的私密性。翻译 2023-01-23 17:42:07 · 266 阅读 · 0 评论 -
“this”绑定如何在 JavaScript 中工作
“this”绑定如何在 JavaScript 中工作。当前 this 指向的是什么?this is undefined?一文搞明白 this。This 是 JavaScript 中最重要和最常见的问题之一。很多时候,由于对概念的理解不足,我们往往会编写并在我们的软件中遇到错误。在本文中,我们将尝试揭开“this”话题的神秘面纱。要确定“this”的绑定,首先要了解几个规则。翻译 2023-01-22 21:31:51 · 125 阅读 · 0 评论 -
关于 Promises、Thenables 和惰性求值你需要知道的一切
关于 Promises、Thenables 和惰性求值你需要知道的一切;js Promises sleep 失效、未按照预期时间执行,解决方法及原因。在这里,我有一个名为 sleep 的函数,它需要以毫秒为单位的时间和一个值。通过惰性求值,我们可以编写这样更容易理解的代码,改善开发人员体验,并且只在需要时执行一次查询。当然,这是一个您可能不会在生产代码中找到的微不足道的示例,但是有许多项目使用类似惰性求值。它的行为可能与您预期的一样,但是如果我们将它存储为变量以供。翻译 2023-01-22 20:50:29 · 163 阅读 · 0 评论 -
Java内存泄漏的介绍
Java内存泄漏的介绍。在下面的示例中,对象 A 引用对象 B。当应用程序中不再使用 B 时,A 仍然保留对它的引用。这可能会导致内存不足问题,因为如果 A 对更多对象执行相同的操作,则会有很多未收集的对象并占用内存空间。未引用的对象将被垃圾回收,而引用的对象不会被垃圾回收。未引用的对象肯定未使用,因为没有其他对象引用它。但是,未使用的对象并非全部未引用。所有这些未使用的对象都将占用宝贵的内存空间。要理解这个定义,我们需要了解内存中的对象状态。翻译 2023-01-21 22:06:30 · 259 阅读 · 0 评论 -
什么是松耦合架构?
什么是松耦合架构?松散耦合架构是一种软件应用程序开发模型,其中。这些组件共同创建了一个通用网络或系统,尽管每个服务都是为执行单个任务而创建的独立实体。松散耦合体系结构的主要目的是。面向服务的体系结构 (SOA) 通常由松散耦合的体系结构组成。翻译 2023-01-21 21:25:29 · 2633 阅读 · 0 评论 -
API 在微服务架构中的作用
API 在微服务架构中的作用;这里要记住的一个关键因素是,组织采用微服务的主要原因是它们在开发、测试、部署和扩展应用程序方面提供的敏捷性。这种情况不是将所有 API 的运行时托管在单个整体网关上,而是要求能够在单个微网关上部署每个单独的 API 或较小的 API 子集。例如,对产品目录执行读取的操作和执行更新的操作可以开发为单独的微服务,以满足不同的可伸缩性需求。轻松扩展以满足不断增长的需求的能力是微网关的一个至关重要的因素。翻译 2023-01-19 23:59:14 · 602 阅读 · 0 评论 -
HC-tree 是 SQLite 的实验性高并发数据库后端
HC-tree 是 SQLite 的实验性高并发数据库后端翻译 2023-01-19 23:50:25 · 442 阅读 · 0 评论 -
Spring Modulith:我们是否达到了模块化的成熟度?
Spring Modulith:我们是否达到了模块化的成熟度?微服务强制实施强大的模块边界,但微服务的缺点很大。在这篇文章中,学习实现相同结果的可管理方法。翻译 2023-01-18 17:13:34 · 525 阅读 · 0 评论 -
微服务架构的流行设计模式
微服务架构的流行设计模式。微服务架构为我们提供了更快的开发速度、可扩展性、可靠性、使用适合的最佳技术堆栈开发每个组件的灵活性等等。在此模式中,整体式应用程序的一小部分将转换为微服务,对于客户而言,由于外部 API 保持不变,因此没有任何变化。在典型的微服务架构中,有八种以上的必备设计模式可用于顺利开发。微服务架构为开发人员提供了很大的灵活性,但随着要管理的组件数量的增加,也带来了许多挑战。在本文中,我们讨论了构建和开发微服务应用程序所必需的最重要的设计模式。翻译 2023-01-18 16:46:39 · 206 阅读 · 0 评论 -
Blaze:高性能C++数学库
Blaze:高性能C++数学库;是一个用于密集和稀疏算法的开源、高性能 C++ 数学库。凭借其最先进的智能表达式模板实施,将特定领域语言的优雅和易用性与 HPC 级性能相结合,使其成为可用的最直观和最快的 C++ 数学库之一。库提供…在清晰而强大的语法,并在部分了解令人印象深刻的性能。翻译 2023-01-17 16:53:50 · 1367 阅读 · 1 评论 -
关于应用协议的设计
关于应用协议的设计;本文以 ESMTP、FTP、HTTP1.1 协议为例,从 框架、编码、报告、异步、身份验证、隐私 这6个视角描述应用协议的机制,从 可扩展性、效率、简单性、可扩展性、健壮性 这5个视角描述了协议的属性,最后引出设计协议 BXXP(BEEP) 的案例 demo。翻译 2023-01-17 00:55:19 · 505 阅读 · 0 评论 -
操作系统:时间轴和家族树
操作系统:时间轴和家族树;各操作系统出现的时间轴,各操作系统之间的关系、操作系统家族关系,如常见的:Unix、FreeBSD、iOS、Mac OS、OpenBSD、类 Unix、Linux、Android、CentOS、Debian、Fedora、Oracle、Red Hat、SuSE、Ubuntu、CP/M、DOS、VMS、Windows、AmigaOS、RISC、IBM大型机、L4、OSEK等。翻译 2023-01-15 20:01:44 · 1618 阅读 · 0 评论 -
网页浏览器比较
网页浏览器比较翻译 2023-01-15 17:18:17 · 832 阅读 · 0 评论 -
从1990年至今的Web浏览器引擎的历史
从1990年至今的Web浏览器引擎的历史;1. 活跃的引擎,包括实验引擎、Gecko (Firefox)(火狐)、Goanna (Pale Moon)、WebKit(Safari)、Blink、当今的主要引擎、Chromium、Chrome,Edge,Opera,Brave,Vivaldi,Samsung Internet、Hubbub、iBrowse、Servo、[Flow](https://www.ekioh.com/blog)、LibWeb、2. 僵尸引擎、Trident(Internet Explo翻译 2023-01-14 18:41:14 · 597 阅读 · 1 评论 -
Docker 2.0 如何在 2 年内从 1100 万美元增长到 13500 万美元
Docker 2.0 如何在 2 年内从 1100 万美元增长到 13500 万美元;docker;kubernetes;容器;云原生;翻译 2023-01-14 17:38:47 · 146 阅读 · 1 评论 -
Linux下cat命令如何工作
Linux下cat命令如何工作;linux,MacOS,cat,shell,bash,命令翻译 2023-01-13 22:47:46 · 169 阅读 · 0 评论 -
YouPlot:在终端上绘制图形的命令行工具
YouPlot:在终端上绘制图形的命令行工具;命令行数据可视化;bash;shell;Linux;画图。翻译 2023-01-13 21:39:49 · 953 阅读 · 0 评论 -
如何实现遗留系统现代化
如何实现遗留系统现代化;深入了解遗留系统现代化方法。评估旧系统,选择应用现代化方法,保留/封装等。翻译 2023-01-12 22:04:25 · 226 阅读 · 0 评论