![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 95
木小丰~
关注Java研发,不定期分享各种资源,互联网技术分享 博客地址:https://lesofn.com
展开
-
错误码设计思考
在微服务化的今天,服务间的交互越来越复杂,统一异常处理规范作为框架的基础,一旦上线后很难再更改,如果设计不好,会导致后期的维护成本越来越来大。 对于错误码的设计,不同的开发团队有不同的风格习惯。本文分享作者从实践中总结的经验及对应的思考,期望对读者有所启发。本文中涉及的源码:https://github.com/sofn/app-engine/tree/master/common-error什么是错误码引自阿里巴巴《Java 开发手册》- 异常日志-错误码错误码的制定原则:快速溯源、简单易记、沟通原创 2022-03-24 18:03:43 · 1126 阅读 · 0 评论 -
Java线程池进阶
线程池是日常开发中常用的技术,使用也非常简单,不过想使用好线程池也不是件容易的事,开发者需要不断探索底层的实现原理,才能在不同的场景中选择合适的策略,最大程度发挥线程池的作用以及避免踩坑。一、线程池工作流程以下是Java线程池的工作流程,涉及创建线程的参数及拒绝策略,如果读者对这部分内容不太了解,可参考其他的文档,本文不在赘述。二、线程池进阶1、线程池的创建需要手动通过ThreadPoolExecutor创建,使用者要非常明确业务场景并定制线程池,避免误用可能导致的问题。以下是阿里巴巴Java原创 2022-02-28 20:50:21 · 221 阅读 · 0 评论 -
平台化建设思路浅谈
随着业务的不断发展,软件系统不可避免的走向熵增:复杂度越来越高、研发效率越来越差、稳定性逐渐降低等。这时抽象核心能力,走向平台化的道路成为很多系统的首要选择。笔者结合自己的经验,总结了平台化建设的几种思路,希望对大家建设平台化有所帮助。平台化有以下优点复用性强:复用核心逻辑,业务功能只在平台之上的业务层建设,降低建设成本;研发效率高:平台服务作为通用能力基建,业务只需要关注需求,不用关心平台底层复杂能力实现;降低复杂性:平台都有合理的职责边界和模块划分,对外开发的接口也都直观简洁;稳定性:平台服原创 2022-02-15 21:33:53 · 1940 阅读 · 0 评论 -
从MVC到DDD的架构演进
DDD这几年越来越火,资料也很多,大部分的资料都偏向于理论介绍,有给出的代码与传统MVC的三层架构差异较大,再加上大量的新概念很容易让初学者望而却步。本文从MVC架构角度来讲解如何演进到DDD架构。从DDD的角度看MVC架构的问题代码角度:瘦实体模型:只起到数据类的作用,业务逻辑散落到service,可维护性越来越差; 面向数据库表编程,而非模型编程; 实体类之间的关系是复杂的网状结构,成为大泥球,牵一发而动全身,导致不敢轻易改代码; service类承接的所有的业务逻辑,越来越臃肿,很容原创 2022-02-15 21:11:43 · 1884 阅读 · 0 评论 -
构建可回滚的应用及上线checklist实践
一、背景在互联网分布式应用中,如果上线的新版本有bug又不能回滚止损,带来的后果将是灾难性的。因此做到上线可回滚以及上线前的checklist是保证服务稳定性的基本要求。在简单的场景里直接回滚到上一版个版本即可,但是如果涉及多个上下游和组件、考虑多版本兼容,就需要有好好设计下如何构建可回滚的代码,充分验证后还需要仔细检查上线checklist,最大程度保证线上服务的稳定性。二、构建向前兼容的代码回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。在回滚之后,程序依然能够正常处理,称原创 2021-11-22 10:16:42 · 1570 阅读 · 0 评论