高效能团队的Java研发规范(进阶版)

本文在阿里巴巴Java开发规范基础上,补充一些常用的规范,用于提升代码质量及增强代码可读性
Java 规范 稳定性 2022年08月12日 8,209次浏览

错误码设计思考

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

Java线程池进阶

线程池是日常开发中常用的技术,使用也非常简单,不过想使用好线程池也不是件容易的事,开发者需要不断探索底层的实现原理,才能在不同的场景中选择合适的策略,最大程度发挥线程池的作用以及避免踩坑。
Java 2022年02月26日 10,147次浏览

从MVC到DDD的架构演进

DDD这几年越来越火,资料也很多,大部分的资料都偏向于理论介绍,有给出的代码与传统MVC的三层架构差异较大,再加上大量的新概念很容易让初学者望而却步。本文从MVC架构角度来讲解如何演进到DDD架构。
DDD Java 架构 Maven 2022年01月13日 14,347次浏览

平台化建设思路浅谈

随着业务的不断发展,软件系统不可避免的走向熵增:复杂度越来越高、研发效率越来越差、稳定性逐渐降低等。这时抽象核心能力,走向平台化的道路成为很多系统的首要选择。笔者结合自己的经验,总结了平台化建设的几种思路,希望对大家建设平台化有所帮助。
平台化 Java 架构 2022年01月10日 7,300次浏览

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

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

Maven依赖冲突问题排查经验

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

升级Java17问题记录

最新的长期支持版Java17于2021年9月14日如期发布,按照发布规划,JDK/Java 17 属于长期支持版本 (LTS),将会获得 8 年的技术支持,直至 2029 年 9 月。值得一提的是,根据 Oracle 最新推出的**[「Free Java License」](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fblogs.oracle.com%2Fjava%2Fpost%2Ffree-java-license)**,Oracle JDK 可免费用于生产环境。
Java 问题记录 2021年09月18日 5,664次浏览

使用Groovy构建DSL

DSL(Domain Specific Language)官方定义为:针对某一**领域**,具有**受限表达性**的一种计算机程序设计**语言**。 常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单。由于其使用简单的特性,DSL 通常不会像 Java,C++等语言将其应用于一般性的编程任务。
Java 架构 Groovy 2021年03月03日 5,015次浏览

使用Reactor完成类似Flink的操作

响应式编程框架也早已有了背压以及丰富的操作符支持,能不能用响应式编程框架处理类似Flink的操作呢,答案是肯定的。
Java 2021年02月26日 4,235次浏览

Gradle最佳实践

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

Git Commit Log规范推荐

Git每次提交代码都需要写commit message,一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作等。但是在日常开发中,开发者提交的的commit message千奇百怪,中英文混合使用,这就导致后续代码维护成本特别大,有时自己都不知道自己的fix bug修改的是什么问题。
Java 持续集成 2020年12月13日 9,284次浏览

系统设计之降低复杂性

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

漫谈分层架构

为什么要分层,然后汇总了传统MVC架构、后端三层架构、阿里分层架构、DDD架构以及基于DDD架构的整洁架构和六边形架构。
架构 分层 2020年12月12日 5,007次浏览

JDK8升级JDK11过程记录

JDK8升级JDK11过程记录
Java 2020年11月14日 7,249次浏览

React + TypeScript + Router + Mobx + Antd + 多页面开发模板(免eject)

1、基础模板:create-react-app2、开发者模式src/setupProxy.js配置代理执行npm run start 或 yarn run start打开:http://localhost:3000/ 默认index页面 打开:http://localhost:3000/admin.
前端 2021年03月01日 2,409次浏览

Java后端模板引擎对比

一、什么是模板引擎模板引擎是为了解决用户界面(显示)与业务数据(内容)分离而产生的。他可以生成特定格式的文档,常用的如格式如HTML、xml以及其他格式的文本格式。其工作模式如下:二、java常用的模板引擎有哪些jsp:是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。Thy
Java 2020年12月14日 4,238次浏览

Java不同版本编译器踩坑

Java不同版本编译器踩坑
Java 2020年12月01日 2,090次浏览