前言 日常编码中,代码的命名是个大的学问。能快速的看懂开源软件的代码结构和意图,也是一项必备的能力。那它们有什么规律呢? Java项目的代码结构,能够体现它的设计理念。Java采用长命名的方式来规范类的命名,能够自己表达它的主要意图。配合高级的IDE,可以减少编码人员的记忆负担,靠模糊的匹配就能找到自己所需要的资源。 为了让大家更好的理解命名的套路,我借鉴了最流行的Java […]
前言 日常编码中,代码的命名是个大的学问。能快速的看懂开源软件的代码结构和意图,也是一项必备的能力。那它们有什么规律呢? Java项目的代码结构,能够体现它的设计理念。Java采用长命名的方式来规范类的命名,能够自己表达它的主要意图。配合高级的IDE,可以减少编码人员的记忆负担,靠模糊的匹配就能找到自己所需要的资源。 为了让大家更好的理解命名的套路,我借鉴了最流行的Java […]
这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 创建可维护的应用始终是构建应用的真正的长期挑战。 不久以前,我还为一家公司工作过,其核心业务应用是拥有数千家公司客户的 SaaS 平台。 […]
原文:https://herbertograca.com/2017/07/10/programming-language-evolution/ 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 编程语 […]
原文:https://herbertograca.com/2017/07/05/software-architecture-premises/ 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 在这篇 […]
原文:https://herbertograca.com/2017/07/03/the-software-architecture-chronicles/ 译者:最早看到的是作者的这篇文章(译文),其中的那副信息图可谓集软件架构之大成。后来发现这是作者学习和思考软件架构发展史的系列文章之一。“以史为鉴,可以知兴替”,阅读历史就是学习的过程。翻译也不例外,我也是通过阅读和翻译 […]
四色建模法来源于Peter Coad的 《Java Modeling In Color With UML》,中文版:《彩色UML建模》(末尾处有书籍领取方式,仅用于学习)。 Peter Coad和Mark Mayfield奠定了4种架构型(一种形式,所有的东西都或多或少地遵守)的早期工作。 4种架构型 Archetype: 时刻时段 MomentInterval:一个时刻或 […]
大家好,我已经写代码超过10年了,我可以充满信心地说,编写干净,高效和可维护的代码对任何Java开发人员来说都是必不可少的。它不仅提高了代码的可读性,而且还帮助您避免常见的陷阱并提高软件的整体质量。 在过去,我分享了10个Spring Cloud功能,使微服务开发更容易,50+ Spring靴子面试问题以及其他几篇关于Java和Spring Boot的文章,在这篇博客文章中 […]
前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。 确实,spring事务用起来贼爽,就用一个简单的注解:@Transactional,就能轻松搞定事务。我猜大部分小伙伴也是这样 […]
前言 旧项目MySQL Java升级驱动,本来一切都好好的,但是升级到8.x的驱动后,发现入库的时间比实际时间相差13个小时,这就很奇怪了,如果相差8小时,那么还可以说是时区不对,从驱动源码分析看看 1. demo pom依赖,构造一个真实案例,这里的8.0.22版本😋 <dependencies> <dependency> <groupId& […]
介绍 什么是状态机 有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机(英语:finite-state automation,缩写:FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。 -- 维基百科 使用场景 针对需要通过状态扭转达到流程控制的场景。例如:收货,上架这两个动作 […]
最近在一个项目中,因为涉及很多状态的流转,我们选择使用状态机引擎来表达状态流转。因为状态机DSL(Domain Specific Languages)带来的表达能力,相比较于if-else的代码,要更优雅更容易理解。另一方面,状态机很简单,不像流程引擎那么华而不实。 一开始我们选用了一个开源的状态机引擎,但我觉得不好用,就自己写了一个能满足我们要求的简洁版状态机,这样比较K […]
学习批量思想、异步思想和空间换时间思想,优化数据库操作、降低接口耗时,提高接口性能。了解更多实用技巧,提升开发效率。
在一个DDD架构设计中,领域层的设计合理性会直接影响整个架构的代码结构以及应用层、基础设施层的设计。但是领域层设计又是有挑战的任务,特别是在一个业务逻辑相对复杂应用中,每一个业务规则是应该放在Entity、ValueObject 还是 DomainService是值得用心思考的,既要避免未来的扩展性差,又要确保不会过度设计导致复杂性。今天我用一个相对轻松易懂的领域做一个案例 […]
Bloom filter: No means 'No', Yes means 'Maybe'. In this post, we will explore the Bloom filter — a data structure that is ingenious in its simplicity and elegant in its design. We will del […]
作者|殷浩 出品|阿里巴巴新零售淘系技术部 写在前面: 这篇文章和《阿里技术专家详解DDD系列 第二弹 - 应用架构》隔了比较久,一方面是工作比较忙,另一方面是在讲Repository之前其实应该先讲Entity(实体)、Aggregate Root(聚合根)、BoundedContext(限界上下文)等概念。但在实际写的过程中,发现单纯讲Entity相关的东西会比较抽象, […]
COPYRIGHT © 2014-2023 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang