《ASP.NET Core 微服务实战》译者序

最近,我将《ASP.NET Core 微服务实战》一书由英文翻译为中文。这本书是由清华大学出版社引进的,目前还处于最后的排版校对过程中,现将该书的译者序发表于此。

以下为译者译全文:

“微服务”的概念在 2014 年正式提出之后,越来越多的团队开始用它来设计自己的业务系统,各种微服务框架和开发过程管理方法也同时兴起、不断成熟。微服务设计方法清晰地定义了各个开发团队的业务边界,微服务框架以不同的方式实现了服务之间的协作与集成,根据康威定律我们可以推导这样一种产品开发方法必然会映射到人员协作方式上去。还有同步兴起的 DevOps 运动,它及时恰当地补齐了微服务开发过程中的技术方法,让微服务生态如虎添翼。

经过几年的积累,人们开始意识到,微服务从概念到实现,最后推广到整个组织,这整个过程期间存在大量的挑战:服务之间的依赖管理、大量服务实例的运维、单个服务的独立部署,以及承担不同角色的微服务在同一个生态系统中的身份认证等,都开始成为微服务团队需要直接面对的挑战。与此同时,各类微服务框架也层出不穷,让开始接触微服务的开发人员眼花缭乱,既难以区分它们的优劣、做出合适的选型,又难以找到高效的学习路径。

在 .NET 技术领域,微服务的挑战比起很多其他技术栈有过之而无不及。.NET 技术在企业应用开发领域有着长久的运用,因此有大量的存量应用需要面向服务化改造。而 .NET Core 技术作为新一代 .NET 技术方向,无论是这一技术生态自身的完整性,还是基于它的微服务框架体系,都处于持续的完善之中。最后,在传统的企业应用开发领域,并没有普遍采用持续交付等实践,当时所开发的应用也难以满足云原生应用所要求的诸多特性,因此改造过程难度较大。

所幸 .NET Core 作为全新的 .NET 技术,它不仅完全开源、跨平台,更面向云原生开发进行了大量而细致的优化。它完全模块化,不依赖特定操作系统,同时其文件系统、网络和配置等基础功能模块对跨平台、命令行等现代化轻量级开发所要求的特性提供了优秀的支持。正是由于 .NET Core 作为基础开发平台天然适合云原生开发,因此基于 ASP.NET Core 开发微服务也天然具有这些优势。

本书“麻雀虽小,五脏俱全”,它从 .NET Core 开发环境安装开始,紧接着详细介绍了持续交付、API 优先和测试驱动等重要开发方法和思想。本书探讨了人们对微服务的各种理解,以实际项目从各方面体现出本书作者对微服务的全方面诠释,引导读者在直观的体验中建立自己的理解;同时,本书还主张把微服务和云原生实践结合运用,书中通过解析十二因子应用的各项特性,并分析它们在本书示例项目中的体现,让读者对微服务和云原生的结合更为体系化。在本书的讲解过程中,每当遇到可能存在不同做法的场景,作者总是详细论述各项考量、仔细比较各种可能的做法,引发读者思考;同时,本书还大量探讨了传统应用开发中的典型做法,以及在微服务和云原生开发时应该采纳的新方法,仔细解析其中缘由,为存量应用的改造提供了直接指导。

在本书英文原版写作时,.NET Core 还处于早期的 1.1 版本,而现在中文版翻译期间,.NET Core 的最新版已经是 2.2 版了。为了让读者在基于最新版 .NET Core 练习书中的示例项目时更为顺畅,译者对书中所涉及的示例代码进行了升级。在升级过程中,部分代码需要经过改写才能与新版本的运行时或者依赖模块配合工作。读者在使用书中的代码时,请自行将书中所涉及的 GitHub 仓库地址由 https://github.com/microservices-aspnetcore 替换为 https://github.com/microservices-aspnetcore-zh ,在使用 Docker 镜像的方式运行示例项目时,将书中的 Docker 镜像由 dotnetcoreservices 前缀替换为 dotnetcoreserviceszh。如果使用翻译版的代码遇到问题,请在这些 GitHub 仓库中提交 issue,译者将乐意为读者解答各类常见问题。

限于作者水平等各方面原因,本书在翻译时难免留下一些纰漏与错误,如承蒙读者指正,则译者将倍感荣幸,其他读者也将一起获益。请访问本书中文版代码仓库 https://github.com/microservices-aspnetcore-zh 或者使用电子邮件 jijie.chen@outlook.com 与译者取得联系。

本书中文版的引进必将为 .NET 技术领域的微服务实践和云原生技术的普及做出重要贡献。在此,译者特此感谢清华大学出版社的大力支持,感谢张善友老师为本书译文提出的宝贵建议,感谢曾一起共事的翻译小组 WorkSharp 的同事们、特别是刘夏先生的指导,感谢社区中关注本书的各位热心人士的激励和帮助。最后,最需要致以真诚感谢的,是时常关心我的翻译工作、提醒我及时休息的父母;以及忍受我用几个月的业余时间来翻译、却仍然要在翻译时随时提供参谋的爱人张圣奇:是你们无限的耐心和持续的支持才让本书的翻译工作得以顺利完成。


原文地址:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-translator/


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【杭电多校2020】Distinct Sub-palindromes【结论】【构造】

题意:长度为nnn的 本质不同的回文子串个数最少 的小写字母组成的字符串 的个数。 n≤109n\leq 10^9n≤109 回文子串个数至少为不同字母的数量 显然 最少回文子串个数为min⁡(n,3)\min(n,3)min(n,3) n≤2n\leq2n≤2显然 n≥3n\geq3n≥3时 构造abcabcabc...\textt…

.NET 云原生技术使用调查

.NET Core 3.0 即将发布RC,.NET Core 3.0默认更好的支持Docker资源限制,官方团队也在努力让.NET Core成为真正的容器运行时,使其在低内存环境中具有容器感知功能并高效运行。GC堆限制.NET Core减少了CoreCLR默认使用的内存,如G0代…

【杭电多校2020】Minimum Index【Lyndon Word】

题意:给定字符串,求所有前缀的最小后缀。 n≤2107n\leq 2\times10^7n≤2107 最小后缀就是Lyndon分解的最后一段。而Duval本质上是可以重复修改的增量算法,所以是可以做的。 记ansians_iansi​为前缀iii的最小后缀。设维护未确定的循环节的指…

FZU - 2042 The Mad Mathematician 数位dp + 算贡献

传送门 文章目录题意:思路:题意: 求sumsumsum。 a,b,c,d,e≤1e18a,b,c,d,e\le1e18a,b,c,d,e≤1e18 思路: 这是一篇无从考究的题解,因为fzu现在进不去。 看到这种题直接考虑数位dpdpdp,对于[A,B],[C,D][…

「PowerBI」分析服务多维数据结构重回关系数据库的一大绝招

在过往Excel催化剂定位的轻量级ExcelPowerBIDesktop的解决方案中,已经做过了近乎完美的PowerBIDesktop数据模型数据导出到Excel工作表的应用,这也是个人版数据应用的重要的刚需功能,由Excel催化剂免费奉献给PowerBI社区作完结。此篇再次带领大…

【杭电多校2020】Fibonacci Sum【斐波拉契通项】【推式子】

题意:设FiF_iFi​为斐波拉契数列,求 ∑i0N(FiC)k\sum_{i0}^N(F_{iC})^ki0∑N​(FiC​)k 模109910^991099 N,C≤1018,k≤105N,C\leq10^{18},k\leq10^5N,C≤1018,k≤105 把斐波拉契暴力拆开 FiC15[(152)iC−(1−52)iC]F_{iC}\frac 1 {\sqrt{5}}[(\frac {…

Codeforces Round #257 (Div. 1) D. Jzzhu and Numbers 高维前缀和 + 容斥

传送门 文章目录题意:思路:题意: 思路: 完全想不到容斥啊,看了半天也没看懂渍渍渍。 定义f[i]f[i]f[i]表示iii的超集个数,那么选择的方案就是2f[i]−12^{f[i]}-12f[i]−1了,因为不能一个不选所…

花5分钟时间来了解一下高性能网关Kong会有意外收获

前言前几天开源发布了 Kong.Net 项目,收到了大量园友的反馈,开源当天就突破了 100 个star ,可喜可贺,但是从侧面也说明,我们 .NetCore 阵营真的非常需要拥抱开源,应该敞开心扉,集众家之长&#…

【杭电多校2020】Total Eclipse【贪心】【并查集】

题意:nnn个点mmm条边的无向图,每个点有一个正点权,每次选择一个连通子图,将里面的权值都减111。求所有点权为000的最小步数。 T≤10,n≤105,m≤2105T\leq 10,n\leq 10^5,m\leq2\times10^5T≤10,n≤105,m≤2105 考虑一个贪心&…

Codeforces Round #725 (Div. 3) G. Gift Set 二分

传送门 文章目录题意:思路:题意: 有两种物品分别有x,yx,yx,y个,每次可以从一个拿出aaa个,另一个拿出bbb个分成一组,问最多能分成多少组。 思路: 这个题有一个显然的单调性,所以二…

长沙.NET技术社区·设计到实现

方案最终夭折回到一年前的四月初,也是这样一个气象更新,春意盎然的一年中最好的时光。 在长沙.NET技术圈中,有一个不知名的QQ群,叫做放肆.NET技术交流群(群号:44329330),在这个群里面…

【杭电多校2020】Lead of Wisdom【搜索】【复杂度证明】

题意:nnn件物品,每种物品有一个种类tit_iti​,四个属性ai,bi,ci,dia_i,b_i,c_i,d_iai​,bi​,ci​,di​,每个种类最多选一件物品,求 (100∑ai)(100∑bi)(100∑ci)(100∑di)(100\sum a_i)(100\sum b_i)(100\sum c_i)(10…

Loj #6274. 数字 数位dp + 去重

传送门 文章目录题意:思路:题意: 思路: 考虑数位dpdpdp,设计状态f[pos][flag1][flag2][flag3][flag4]f[pos][flag1][flag2][flag3][flag4]f[pos][flag1][flag2][flag3][flag4],其中flag1:x≥Lxflag2:y≤Rx…

微软发布 VS Code 容器化开发工具,大大简化物联网设备开发

近日(北京时间 2019 年 7 月 9 日),微软宣布了 Azure IoT Tools for VS Code 的全新功能:通过在容器中封装编译器、设备 SDK 以及基本库,大大简化了设备交叉编译的工作量,使得嵌入式 Linux 设备&#xff08…

【杭电多校2020】Go Running【几何】【最小点覆盖】

题意:有一个数轴,若干人在某个时刻开始从某个点朝某个方向按111的速度走若干时间。已知nnn个条件,形如tit_iti​时刻xix_ixi​的位置有人,求最少可能的人数。 ∑n≤5105\sum n\leq 5\times 10^5∑n≤5105 画出 x−tx-tx−t二维平…

Codeforces Round #636 (Div. 3) F. Restore the Permutation by Sorted Segments 思维 + 暴力

传送门 文章目录题意:思路:题意: n≤200n\le200n≤200 思路: 首先关注到rrr从[2,n][2,n][2,n]都出现一次,所以很明显最后一个位置只出现一次,但是这样倒着来不是很好做考虑正着来。 我们可以枚举111位置填…

.NET中生成动态验证码

NET中生成动态验证码验证码是图片上写上几个字,然后对这几个字做特殊处理,如扭曲、旋转、修改文字位置,然后加入一些线条,或加入一些特殊效果,使这些在人类能正常识别的同时,机器却很难识别出来&#xff0c…

【NOI2019】弹跳【二维线段树】【dijkstra】

题意:一个whw\times hwh的二维平面上有nnn个城市,有mmm个弹跳装置,第iii个可以花费tit_iti​的时间从城市pip_ipi​跳到矩形x∈[l,r],y∈[u,d]x\in [l,r],y\in[u,d]x∈[l,r],y∈[u,d]中的任意一个城市。求从111到其他每个城市的最小时间。 w,…

Codeforces Beta Round #51 D. Beautiful numbers 数位dp + 状态优化

传送门 文章目录题意:思路:题意: 思路: 数位dpdpdp挺经典的一个题辣,有一个很明显的状态就是f[pos][num][lcm]f[pos][num][lcm]f[pos][num][lcm]表示到了第pospospos位,数是numnumnum,个位数最…

在C#中使用Irony实现SQL语句的解析

在上一篇博文 LogoSharp:Logo语言的C#实现中,我介绍了LOGO语言的C#实现,在该项目中,我使用了.NET下的语法解析框架:Irony。Irony框架最开始的时候是由Roman Ivantsov发布在codeplex上的一个开源项目,它使用…