自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (8)
  • 收藏
  • 关注

原创 解读《领域驱动设计 软件核心复杂性应对之道》(九)

前面3章给出了战略层面上应用领域驱动设计的很多原则和技术。在一个大的、复杂的系统中,可能需要在一个设计中综合运用几种策略。

2022-10-26 09:00:00 928 1

原创 解读《领域驱动设计 软件核心复杂性应对之道》(八)

这章的标题是“大型结构”。其实这章主要在讲“系统大到一定程度后,我们应该怎样整体的去管理和看待这个系统”。如何保证大型系统各个部分能统一朝着正确的方向发展。感觉这章直接叫“战略设计”,可能更好理解一些。比如,“远交近攻”就是战略,但具体应该先“远交”哪些国家,先“近攻”哪些国家,可能大家的观点就会有差异了。但不管有多大的差异,都要在“远交近攻”这个大框架下去制定具体战术。

2022-10-24 08:00:00 868

原创 解读《领域驱动设计 软件核心复杂性应对之道》(七)

上章我们讲到领域层被分割成一个个BOUNDED CONTEXT,构建出了CONTEXT MAP,并介绍了各个CONTEXT的关系。做任何事情,都要抓住主要矛盾,进行领域驱动设计也是。我们需要通过精炼,得到CORE DOMAIN(核心领域)。围绕核心领域展开分析。核心领域可能包含几个CONTEXT,也肯能只包含一个CONTEXT,甚至可能只是CONTEXT的一部分(如上章讲的SHARED KERNEL)。 精炼是把一堆杂乱在一起的组件分开的过程,以便通过某种形式从中提取出最重要的内容。就像蒸馏

2022-10-17 07:30:00 935

原创 解读《领域驱动设计 软件核心复杂性应对之道》(六)

随着功能越来越多,系统会越来越复杂。当系统大到一定程度,就需要对系统进行拆分。系统大到一定程度,还需要多个团队共同维护。这部分讲的是更宏观层面的设计,所以叫战略设计。第14章讲的是“分”,即如何对结构进行划分,各个结构之间用BOUNDED CONTEXT分隔开,划分之后,如何处理各个部分之间的关系;第15章讲的是精炼,是指要突出主要矛盾,对划分出的各个部分,重点关注核心领域的那部分;第16章讲的是“合”,即如何保证大型系统各个部分能统一朝着正确的方向发展。

2022-10-12 11:54:27 475

原创 解读《领域驱动设计 软件核心复杂性应对之道》(五)

软件设计,很重要的一个方法就是“借鉴”,下面两章重点介绍了,如何通过借鉴分析模式和设计模式,来进行领域驱动设计。

2022-10-09 15:29:44 704

原创 解读《领域驱动设计 软件核心复杂性应对之道》(四)

如何让我们设计的框架,在后期更容易维护和修改,本章给出来了一些参考思路。

2022-10-03 12:29:26 704

原创 解读《领域驱动设计 软件核心复杂性应对之道》(三)

重构就是在不改变软件功能的前提下重新设计它。好的模型不是一次就构建出来的,需要不断的重构。重构是无止境的,但也不是随机的。这部分阐述了一些指引我们保持正确方向的建模原则。我们可以利用这些原则改进我们的设计。

2022-09-26 17:29:32 244

原创 解读《领域驱动设计 软件核心复杂性应对之道》(二)

DDD的理念是一种理想化的思维方式。在项目落地的时候,还要参考目前已成型的框架的支持情况。说白了,就是理想很丰满,现实很骨感。鉴于目前技术框架的限制,我们在做DDD设计时,不得不在一些地方做出一些细微的取舍。

2022-09-26 09:57:42 776

原创 解读《领域驱动设计 软件核心复杂性应对之道》(一)

这本书共分为4部分。有几个重点的章节。作者也在绪论里提了,可以选读。作者在书中多次提到,领域驱动设计并不是要求一开始就设计出完美的系统。我们需要不断重构、不断精进。可以是对老系统进行领域驱动改造。也可以新系统直接使用领域驱动去设计。但谁也不能保证新系统在设计后,不会再次优化架构。本书只是在你优化时,给你提供一些指导思想罢了。重要的是思维方式,而不是最后的形态。因为架构总是在演进的,而方法论却可以一直陪伴我们。

2022-09-16 15:40:23 1137

原创 如何更好的应对团队成员离职

很多开发人员在后期,逐渐转为到项目管理岗。由之前的“自己做事”,逐渐变味了“用人做事”。但是团队成员离职的情况时有发生。一般平均两年,手底下的人就要走一波。这种情况下,我们应该如何更好的应对呢?

2022-09-05 17:00:15 1997

原创 如何查看SSL证书的签名值

我们访问https链接下的网站时,浏览器上可以看到ssl证书。但是通过证书详情只能看到证书的签名算法、指纹(摘要)算法、指纹(摘要)等内容,确看不到证书颁发机构对ssl证书的签名信息。经过摸索,发现,浏览器确实不支持显示“颁发机构对ssl证书的签名信息”,但是这并不表示这个签名信息就没有,我们将ssl证书下载到本地,一般是cer文件(下载时选择经过base64转码)通过openssl工具,使用命令x509 -in XXX.cer -noout -text ,成功查看到了签名信息,如下图。据此判断SSL证书中

2022-04-27 15:43:53 1364

转载 SOA、ESB、微服务架构的区别和联系

今天准备再聊下在当前微服务,中台和云原生技术下,传统的SOA是否已经过时这个话题。现在出去跟别人交流,谈到SOA的时候有些客户直接的反馈就是过时的技术怎么还在用?或者一说到SOA就认为过时了没必要采用,因此今天还是有必要就SOA是否过时进一步说明。SOA的基本概念我们可以来看下SOA本身的定义,即:SOA是一种架构方法,将传统的单片式应用打破,分解为离散的、自治的业务服务,利用标准提升他们的互操作性,从而可以更好地共享、重用和组装,快速构建复合的应用从而满足业务需求的变化。...

2022-04-04 13:13:55 5558 1

原创 浏览器UserAgent的趣味史

编辑导语:User Agent,简称UA,中文名为用户代理,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计。接下来,本文作者为我们总结了其发展的趣味史。最近在看《给产品经理讲技术》,其中有一段简要的提到了浏览器UserAgent的含义和作用。在最后作者暗示UserAgent的变迁是一段充满趣味性的历史,为了满足我的好(吃)奇(瓜)心理,我去深扒了一下。结果不扒不.

2022-04-02 09:14:27 256

原创 代码的几种执行模式

代码的几种执行模式 解释型 编译型 半解释型 半编译型

2022-02-27 14:11:44 634

原创 从Java 动态代理模式 到spring AOP 再到spring事务管理 的逻辑脉络

上篇介绍了静态代理模式https://blog.csdn.net/liufangbaishi2014/article/details/90673154在看本文之前,读者最好,先浏览一下既然已经有了静态代理模式,为什么还要有动态代理模式呢?那我们先来谈下静态代理模式的局限性:1.一个代理类只能代理一类(实现了特定接口的)对象;2.一个代理类只能代理一个(特定接口的)方法;...

2019-05-31 10:52:43 197

原创 静态代理模式的两种理解方式

在介绍静态代理之前,大家先来了解下代理的含义。  举一个现实生活中的例子:歌星或者明星都有一个自己的经纪人,这个经纪人就是他们的代理人,当我们需要找明星表演时,不能直接找到该明星,只能是找明星的代理人。比如刘德华在现实生活中非常有名,会唱歌,会跳舞,会拍戏,刘德华在没有出名之前,我们可以直接找他唱歌,跳舞,拍戏,刘德华出名之后,他干的第一件事就是找一个经纪人,这个经纪人就是刘德华的...

2019-05-29 17:14:57 1382

原创 设计模式之工厂模式 三种工厂模式的实现方式

什么是工厂模式?工厂模式就是将对象的创建交由工厂来实现,程序只管使用其中具体的方法即可。我们为什么要使用工厂模式?1.将对象的创建和对象的使用分开,降低耦合度,提供代码重复利用率;2.后期对于创建对象的修改成本小。虽然工厂模式有这么优势,但是并不是所有的场景都适用于工厂模式。我们总不能把所有的需要创建对象的地方都换成工厂模式吧?那就有点为了使用设计模式而使用工厂模式了。那么...

2019-05-29 10:48:50 1841

转载 了解CDN 看这个例子就够了

 618电商节、双十一购物狂欢节,到底是什么在支撑数以万计的秒杀活动?这就不得不提一直隐姓埋名的 CDN 了,注意不是 CSDN,而是 CDN,CDN,CDN!其全称是 Content Delivery Network,即内容分发网络。  那到底 CDN 是什么鬼,我们还得从西天取经说起……  1300年前,唐僧师徒取经要跋涉十万八千里,历经九九八十一难,一路打怪升级,最终...

2019-05-20 10:31:29 760

原创 代码简洁之道 如何减少if else的嵌套层数

if-else 超过三层之后,代码的可读性就会大大降低。可以使用卫语句、策略模式、状态模式来改善代码结构。具体方案如下:卫语句 参考链接:https://blog.csdn.net/jw903/article/details/45506777 1.使用卫语句取代嵌套表达式 函数中的条件逻辑使人难以看清正常的执行途径。使用卫语句表现所有特殊情况。 动机:条件表达式通常有2种表现...

2019-04-04 19:41:16 5941

原创 《深入理解Java虚拟机》 读书心得 全书概况

不得不说,这是一本很经典的书。本着把书读薄的态度,我把这本书读了三遍。现在个人认为这本书比较核心的内容和需要重点关注的点给大家分享一下,有不足之处,大家可以讨论。 《深入理解Java虚拟机》这本书中有很大的篇幅是在讲JVM内部的优化。这些优化在我们平时编码过程中,往往是不可见的,或者说根本不用关心的。要用好这本书,最重要的是理解和我们平时工作最贴合的一部分,然后应用起来。...

2019-03-15 08:58:31 210

原创 通过weblogic API 深入解析如何获取weblogic中服务的IP和端口

我们的服务是部署在weblogic上的,最近遇到一个需求,需要在代码中获取weblogic部署当前服务的IP地址和端口。后来搜到一段代码,亲测有效:public static String getIpAndPort(){ try { InitialContext initialContext = new InitialContext(); MBeanServe...

2019-02-14 16:52:17 2980 2

原创 System.getenv()和System.getProperty() 的区别

最近遇到一个需求,服务器实例需要获取当前的环境变量。经过查资料,发现环境变量可以在两个地方设置。一、在系统层面设置环境变量在系统层面设置环境变量,之前我们应该都操作过,以windows系统为例System.getenv()可以获取的在这里设置的变量。二、在java虚拟机层面设置环境变量个人理解,System.getProperty()可以获取在JVM 层面的变量,有些变量在...

2019-02-13 16:38:38 2984

原创 本地启动两个tomcat报错: java.rmi.server.ExportException: Port already in use: 9999; nested exception is: jav

9999是端口号,当然还有可能是别的端口号。方案1:(失败)修改tomcat文件夹下的conf/server.xml两个tomcat的conf/server.xml中的端口已经都设计成不一样的了。方案2:(失败) 找出占用1099端口的进程,进入windows命令,查看什么进程占用了1099端口  使用命令:netstat -aon|findstr 1099 找出占用109...

2019-01-15 17:11:54 3679

原创 从JVM运行角度解释 为什么类的成员变量有默认初始值 而方法内的局部变量却没有初始值

最近又重新研读了《深入理解Java虚拟机》,其中一个知识点在这里记录一下。类的成员变量有默认初始值,而方法内的局部变量却没有初始值。这个问题涉及到JVM类加载和字节码执行两个阶段,这两个阶段是依次执行的。JVM类加载是JVM利用类加载器将class文件加载到JVM的过程,涉及“加载”、“验证”、“”准备“、“”解析“和”初始化“。一、类的成员变量初始化   ---在JVM类加载阶段完成...

2019-01-10 10:18:40 5198 3

原创 JVM生成Class文件的几个时机

JVM生成Class文件的时机问题来源问题解答.java文件编译后内部类编译后匿名内部类编译后利用java的反射机制生成的类问题来源之前被面试的时候,被问到一个问题。我觉得这个问题很考验发散性思维和对java、JVM的认识。问题如题 JVM生成Class文件的时机 。问题解答.java文件编译后内部类编译后匿名内部类编译后利用java的反射机制生成的类...

2018-12-24 09:05:12 839

原创 定长线程池简易原理图及实现思路

队列中存放着实现了runnable接口的对象。每次有新任务的时候,就会往队列中push进一个对象。线程1-4需要定义为继承了Tread类的内部,在类中的run方法中,定一个while循环,不断的轮询送队列中取对象,执行对象中的run方法。线程中需要存放着线程池的对象的指针,便于获取到线程池对象的队列。当然,这个线程是是定长的。有些情况下,定长的数量不够,或者高峰期过后,长度需要降下来。...

2018-12-23 11:28:57 362

原创 如何让eclipse显示GC日志

原文链接:https://blog.csdn.net/lan861698789/article/details/51985188在eclipse根目录下的eclipse.ini配置文件中添加以下参数: -verbose:gc (开启打印垃圾回收日志) -Xloggc:eclipse_gc.log (设置垃圾回收日志打印的文件,文件名称可以自定义) -XX:+PrintGCTimeSt...

2018-12-19 08:47:10 720

原创 常量池存储字符串对象 几种情景

1. 显示调用String的intern方法的时候; 2. 直接声明字符串字面常量的时候,例如: String a = "aaa";3. 字符串直接常量相加的时候,例如: String c = "aa" + "bb"; 其中的aa/bb只要有任何一个不是字符串字面常量形式,都不会在常量池生成"aabb". 且此时jvm做了优化,不会同时生成"aa"和"bb"在字符串常量池中。 

2018-11-29 09:18:49 307

原创 J2SE J2EE J2ME名字的来历

JESE,J2EE,J2ME中2的含义要追溯要1998年。1998年Java 1.2版本发布,1999年发布Java 1.2的标准版,企业版,微型版三个版本,为了区分这三个版本,分别叫做Java2SE,Java2EE,Java2ME,简称J2SE,J2EE,J2ME。故,2的含义为1.2版本。但是,这种叫法已经在2005年Java 1.6发布后取消,J2EE更名为Java EE,J2SE更名为...

2018-11-26 08:40:44 393

原创 Java 反射获取Class对象的几种方式

Java 程序中获得 Class 对象通常有如下三种方式:•使用 Class 的 forName() •调用某个类的 class 属性•调用某个对象的 getClass()代码举例:内容解析:Class本身也是一个类,当JVM将用户自定义的类加载进来之后,会生成对应的Class的对象。可以通过Class类的静态方法forName方法输入类的路径直接获取这个对象; ...

2018-10-14 12:19:48 973 1

原创 在eclipse中集成maven集成的基本步骤

本文主要讲从maven下载到在eclipse中的整个过程第一步:登录maven官网下载mavenhttp://maven.apache.org/download.cgi下载过程我就不多说了,下载好后,我放在C盘第二步:打开eclipse,集成mavenwindow—>preferences->Maven->Installations   点击add把maven的路径

2017-12-11 20:30:48 11996

原创 delphi是什么?

今天又客户反应他们是用delphi对接的,后来经过查资料发现delphi是一个集成开发环境(IDE),使用的语言是Pascal。用途很广,干什么都可以,delphi在桌面开发和数据库开发方面更便捷,因为delphi集成的开发控件很多,有一句话叫做“真正的程序员用C,聪明的程序员用Delphi”,它的效率很高。曾经确实很流行,但后来被Java和.net抢了风头。

2017-10-24 21:49:08 6414

原创 如何查看本机的外网IP

windows和Linux系统查看本机外网IP的方法是不同的。windows比较简单,直接百度“本机IP”即可如果是linux系统,输入命令telnet cip.cc,如下图所示:

2017-09-17 22:48:30 7650

原创 mysql中导出数据字典

mysql没有直接导出数据字典的功能,只能通过information_schema表间接导出。先来讲讲什么是数据字典?数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。select TA

2017-08-24 09:03:15 3342 1

原创 清空数据库表结构的几种方式

一、SQL中的语法   1、drop table 表名称                         eg: drop table  dbo.Sys_Test   2、truncate table 表名称                     eg: truncate  table dbo.Sys_Test                     3、delete fro

2017-08-10 13:40:37 19225

原创 如何让Tomcat在指定JDK版本下启动 而不依赖环境变量中配置的版本

今天给客户部署软件时遇到了一个尴尬的问题:我们的软件只有部署在JDK1.7环境的tomcat下才会比较稳定。而客户的服务器上装的是JDK1.8,而且他们的环境还不能变,因为服务器中的其他程序都是依赖JDK1.8的环境开发的。他们又不能单独部署。后来经过查资料发现tomcat可以自己指定JDK环境的版本和JDK的路径。下面就把指定的步骤和大家说下,主要是修改文件。根据系统的不同,分为windows的...

2017-08-08 20:24:24 47589 8

原创 通过tomcat-user.xml配置tomcat中 manager app的用户名和密码

tomcat中 manager app 中的用户名密码是配置在conf/tomcat-user.xml中的,开始配置了半天没反应,后来才发现代码都是注释掉的。改了也无效。后来把注释去掉,还是无效,最后在用下边的组合才有效。

2017-08-08 10:01:25 1560

原创 Spring中${}的使用

在spring里面用${}是可以获得配置文件里面的值。比如你的这个里面xmlTool是在另一个配置文件里面配了的,在spring里面就可以用${xmlTool}引用进来。以后如果你要对xmlTool做修改的话,也只用修改配置文件,不用修改代码。好处就是如果你的程序要修改的时候,就只用改${}里配置文件的内容就行了,不用改spring里的配置文件的内容。那么问题来了,spring这么知道我的配置

2017-08-07 21:24:15 5544

原创 keystore was tampered with,or password was incorrect解决办法

利用keytool导入证书,命令如下keytool -import -alias HZZSQKJdianshang -file HZZSQKJdianshang.cer -keystore trust.jks –storepass –storepass报错keystore was tampered with,or password was incorrect后来发现是信

2017-08-03 18:49:18 48344 3

原创 在eclipse中的tomcat中出现报错 Java.lang.OutOfMemoryError: PermGen space

8G内存的电脑,在eclipse中的tomcat中出现报错 java.lang.OutOfMemoryError: PermGen space最终配置成如下大小,解决问题-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

2017-07-19 20:46:27 398

linux搭建web环境一键安装包

次安装包包含包含tomcat7 jdk7 mysql nginx apache,可通过选择一键安装,具体安装步骤 见我博客。

2018-05-03

illegal key size local_policy.jar US_export_policy.jar JDK6-8的替换文件

illegal key size org.apache.ws .security.components.crypto.Merlin cannot create instance

2018-04-17

AIDL 实现Service 双向 通讯 Demo

利用AIDL 实现Service 双向通讯。压缩包下包含两个工程:AIDLText和AIDLClientText。每端各有一个Button,点击button可以获取对方的返回值。

2016-10-02

MFC 随机数生成器 抽奖器

基于MFC的随机数生成器(抽奖器),设置一个随机数产生的上限,一个下限,产生一个随机数。

2016-09-12

genymotion+eclipse插件

genymotion+eclipse插件 上边的文件直接复制到eclipse对应的文件夹下,重启eclipse即可

2015-11-02

iOS 界面整体向上滚动效果

(void)beginAnimationShowView:(UIView *)formView height:(float )height; 界面整体上移,formView为需要移动的视图,height为高度

2015-09-27

iOS在一个图标上加上气泡,显示数字demo

iOS在一个图标上加上气泡,显示数字demo.不仅可以显示数字,任何文本都可以的

2015-07-24

Xcode自动添加注释

用xcode打开里面的程序,运行,关闭xcode再打开xcode。 当在文件中输入“///”时,系统会自动为代码添加注释的。

2015-07-15

空空如也

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

TA关注的人

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