Oopsguy
http://oopsguy.com

随笔分类 -  译文

外文翻译
摘要:我真的很喜欢使用 Vue.js 来做前端,Vue 服务端渲染直到第二个版本才被支持。在本例中,我想展示如何将 Vue.js 2 服务端渲染功能整合到 ASP.NET Core 项目中。我们在服务端使用了 Microsoft.AspNetCore.SpaServices 包,该包提供 ASP.NET Core API... 阅读全文
posted @ 2017-11-15 09:39 oopsguy 阅读(11447) 评论(13) 推荐(8) 编辑
摘要:SignalR 是一个用于实现实时功能的 Microsoft .NET 库。它使用了多种技术来实现服务器与客户端间的双向通信,服务器可以随时将消息推送到连接的客户端。 阅读全文
posted @ 2017-10-30 15:28 oopsguy 阅读(2023) 评论(4) 推荐(7) 编辑
摘要:我之前编写过一个叫 gomodifytags 的工具,使我的开发工作变得很轻松。它会根据字段名称自动填充结构体标签字段。下图是它的功能展示... 阅读全文
posted @ 2017-10-27 10:08 oopsguy 阅读(1277) 评论(3) 推荐(2) 编辑
摘要:在本文中,我将介绍 Caffeine — 一个高性能的 Java 缓存库。缓存和 Map 之间的一个根本区别在于缓存可以回收存储的 item。回收策略为在指定时间删除哪些对象。此策略直接影响缓存的命中率 —— 缓存库的一个重要特性。Caffeine 因使用了 Window TinyLfu 回收策略,提供了一个近乎最佳的命中率... 阅读全文
posted @ 2017-10-25 19:01 oopsguy 阅读(8168) 评论(1) 推荐(3) 编辑
摘要:本文将介绍 ASP.NET Core 框架级依赖注入是如何工作的。其简单但功能强大,足以完成大部分依赖注入工作。框架级依赖注入支持以下... 阅读全文
posted @ 2017-10-23 18:06 oopsguy 阅读(841) 评论(1) 推荐(0) 编辑
摘要:10 个月前,我成为了一名 Gopher,没有后悔。像许多其他 gopher 一样,我很快发现简单的语言特性对于快速构建快速、可扩展的软件非常有用。当我刚开始学习 Go 时,我正在捣鼓不同的路由器,它可以当做 API 服务器使用。如果你跟我一样有 Rails 背景,你也可能会在构建 Web 框架提供的所有功能方面遇到困难。回到路由器话题,我发现了 3 个是非常有用的好东西... 阅读全文
posted @ 2017-10-20 09:27 oopsguy 阅读(1528) 评论(1) 推荐(1) 编辑
摘要:使用 JPA 和 Hibernate 的其一好处是它提供了数据库特定方言和功能抽象。因此,理论上,你可以实现一个应用程序,将其连接到一个受支持的数据库,并且它可以在不用更改任何代码的情况下运行。 阅读全文
posted @ 2017-10-17 09:35 oopsguy 阅读(2358) 评论(1) 推荐(2) 编辑
摘要:几周前,我开始为一个证券投资组合网站工作。虽然我只能使用 React 来完成整个网站,但我决定使用 Go 来创建一个可以处理某些任务(例如发送 email)的 API 服务器,相信这是一个很好的想法。网站有一个 contact 页面,我想使用专门为此 contact 表单申请的 Gmail 帐户发送一封邮件。我以前只用过 Javascript 来发送电子邮件,没有特别选择 Go。但为什么不尝试一下 Go 呢?我觉得 Go 很棒... 阅读全文
posted @ 2017-10-15 10:58 oopsguy 阅读(2908) 评论(1) 推荐(1) 编辑
摘要:依赖管理一直是复杂项目的关键部分。使用手动的方式来实现依赖管理不太现实,你得花更多时间,同时你在项目的其他方面能付出的时间就会变得越少。 阅读全文
posted @ 2017-10-13 09:32 oopsguy 阅读(1162) 评论(1) 推荐(2) 编辑
摘要:在本文中,我们将探讨前端应用与单独部署的 REST API 之间的通信,解决 CORS 和浏览器的同源策略限制,允许 UI 调用 API,即使它们不是同源。基本上,我们将创建两个独立的应用程序 — 一个 UI 应用程序和一个简单的 REST API,我们将使用 UI 应用程序中的 Zuul 代理来代理对 REST API 的调用。 阅读全文
posted @ 2017-10-06 14:52 oopsguy 阅读(1765) 评论(2) 推荐(0) 编辑
摘要:您正工作于大型复杂的单体应用程序上,这是相当不错的机会。您开发和部署应用程序的日常经历是缓慢而痛苦的。微服务似乎是一个遥不可及的天堂。幸运的是,有一些战略可以用来逃离单体地狱。在本文中,我将描述如何将单体应用程序逐渐重构为一组微服务... 阅读全文
posted @ 2017-09-29 09:33 oopsguy 阅读(2151) 评论(2) 推荐(3) 编辑
摘要:部署单体应用程序意味着运行一个或多个相同副本的单个较大的应用程序。您通常会在每个服务器上配置 N 个服务器(物理或虚拟)并运行 M 个应用程序实例。单体应用程序的部署并不总是非常简单,但它比部署微服务应用程序要简单得多。 阅读全文
posted @ 2017-09-20 09:29 oopsguy 阅读(2484) 评论(0) 推荐(3) 编辑
摘要:在本教程中,我们将使用 OAuth 来保护 REST API,并以一个简单的 AngularJS 客户端进行示范。我们要建立的应用程序将包含了四个独立模块:授权服务器、资源服务器、 UI implicit ( 一个使用 Implicit Flow 的前端应用)和 UI password ( 一个使用 Password Flow 的前端应用)。 阅读全文
posted @ 2017-09-19 10:19 oopsguy 阅读(2799) 评论(0) 推荐(2) 编辑
摘要:单体应用程序通常具有一个单一的关系型数据库。使用关系型数据库的一个主要优点是您的应用程序可以使用 ACID 事务。很不幸的是,当我们转向微服务架构时,数据访问将变得非常复杂。这是因为每个微服务所拥有的数据对当前微服务来说是私有的,只能通过其提供的 API 进行访问。封装数据可确保微服务松耦合,独立演进。如果多个服务访问相同的数据,模式更新需要对所有服务进行耗时、协调的更新。 阅读全文
posted @ 2017-09-18 09:50 oopsguy 阅读(1315) 评论(2) 推荐(0) 编辑
摘要:或许您正在使用 REST 端点(endpoint)来摆脱 Web 服务和客户端。如果您是一名 Java 开发人员,您可能已经尝试过 JAX-RS、Spring REST 或者两者。但哪一个好用呢?在这篇文章中,我将介绍两者之间的差异,使用大体相同的代码进行对比。在之后的博文中,我将向您展示如何轻松地使用 Apache Shiro 和 Okta 来保护这些 REST 端点。 阅读全文
posted @ 2017-09-11 10:03 oopsguy 阅读(2457) 评论(2) 推荐(0) 编辑
摘要:为了发送一个请求,您的代码需要知道服务实例的网络位置(IP 地址与端口)。在运行于物理硬件上的传统应用中,服务实例的网络位置是相对静态的。例如,您的代码可以从偶尔更新的配置文件中读取网络位置。服务实例具有动态分配的网络位置。此外,由于自动扩展、故障与升级,整组服务实例会动态变更。因此,您的客户端代码需要使用更精确的服务发现机制。 阅读全文
posted @ 2017-09-08 09:38 oopsguy 阅读(4063) 评论(2) 推荐(9) 编辑
摘要:在之前的博文《为什么是 Spring Boot》中,我们已经介绍了如何创建一个 Spring Boot 应用程序。但是,你可能还不了解它幕后究竟发生了什么,你想了解 SpringBoot AutoConfiguration 背后的原理。但在此之前,你应该先了解 Spring @Conditional 的特性,所有 Spring Boot AutoConfiguration 魔法都是基于它... 阅读全文
posted @ 2017-09-06 13:47 oopsguy 阅读(3411) 评论(2) 推荐(2) 编辑
摘要:在单体应用程序中,组件可通过语言级方法或者函数相互调用。相比之下,基于微服务的应用程序是一个运行在多台机器上的分布式系统。通常,每个服务实例是一个进程。因此,服务必须使用进程间通信(IPC)机制进行交互。稍后我们将了解到多种 IPC 技术,但在此之前,我们先来探讨一下涉及到的各种设计问题。 阅读全文
posted @ 2017-09-04 09:45 oopsguy 阅读(5229) 评论(6) 推荐(6) 编辑
摘要:当您选择将应用程序构建成为一组微服务时,您需要决定应用程序客户端将如何与微服务进行交互。单体应用程序只有一组端点(endpoint),通常使用复制(replicated)结合负载均衡来分配流量。然而,在微服务架构中,每个微服务都暴露一组通常比较细颗粒的端点。在本文中,我们将研究如何改进客户端通信,并提出一个使用 API 网关的方案。 阅读全文
posted @ 2017-08-31 09:29 oopsguy 阅读(7812) 评论(7) 推荐(15) 编辑
摘要:目前微服务受到很多关注:文章、博客、社交媒体上的讨论和会议演讲。他们正在迅速走向加德纳技术成熟度曲线(Gartner Hype cycle)的高峰。与此同时,也有持怀疑态度的软件社区人员认为微服务没什么新鲜可言。反对者声称它的思想只是面向服务架构(SOA)的重塑。然而,无论是炒作还是怀疑,不可否认微服务架构模式具有非常明显的优势——特别是在实施敏捷开发和复杂的企业应用交付方面。 阅读全文
posted @ 2017-08-28 09:19 oopsguy 阅读(31080) 评论(18) 推荐(31) 编辑