自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (27)
  • 收藏
  • 关注

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

本文在阿里巴巴Java开发规范基础上,补充一些常用的高级规范,用于提升代码质量及增强代码可读性

2022-08-12 15:22:13 328 1

原创 错误码设计思考

在微服务化的今天,服务间的交互越来越复杂,统一异常处理规范作为框架的基础,一旦上线后很难再更改,如果设计不好,会导致后期的维护成本越来越来大。 对于错误码的设计,不同的开发团队有不同的风格习惯。本文分享作者从实践中总结的经验及对应的思考,期望对读者有所启发。本文中涉及的源码:https://github.com/sofn/app-engine/tree/master/common-error什么是错误码引自阿里巴巴《Java 开发手册》- 异常日志-错误码错误码的制定原则:快速溯源、简单易记、沟通

2022-03-24 18:03:43 1085

原创 Java线程池进阶

线程池是日常开发中常用的技术,使用也非常简单,不过想使用好线程池也不是件容易的事,开发者需要不断探索底层的实现原理,才能在不同的场景中选择合适的策略,最大程度发挥线程池的作用以及避免踩坑。一、线程池工作流程以下是Java线程池的工作流程,涉及创建线程的参数及拒绝策略,如果读者对这部分内容不太了解,可参考其他的文档,本文不在赘述。二、线程池进阶1、线程池的创建需要手动通过ThreadPoolExecutor创建,使用者要非常明确业务场景并定制线程池,避免误用可能导致的问题。以下是阿里巴巴Java

2022-02-28 20:50:21 205

原创 平台化建设思路浅谈

随着业务的不断发展,软件系统不可避免的走向熵增:复杂度越来越高、研发效率越来越差、稳定性逐渐降低等。这时抽象核心能力,走向平台化的道路成为很多系统的首要选择。笔者结合自己的经验,总结了平台化建设的几种思路,希望对大家建设平台化有所帮助。平台化有以下优点复用性强:复用核心逻辑,业务功能只在平台之上的业务层建设,降低建设成本;研发效率高:平台服务作为通用能力基建,业务只需要关注需求,不用关心平台底层复杂能力实现;降低复杂性:平台都有合理的职责边界和模块划分,对外开发的接口也都直观简洁;稳定性:平台服

2022-02-15 21:33:53 1809

原创 从MVC到DDD的架构演进

DDD这几年越来越火,资料也很多,大部分的资料都偏向于理论介绍,有给出的代码与传统MVC的三层架构差异较大,再加上大量的新概念很容易让初学者望而却步。本文从MVC架构角度来讲解如何演进到DDD架构。从DDD的角度看MVC架构的问题代码角度:瘦实体模型:只起到数据类的作用,业务逻辑散落到service,可维护性越来越差; 面向数据库表编程,而非模型编程; 实体类之间的关系是复杂的网状结构,成为大泥球,牵一发而动全身,导致不敢轻易改代码; service类承接的所有的业务逻辑,越来越臃肿,很容

2022-02-15 21:11:43 1828

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

一、背景在互联网分布式应用中,如果上线的新版本有bug又不能回滚止损,带来的后果将是灾难性的。因此做到上线可回滚以及上线前的checklist是保证服务稳定性的基本要求。在简单的场景里直接回滚到上一版个版本即可,但是如果涉及多个上下游和组件、考虑多版本兼容,就需要有好好设计下如何构建可回滚的代码,充分验证后还需要仔细检查上线checklist,最大程度保证线上服务的稳定性。二、构建向前兼容的代码回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。在回滚之后,程序依然能够正常处理,称

2021-11-22 10:16:42 1541

原创 Maven依赖冲突问题排查经验​

Maven依赖冲突问题排查经验一、背景在日常的开发中,排查问题是一个合格Java开发者的的基本能力。对于常见的NullPointerException,NoClassDefFoundError等问题一般通过google直接就能找到答案。不过还有一些异常情况不是那么直观,google一般搜不到有效的信息,就需要深入研究排查。新人遇到这类问题,往往一脸懵逼,不知如何下手,请教高手,高手如果只是简单指导一个方向,新人踩过几个坑没解决后会更加沮丧。甚至怀疑自己遇到一个神秘的无法解决的bug。有经验的开发往往也

2021-11-20 21:57:28 666

原创 升级Java17问题记录

升级Java17问题记录最新的长期支持版Java17于2021年9月14日如期发布,按照发布规划,JDK/Java 17 属于长期支持版本 (LTS),将会获得 8 年的技术支持,直至 2029 年 9 月。值得一提的是,根据 Oracle 最新推出的**「Free Java License」**,Oracle JDK 可免费用于生产环境。Java各版本新特性请查看以下系列文章:Java17的新特性本文连接,转载请注明出处1、Lombok报错错误日志:class lombok.javac.apt

2021-11-20 21:54:24 2574

原创 使用Groovy构建DSL

DSL(Domain Specific Language)是针对某一领域,具有受限表达性的一种计算机程序设计语言。常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单。由于其使用简单的特性,DSL 通常不会像 Java,C++等语言将其应用于一般性的编程任务。对于 Groovy 来说,一个伟大的 DSL 产物就是新一代构建工具——Gradle,接下来让我们看下有哪些特性来支撑Groovy方便的编写DSL:一、原理1、闭包官方定义是“Groovy中的闭包是一个开放,匿

2021-03-04 10:34:19 1698 1

原创 使用Reactor完成类似Flink的操作

一、背景Flink在处理流式任务的时候有很大的优势,其中windows等操作符可以很方便的完成聚合任务,但是Flink是一套独立的服务,业务流程中如果想使用需要将数据发到kafka,用Flink处理完再发到kafka,然后再做业务处理,流程很繁琐。比如在业务代码中想要实现类似Flink的window按时间批量聚合功能,如果纯手动写代码比较繁琐,使用Flink又太重,这种场景下使用响应式编程RxJava、Reactor等的window、buffer操作符可以很方便的实现。响应式编程框架也早已有了背压以及

2021-02-27 10:30:15 2029 1

原创 Gradle最佳实践

一、Gradle相比Maven的优势配置简洁 Maven是用pom.xml管理,引入一个jar包至少5行代码,Gradle只需要一行。2. 构建速度快 Gradle支持daemon方式运行,启动速度快,同时有基于daemon的增量构建,充分利用JVM的运行时优化,和缓存数据构建速度相比Maven快很多。3. 更好的灵活性、扩展性 Gradle 相对于 Maven 等构建工具, 其提供了一系列的 API 让我们有能力去修改或定制项目的构建过程。### 二、基本配置1. 设置本地仓库地址 默

2021-01-13 10:26:40 2602

原创 系统设计之降低复杂性

人活着就是在对抗熵增定律,生命以负熵为生。——薛定谔一、熵增定律### 1、熵增定律熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。热力学第二定律,又称“熵增定律”,表明了在自然过程中,一个孤立的系统总是从最初的集中、有序的排列状态,趋向于分散、混乱和无序;当熵达到最大时,系统就会处于一种静寂状态。通俗的讲:系统的熵增过程,就是由原始到死亡的过程。“熵”是“活跃”的反义词,代表负能量。非生命,比如物质总是向着熵增演化,屋子不收拾会变乱,手机会越来越卡,耳机线会凌乱,热水会慢慢变凉,太阳会不断燃

2020-12-26 22:51:40 2886 1

原创 Java后端模板引擎对比

一、什么是模板引擎模板引擎是为了解决用户界面(显示)与业务数据(内容)分离而产生的。他可以生成特定格式的文档,常用的如格式如HTML、xml以及其他格式的文本格式。其工作模式如下: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLu64IS7-1608214617606)(https://blogpic.chekuspace.com/image-20201214142214449.png)]## 二、java常用的模板引擎有哪些jsp:是一种动态网页开发技术。它使用JSP

2020-12-17 22:17:20 2889

原创 JDK8升级JDK11过程记录

1、引言最新版本Java15都出来了,很多小伙伴还在使用Java8,当然JDK15不是长期支持版本,最新的长期支持版本是Java11,而下一个长期支持版本要等到2021年9月发布的Java17。最近把内部几个系统从Java8升级到了Java11,升级过程还是比较简单的。Java11的新特性如下,最兴奋的功能是ZGC,相关资料请其他文档注:以下教程基于Maven配置## 2、准备工作下载openjdk,这里推荐使用华为镜像:https://mirrors.huaweicloud.com/java/jdk/1

2020-12-16 20:10:39 4920

原创 美团 GIT Commit Log规范

一、背景Git每次提交代码都需要写commit message,一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作等。但是在日常开发中,开发者提交的的commit message千奇百怪,中英文混合使用,这就导致后续代码维护成本特别大,有时自己都不知道自己的fix bug修改的是什么问题。基于以上这些问题,我们希望通过某种方式来监控用户的git commit message,让规范更好的服务于质量,提高大家的研发效率。二、约定所有项目的Commit Log的格式精

2020-12-15 20:40:27 758

转载 机器学习视频资料大合集

资料:2020全球AI比赛实战训练营Python 编程高手之路Python基础+数据科学入门训练营Python零基础入门训练营pytorch框架第二期《机器学习》西瓜书训练营《深度学习》花书训练营【第二期】【备战秋招】面试刷题+算法强化训练营第三期(完结)比赛实战训练营机器学习实战训练营李航《统计学习方法》训练营人工智能 数学基础训练营人工智能Paper论文精读班(CV方向)人工智能Paper论文精读班(C方向)人工智能Paper论文精读班(NLP方向)深度学习 30 篇精读

2020-12-13 14:44:59 197

Oracle中的随机操作

dbms_random.value :该函数用来产生一个介于0和1之间随机数,查询结果随机排序是它的一种用法。  取出0-1之间的随机数: select  dbms_random.value from dual;取出0到任意范围的随机数: select  dbms_random.value*100 from dual;       如果不想要小数点后面部分:select  TRUNC(db...

2012-02-18 15:25:03 182

java内存区域与内存溢出异常

1.运行时数据区域1.1 程序计数器记录当前线程所执行字节码的行号指示器。线程私有,占有很小一块内存,唯一一块没有OutOfMemoryError的区域。1.2  java虚拟机栈线程私有,生命周期与线程一样,描述的是Java方法执行的区域:每个方法被执行就回生成一个栈帧(Stack Frame)用于存储局部变量表,操作栈,动态链接,方法出口等信息。局部变量表存储编译器可知的各...

2012-02-18 09:47:12 63

Oracle约束

表虽然建好了,但是表中的数据是否合法并不能有所检查,如果想针对表中的数据做一些过滤的话,则可以通过约束完成,以保证数据的合法性。一个有五种:非空约束、唯一约束、主键约束、检查约束、外键约束。非空约束 :NK列名 数据类型 [DEFAULT ]  NOT  NULL ;DROP TABLE mumber PURGE;CREATE TABLE mumber (m...

2012-02-15 21:31:50 93

原创 Lucene之庖丁分词器及性能分析

首先简单介绍一下中文分词器,lucene默认的中文分词器有:单字分词StandardAnalyzer 、 二分法分词 CJKAnalyzer。另外就是外部的词典分词了,最简单的是极易分词MMAnalyzer、庖丁分词PaodingAnalyzer。单字分词就是把一句中文一个字一个字的分开,二分法分词就是相邻的二个字是一个关键词,基本上这两种分词方法用的很少了,用法也很简单。MMAn

2012-02-05 23:09:37 1558 2

原创 Tomcat 7.0.23的初始化设置。

我下的tomcat是绿色版:apache-tomcat-7.0.23-windows-x86.zip。解压到D盘。集成Myeclipse的配置:Window->preferences->Myeclipse->Service->Tomcat->Tomcat 6.x 按如下配置 Enable必须选上。 然后点开Tomcat 6.x 选择JDK,按如下配置:java是

2012-01-07 17:40:59 2386

转载 PHP调用java的class

转:http://hi.baidu.com/lei0827/blog/item/28439a4e923234ced1c86a18.htmlPHP调用java的class有2种方法    1、种是用php自身带的模块调用java(不过经过网友的证明发现这种方法不好)我没用。    2、通过php-java-bridge模块调用java。(经过网上普遍推荐)我使用了这张方法。由于海底光

2011-12-06 15:18:52 453

原创 我的php之旅

    不知从什么时候迷恋上了php,在朦胧之中开始了我的编程之路.......    听说csdn高手如云,很想结识志同道合的朋友,无兄弟不编程,希望大家一起开拓我们的前程,编程之路,不再孤单前行!    成功之路弯曲而漫长,相信不屈不挠的努力,相信年轻,胜利一定属于我们,加油!

2010-05-08 13:26:00 417

原创 键盘上所有快捷键

2010-05-01 10:34:00 532 1

原创 我的php之旅

2010-04-10 10:49:00 492 1

解构领域驱动设计 彩色配图 非PDF

解构领域驱动设计 彩色配图 非PDF

2022-09-13

23种设计模式彩图.jpg

设计模式之禅书后附带彩图,23种设计模式类图、说明,超清晰。

2012-05-06

mybatis-3.0.6

mybatis-3.0.6.chm 文档,英文版。

2012-05-06

lucene-3.5.0.chm

lucene-3.5.0.chm文档,英文版

2012-05-06

junit-4.10.chm

junit-4.10,junit最新版本chm格式文档,英文版。

2012-05-06

hibernate-4.1.2.chm

hibernate最新版本chm格式文档

2012-05-06

JMS 2.0 规范

JSR343 - JMS 2.0 Specification JMS 2.0 规范,英文原版,官方出品

2012-05-06

Hadoop实战

Hadoop实战.PDF 中文扫描版,Hadoop经典。

2012-05-06

Java并发编程实践(中英文)

Java并发编程实践,java程序员必备经典。中英文双版。

2012-05-06

MySQL5.1参考手册

这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。

2012-05-06

REST API Design Rulebook

REST API Design Rulebook原版,非常好的REST教材

2012-05-06

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解

2012-05-06

Pro Java 7 NIO.2

Pro Java 7 NIO.2 英文原版

2012-05-06

Apache2.2中文手册.chm

Apache HTTP Server Version 2.2 文档 [最后更新:2006年3月21日]

2012-05-06

XML编程从入门到精通

XML编程从入门到精通 挺经典的可以看一看

2010-05-26

数据结构学习资料.zip

数据结构学习资料,很不错的资源哦,电脑编程高手之路必学内容

2010-05-20

电脑超级技巧3000招.rar

电脑超级技巧3000招,高手必看,简单易学......

2010-05-20

大学英语四级难词速记宝典

大学英语四级难词速记宝典 电子版.pdf

2010-05-20

winlzm软件汉化版

winlzm解压软件,可以看lzm格式的电子书哦......

2010-05-20

photoshop高级技巧(好多诡异的效果)

Photoshop高级技巧 (好多诡异的效果~甚全),doc格式

2010-05-20

Smarty教程(rar)

Smarty教程,很好的资源,有兴趣的朋友可以看看

2010-05-08

大师兄smart教程

大师兄smart教程(txt格式)简单易学,讲解详细,有兴趣的朋友可以看看

2010-05-08

编程高手箴言.chm

想成为编程高手的都来看看吧。内容丰富,编程高手必备知识。

2010-04-09

十天学会php.txt

十天学会php,txt格式,小巧实用,初学者适用。

2010-04-09

C程序设计语言(第2版·新版)

c语言程序设计幻灯片,简单实用,c语言初学者适用

2010-04-05

HTML简易教程(chm)

简易的html教程,初学者使用,不可多得html入门教程

2010-04-05

C语言课件(powerpoint格式)

简单的c语言教程,内容不是太详细但适合复习教学使用。

2010-04-05

PHP新手上路中文教程

PHP新手必备教程,内容简单实用,层层递进php初学者适用。

2010-04-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除