微服务API设计的实践与思考总结 (mp.weixin.qq.com)

【简介】

随着微服务的越来越流行,越来的越多的公司开始实行微服务架构,相对于单一应用架构,微服务将复杂性拆分并且打散到一个个粒度更加细分的应用中,极大了减少了开发中单个服务的复杂性,开发人员只需要面向专注单一业务场景编程,从技术开发角度,单一服务代码量上减少很多,从业务角度上,业务复杂性的降低降低了需求的沟通成本,然而,整体业务复杂性依然存在,当我们需要接入或者依赖其他服务时,通常作为接入方来说,我们不需要深入了解服务提供方的业务,此时API成为了开发人员间的沟通语言。良好的API设计,能极大的减少沟通成本,甚至有时候可以代替文档,尤其是对于基础性服务来说,服务的可扩展性有时候体现在API的可扩展性,我曾经参与过一个基础业务微服务的业务升级,由于旧版本的API划分不够清晰,部分API存在重复性,后面不得不对大部分API进行重构(替换为新版本的API),仅仅在服务消费方升级这个阶段就持续1-2个月之久,在这个过程中也不断对API设计中存在的一些问题以及应该遵循哪些原则进行了一些思考。

点击查看全文 >>

@code小生 2022-07-24 11:00分享 / 0个评论
赞过的人: IT技术博客大学习 code小生
要不要再学学下面的文章?
Vue项目打包部署总结 (mp.weixin.qq.com)
使用Vue做前后端分离项目时,通常前端是单独部署,用户访问的也是前端项目地址,因此前端开发人员很有必要熟悉一下项目部署的流程与各类问题的解决办法了。
by @code小生 2022-08-07 09:40 分享 查看详情
完成原型设计的五个步骤 (insights.thoughtworks.cn)
很多新手在刚入门原型设计时,总会花费很多精力在工具的选择和打磨上,却忽略了原型设计的核心。等真正上起手来,只能照猫画虎,没有一个完整且系统的思路。因此我想聊一聊我在设计产品原型时的思考过程,希望对新上路的小伙伴们有所帮助。
by @Thoughtworks 2022-08-04 15:36 分享 查看详情
像一名教育者一样思考代码质量 (mp.weixin.qq.com)
一句广为流传的话:代码是写给人看的,而不是为了给机器执行。然而,编写人类易于阅读的代码,这说起来容易做起来难。这件事需要花费几年时间去学习,花费几十年才能掌握。我也许可以提供一个捷径:像一名教育者一样思考代码质量。“捷径”这个词表达的能力很强大。这并不是一个捷径。但我认为,这种观点很重要。Alan Kay 说过,观点抵得上 80 点智商。
by @code小生 2022-08-01 10:07 分享 查看详情
Google Cloud Spanner的实践经验 (insights.thoughtworks.cn)
基于Cloud Spanner独特的结构,它能确保客户在以较小的用户群和业务量为起点时,不必过多担心在未来数据量和业务量增长后需要对数据库进行迁移或重新编写的问题。
by @Thoughtworks 2022-07-28 17:40 分享 查看详情
Android对so体积优化的探索与实践 (tech.meituan.com)
减小应用安装包的体积,对提升用户体验和下载转化率都大有益处。本文将结合美团平台的实践经验,分享 so 体积优化的思路、收益,以及工程实践中的注意事项。本文将先从 so 文件格式讲起,结合文件格式分析哪些内容可以优化,然后再具体讲解每项优化手段以及注意事项,最后介绍相关的工程实践经验。希望能对从事包体积优化的同学有所帮助或启发。
by @技术头条 2022-07-24 21:09 分享 查看详情
CompletableFuture原理与实践-外卖商家端API的异步化 (tech.meituan.com)
CompletableFuture由Java 8提供,是实现异步化的工具类,上手难度较低,且功能强大,支持通过函数式编程的方式对各类操作进行组合编排。相比于ListenableFuture,CompletableFuture有效提升了代码的可读性,解决了“回调地狱”的问题。本文主要讲述CompletableFuture的原理与实践,同时结合了美团外卖商家端API的异步化实战,希望能对从事相关开发的同学有所帮助或启发。
by @技术头条 2022-07-24 20:45 分享 查看详情
图神经网络训练框架的实践和探索 (tech.meituan.com)
美团搜索与NLP团队在图神经网络的长期落地实践中,基于业务实际场景,自主设计研发了图神经网络框架Tulong,以及配套的图学习平台,提升了模型的规模和迭代效率。本文介绍了模型归纳抽象、基本框架、性能优化,以及上层工具等方面的思考和关键设计,希望为从事相关工作的同学带来启发或者帮助。
by @技术头条 2022-07-24 20:45 分享 查看详情
使用Flex实现常见布局的思路总结 (mp.weixin.qq.com)
flex全称Flexible Box模型,顾名思义就是灵活的盒子,不过一般都叫弹性盒子,所有PC端及手机端现代浏览器都支持,所以不用担心它的兼容性,有了这玩意,妈妈再也不用担心我们的布局。
by @code小生 2022-07-24 10:59 分享 查看详情
如何设计数据可视化平台 (insights.thoughtworks.cn)
当数据平台逐渐变成每个企业发展所依赖的重要因素,设计出好用的数据可视化平台便是体验设计师的职责,文章会从设计的角度回答三个问题:什么是数据可视化?为什么需要可视化设计?以及该从何处着手设计一个数据可视化平台?
by @Thoughtworks 2022-06-28 10:01 分享 查看详情
处理Exception的几种实践,被很多团队采纳! (mp.weixin.qq.com)
在 Java 中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。

这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。

本文给出几个被很多团队使用的异常处理最佳实践。
by @code小生 2022-06-26 11:31 分享 查看详情