错误码设计思考

在微服务化的今天,服务间的交互越来越复杂,统一异常处理规范作为框架的基础,一旦上线后很难再更改,如果设计不好,会导致后期的维护成本越来越来大。 对于错误码的设计,不同的开发团队有不同的风格习惯。本文分享作者从实践中总结的经验及对应的思考,期望对读者有所启发。
Java 架构 软件工程 2022年03月24日 7,944次浏览

构建可回滚的应用及上线checklist实践

在互联网分布式应用中,如果上线的新版本有bug又不能回滚止损,带来的后果将是灾难性的。因此做到上线可回滚以及上线前的checklist是保证服务稳定性的基本要求。 在简单的场景里直接回滚到上一版个版本即可,但是如果涉及多个上下游和组件、考虑多版本兼容,就需要有好好设计下如何构建可回滚的代码,充分验证后还需要仔细检查上线checklist,最大程度保证线上服务的稳定性。
Java 持续集成 软件工程 稳定性 2021年11月20日 1,247次浏览

Maven依赖冲突问题排查经验

在日常的开发中,排查问题是一个合格Java开发者的的基本能力。本文以Maven构建工具为例,从原理、思路、工具、实践几方面分享Java中复杂jar包依赖问题排查经验。
Java 软件工程 Maven 2021年11月13日 5,566次浏览

Gradle最佳实践

本文详细梳理了Gradle使用过程中的问题,以及Maven项目如何迁移到Gradle
Java 持续集成 软件工程 2021年01月13日 2,237次浏览

系统设计之降低复杂性

在软件开发、维护过程中。软件的生命力总是从最初的理想状态,逐步趋向于复杂、混乱和无序状态发展,直到软件不可维护而被迫下线或重构。本文讨论的软件复杂性的来源以及如何避免。
架构 软件工程 2020年12月13日 2,843次浏览