自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(354)
  • 收藏
  • 关注

原创 MySQL有多少种常用的日志,有什么作用

redo 重做⽇志 作⽤:确保事务的持久性,防⽌在发⽣故障,脏⻚未写⼊磁盘。重启数据库会进⾏redo log执⾏ 重做,到达事务⼀致性 undo 回滚⽇志 作⽤:保证数据的原⼦性,记录事务发⽣之前的数据的⼀个版本,⽤于回滚。 innodb事务的可重复读和读取已提交 隔离级别就是通过mvcc+undo实现 errorlog 错误⽇志作⽤:MySQL本身启动、停⽌、运⾏期间发⽣的错误信息 slow query log 慢查询⽇志 作⽤:记录执⾏时间过⻓的sql,时间阈值可

2021-08-09 09:12:22 459

原创 Spring事务的传播属性和隔离级别

事务传播行为 如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为 @Transactional(propagation=Propagation.REQUIRED)如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)@Transactional(propagation=Propagation.NOT_SUPPORTED)不为这个方法开启事务@Transactional(propagation=Propagation.REQUIRES_

2021-08-07 12:21:11 362

原创 云计算服务三层架构-IaaS-PaaS-SaaS解析

IaaS 基础设施即服务 Infrastructure as a service 通即虚拟的硬件资源,如虚拟的主机、存储、网络、安全等资源用户无需购买服务器、网络设备和存储设备,只需要通过网络租赁即可搭建自己的应用系统将硬件外包到别的地方去,IaaS公司会提供场外服务器,存储和网络硬件,你可以租用,节省了维护成本和办公场地公司产品有: Amazon, Microsoft,阿里云,腾讯云,各自的产品最熟悉的例子:阿里云ECS主机的带宽、磁盘空间、GPU等 PaaS 平台即服务..

2021-08-03 00:05:52 2584

原创 分布式事务扫盲

什么是分布式事务事务事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销分两种:一个是本地事务:本地事务其实可以认为是数据库提供的事务机一个是分布式事务分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用分布式事务需要保证这些小操作要么全部成功,要么全部失败本质上来说,

2021-07-16 11:24:30 191 2

原创 Java 基础面试题合集Ⅰ

compareTo() 方法和 equals() 方法有什么区别?compareTo() 方法和 equals() 方法都是用于比较两个字符串的但是有2点不同1、equals()可以接收一个Object类型的参数,而compareTo()只能接收一个String类型的参数2、equals()返回值为Boolean,而compareTo()的返回值为int当equals() 方法返回true时,或者compareTo()方法返回0时,则表示两个字符串完成的相等其他String的重要方法

2021-03-08 13:52:06 173

原创 UDP 协议介绍

UDP概述UDP(User Datagram Protocol) 即用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。UDP报文没有可靠性

2021-03-07 22:32:19 1603

原创 DNS 介绍

DNS简介域名系统(英语:DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符域名系统并不像电话号码通讯录那么简单,通讯录主要是单个个体在使用,同一个名字出现在不同个体的通讯录里并不会出现问题,但域名是群体中所有人都在用的,必须要保持唯一性。为了达到唯一性的目的,因特网在命名的时候采用了层次结构..

2021-03-07 21:26:45 3558

原创 HTTP协议详解

一 、基础概念URLURI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URLURI(Uniform Resource Identifier,统一资源标识符) URL(Uniform Resource Locator,统一资源定位符) URN(Uniform Resource Name,统一资源名称)请求和响应报文1. 请求报文2. 响应报文二、HTTP 方法客户端发送的请求报文第一行为请求行,包含了方法字段...

2021-03-07 20:33:45 469

原创 IP 相关协议介绍

IP 及配套协议详解因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。与 IP 协议配套使用的还有三个协议地址解析协议 ARP(Address Resolution Protocol) 网际控制报文协议 ICMP(Internet Control Message Protocol) 网际组管理协议 IGMP(Internet Gro

2021-03-07 16:13:09 839

原创 网络协议—— 4层,5层,7层?

理解全局网络层次首先要全局上理解7层协议,4层,5层的对应关系OSI 7层国际标准化组织ISO于1984年提出了OSI(Open System Interconnection Reference Model,开放系统互联参考模型)。OSI很快成为计算机网络通信的基础模型OSI依层次结构来划分:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(.

2021-03-07 15:43:33 3281

原创 Maven全局配置文件 settings.xml 详解

概要settings.xml的作用它是用来设置Maven参数的配置文件。并且,settings.xml 是Maven的全局配置文件。settings.xml中包含类似本地仓库、远程仓库和联网使用的代理信息等配置settings.xml文件位置settings.xml文件一般存在于Maven的安装目录的conf子目录下面,或者是用户目录的.m2子目录下面配置的优先级其实相对于多用户的PC机而言,在Maven安装目录的conf子目录下面的settings.xml才是真正的全局的配置。而用

2021-03-07 15:02:42 780

原创 使用 Spring 5 的 开WebFlux 发反应式 Web 应用

Spring 5 是流行的 Spring 框架的下一个重大的版本升级。Spring 5 中最重要改动是把反应式编程的思想应用到了框架的各个方面,Spring 5 的反应式编程以 Reactor 库为基础。Spring 5 框架所包含的内容很多,这里只重点介绍其中新增的 WebFlux 模块。开发人员可以使用 WebFlux 创建高性能的 Web 应用和客户端。这里对 WebFlux 模块进行了详细介绍,包括其中的 HTTP、服务器推送事件和 WebSocket 支持WebFlux 简介WebFlux

2021-03-07 13:21:24 758

原创 使用 Reactor 进行反应式编程

反应式编程(Reactive Programming)这种新的编程范式越来越受到开发人员的欢迎。在 Java 社区中比较流行的是 RxJava 和 RxJava 2。这里要介绍的是另外一个新的反应式编程库 Reactor反应式编程介绍反应式编程来源于数据流和变化的传播,意味着由底层的执行模型负责通过数据流来自动传播变化。比如求值一个简单的表达式 c=a+b,当 a 或者 b 的值发生变化时,传统的编程范式需要对 a+b 进行重新计算来得到 c 的值。如果使用反应式编程,当 a 或者 b 的值发生变化

2021-03-07 11:32:50 311

原创 Java 动态代理机制分析

Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架代理:设计模式代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理为了保持行为的一致性,代理类和委托

2021-03-06 16:40:59 148

原创 Java 15 新特性概述

Java 15 如期于 2020 年 9 月 15 日正式发布,此次更新是继半年前 Java 14 这一大版本发布之后的又一次常规版本更新,自 2017 年发布 Java 9 以来,Java 版本发布基本上都是按照敏捷的开发节奏来发布,由 2017 年之前的每三年一个版本,转变为现在的每半年一个版本,并且一直保持着。在这 2020 年发布的第二个版本版中,主要带来了 ZGC 增强、instanceof 增强、Shenandoah 回收器更新等方面的改动、增强和新特性Edwards-Curve 数字签..

2021-03-06 15:31:48 376

原创 Java 14 新特性概述

Java 14 已如期于 2020 年 3 月 17 日正式发布,此次更新是继半年前 Java 13 这大版本发布之后的又一次常规版本更新,即便在全球疫情如此严峻形势下,依然保持每六个月的版本更新频率,为大家及时带来改进和增强,这一点值得点赞。在这一版中,主要带来了 ZGC 增强、instanceof 增强、Switch 表达式更新为标准版等方面的改动、增强和新功能instanceof 模式匹配(预览阶段)Java 14 中对instanceof的改进,主要目的是为了让创建对象更简单、简洁和...

2021-03-06 14:56:58 324

原创 Java 13 新特性概述

Java 13 已如期于 9 月 17 日正式发布,此次更新是继半年前 Java 12 这大版本发布之后的一次常规版本更新,在这一版中,主要带来了 ZGC 增强、更新 Socket 实现、Switch 表达式更新等方面的改动、增强动态应用程序类-数据共享在 Java 10 中,为了改善应用启动时间和内存空间占用,通过使用 APP CDS,加大了 CDS 的使用范围,允许自定义的类加载器也可以加载自定义类给多个 JVM 共享使用Java 13 中对 Java 10 中引入的 应用程序类数据共享..

2021-03-06 13:14:54 181

原创 Java 12 新特性概述

Java 12 已如期于 3 月 19 日正式发布,此次更新是 Java 11 这一长期支持版本发布之后的一次常规更新,截至目前,Java 半年为发布周期,并且不会跳票承诺的发布模式,已经成功运行一年多了。通过这样的方式,Java 开发团队能够将一些重要特性尽早的合并到 Java Release 版本中,以便快速得到开发者的反馈,避免出现类似 Java 9 发布时的两次延期的情况Java 12 早在 2018 年 12 月便进入了 Rampdown Phase One 阶段,这意味着该版本所有新的功能特

2021-03-06 12:50:49 404 1

原创 Java 11 新特性概述

Java 11 已于 2018 年 9 月 25 日正式发布,之前在 Java 10 新特性介绍 中介绍过,为了加快的版本迭代、跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个大版本,每个季度发布一个中间特性版本,并且做出不会跳票的承诺。通过这样的方式,Java 开发团队能够将一些重要特性尽早的合并到 Java Release 版本中,以便快速得到开发者的反馈,避免出现类似 Java 9 发布时的两次延期的情况按照官方介绍,新的版本发布周期将会严格按照时间节点,于每年的 3

2021-03-06 11:52:06 330

原创 Java 10 新特性概述

作为当今使用最广泛的编程语言之一的 Java 在 2018 年 3 月 21 日发布了第十个大版本。为了更快地迭代、更好地跟进社区反馈,Java 语言版本发布周期调整为每隔 6 个月发布一次。Java 10 是这一新规则之后,采用新发布周期的第一个大版本。Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断。除此之外,还有其他包括垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性局部变量类型推断局部变量类型推断是 Java 10 中最值得开发人员注意的新特性

2021-03-06 11:12:11 322

原创 Java 9 新特性概述

Java 9 正式发布于 2017 年 9 月 21 日。作为 Java8 之后 3 年半才发布的新版本,Java 9 带来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性Java 平台模块系统Java 平台模块系统,也就是 Project Jigsaw,把模块化开发实践引入到了 Java 平台中。在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 jlink 工具,创建出只包含所依赖的 JDK 模块的自定义运行时

2021-03-05 22:51:48 293 2

原创 Linux IO原理和几种零拷贝机制的介绍

Java NIO零拷贝

2021-03-05 17:04:23 260 3

原创 Java 垃圾回收器G1介绍

概述G1垃圾回收器是在Java7 update 4之后引入的一个新的垃圾回收器。G1是一个分代的,增量的,并行与并发的标记-复制垃圾回收器。它的设计目标是为了适应现在不断扩大的内存和不断增加的处理器数量,进一步降低暂停时间(pause time),同时兼顾良好的吞吐量。G1回收器和CMS比起来,有以下不同G1垃圾回收器是compacting(压实)的,因此其回收得到的空间是连续的。这避免了CMS回收器因为不连续空间所造成的问题。如需要更大的堆空间,更多的floating garbage。连续空间意

2021-03-04 21:46:58 867 1

原创 Java SPI机制介绍

什么是SPI机制SPI(Service Provider Interface)是JDK内置的一种 服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如 java.sql.Driver 接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。Java中SPI机制主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是 解耦SPI整体机制图如下

2021-03-04 19:51:22 203 1

原创 Java 反射机制介绍

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制在框架设计中极为广泛,需要深入理解反射基础RRIT(Run-Time Type Identification)运行时类型识别。在《Thinking in Java》一书第十四章中有提到,其作用是在运行时识别一个对象的类型和类的信息。主要有两种方式:一种是“传统的”RTTI,它假定

2021-03-04 16:45:33 285 1

原创 Java 注解机制介绍

注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。它是框架学习和设计者必须掌握的基础注解基础注解主要的作用有以下四方面生成文档,通过代码里标识的元数据生成javadoc文档 编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证 编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码 运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例这么来说是比较抽象的,具体看下注解

2021-03-04 14:44:06 251 1

原创 Java 基础题

Java 中应该使用什么数据类型来代表价格?如果不是特别关心内存和性能的话,使用BigDecimal,否则使用预定义精度的 double 类型怎么将 byte 转换为 String?可以使用 String 接收 byte[] 参数的构造器来进行转换,需要注意的点是要使用的正确的编码,否则会使用平台默认编码,这个编码可能跟原来的编码相同,也可能不同Java 中怎样将 bytes 转换为 long 类型?String接收bytes的构造器转成String,再Long.parseLong能

2021-03-03 23:00:13 371 1

原创 Java 泛型机制介绍

Java泛型这个特性是从JDK 1.5才开始加入的,因此为了兼容之前的版本,Java泛型的实现采取了“伪泛型”的策略,即Java在语法上支持泛型,但是在编译阶段会进行所谓的“类型擦除”(Type Erasure),将所有的泛型表示(尖括号中的内容)都替换为具体的类型(其对应的原生态类型),就像完全没有泛型一样为什么会引入泛型泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以

2021-03-03 17:20:51 385 3

原创 Java 异常机制介绍

Java异常是Java提供的一种识别及响应错误的一致性机制,java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性异常的层次结构异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中 Throwable 类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable 子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发.

2021-03-03 14:11:53 276

原创 什么是TCC?

假设现在有一个电商系统,里面有一个支付订单的场景,那对一个订单支付之后,我们需要做下面的步骤 更改订单的状态为 “已支付” 扣减商品库存 给会员增加积分 创建销售出库单通知仓库发货 业务场景有了,现在要更进一步,实现一个 TCC 分布式事务的效果,也就是说,订单服务 - 修改订单状态,库存服务 - 扣减库存,积分服务 - 增加积分,仓储服务 - 创建销售出库单,上述这几个步骤,要么一起成功,要么一起失败,必须是一个整体性的事务举个例子,现在订单的状态都修

2021-02-25 17:15:41 39782 1

原创 spi 是什么?

spi 是什么?spi,简单来说,就是service provider interface,比如你有个接口,现在这个接口有 3 个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要 spi 了,需要根据指定的配置或者是默认的配置,去找到对应的实现类加载进来,然后用这个实现类的实例对象例如:你有一个接口 A。A1/A2/A3 分别是接口A的不同实现。你通过配置接口 A = 实现 A2,那么在系统实际运行的时候,会加载你的配置,用实现 A2 实例化一个对象来提供服务。spi 机..

2021-02-25 10:24:30 2580

原创 如果几十万用户同时访问一个热点缓存,如何优化你的缓存架构?

为什么要用缓存集群使用缓存集群的时候,最怕的就是热 key、大 value 这两种情况什么叫热 key 大 value 呢?热 key,就是你的缓存集群中的某个 key 瞬间被数万甚至十万的并发请求打爆大 value,就是你的某个 key 对应的 value 可能有 GB 级的大小,导致查询 value 的时候导致网络相关的故障问题假设你手头有个系统,他本身是集群部署的,然后后面有一套缓存集群,这个集群不管你用 redis cluster,还是 memcached,或者是公司自研缓存

2021-02-24 16:01:38 314

原创 高并发下系统如何保持稳定?

背景情况:线上一个系统,在某次高峰期间 MQ 中间件故障的情况下,触发了降级机制,结果降级机制触发之后运行了一小会儿,突然系统就完全卡死,无法响应任何请求这个系统简单来说就是有一个非常核心的行为,就是往 MQ 里写入数据,但是这个往 MQ 里写入的数据是非常核心及关键的,绝对不容许有丢失,所以设计了一个降级机制,如果一旦 MQ 中间件故障,那么这个系统立马就会把核心数据写入本地磁盘文件,但是如果说在高峰期并发量比较高的情况下,接收到一条数据立马同步写本地磁盘文件,这个性能绝对是极其差的,会导致系统自身的

2021-02-24 15:05:33 675

原创 Java 并发之 谈谈你对AQS的理解

ReentrantLock 和 AQS 的关系如果用 java 并发包下的 ReentrantLock 来加锁和释放锁,是什么样的感觉?上面那段代码不难理解,无非就是搞一个 Lock 对象,然后加锁和释放锁这个跟 AQS 有啥关系?因为 java 并发包下很多 API 都是基于 AQS 来实现的加锁和释放锁等功能的,AQS 是 java 并发包的基础类,举个例子,比如说 ReentrantLock、ReentrantReadWriteLock 底层都是基于 AQS 来实现的AQS 的

2021-02-24 14:32:07 323 1

原创 Java 并发之 Java 8 如何优化 CAS 性能?

假设多个线程需要对一个变量不停的累加 1,比如说下面这段代码上面那段代码是有问题的,因为多个线程直接这样并发的对一个 data 变量进行修改,是线程不安全性的行为,会导致 data 值的变化不遵照预期的值来改变举个例子,比如说 20 个线程分别对 data 执行一次 data++ 操作,我们以为最后 data 的值会变成 20,其实不是,最后可能 data 的值是 18,或者是 19,都有可能,因为多线程并发操作下,就是会有这种安全问题,导致数据结果不准确初步解决方案:synchron.

2021-02-24 11:37:25 171

原创 Java并发之 volatile 到底是什么?

首先,给大家上一张图,咱们来一起看看如上图,这张图说的是 java 内存模型中,每个线程有自己的工作内存,同时还有一个共享的主内存举个例子,比如说有两个线程,他们的代码里都需要读取 data 这个变量的值,那么他们都会从主内存里加载 data 变量的值到自己的工作内存,然后才可以使用那个值,从图里看到,每个线程都把 data 这个变量的副本加载到了自己的工作内存里了,所以每个线程都可以读到 data = 0 这个值,这样,在线程代码运行的过程中,对 data 的值都可以直接从工作内存里加载了,不

2021-02-24 10:32:41 79 1

原创 团队管理之—— 追过程:如何用 PDCA(Plan、Do、Check、Action) 做过程管理?

如果已经知道了怎么定目标,那么接下来要解决的问题就是“怎么达成目标”。在刚开始做管理时,往往在做一个任务或项目的过程中都是靠经验或者直觉去把控整个过程比如技术类的重构项目,诉求并不是直接来源于业务,所以也就没有业务节奏的影响,往往是技术团队基于技术规划(比如提高代码质量,引入新技术、新框架提升整个系统)自发地做一些调整。如果项目较小( 1~2 周),你凭借个人经验和直觉可能会顺利完成,但项目规模较大时,结果就未必可控,有可能往坏的方向发展,比如范围越做越大, 本来想解决一个问题,但是在项目过程中,

2021-02-23 16:44:25 6803

原创 团队管理之—— 定目标:让你的方向与公司的方向保持一致

观察过很多刚开始做技术 Leader 的人,有一些因为技术扎实、为人友善、熟悉系统与业务等原因成为团队 Leader,但是角色转变后被各种产品需求会、技术方案会、汇报会搞得焦头烂额,然后还要安排团队成员的工作,协调跨部门协作的事务,失去了 Coding 的“硬核时间”,忙得晕头转向,能力不但没得到提升,最终交付的项目也没有得到老板的肯定本来,在没有介入管理职能之前,每个人管理好自己就可以了,需要考虑的都是围绕自己的事情,方向和维度都比较垂直。角色转变后,从解决自己的问题变为要解决团队的问题,要解决的问题

2021-02-23 15:10:09 4153

原创 团队管理之—— 架构设计:治理好系统复杂度才最务实

在接触分布式开发之后,才对“架构”有了概念,从三高(高可用、高性能、高可扩展)到 DevOps(集群、网关、复杂均衡等),从系统的功能模块设计到微服务的业务建模、领域设计。很长的时间里,架构好似包罗万象,可以装进与技术相关的所有内容,给人的感觉就是想做好架构就要无所不精无所不通但在真实的工作场景中,你不可能擅长所有技术,而且由于分工问题和精力有限,我们也不会所有事情一手抓,因为容易一地鸡毛,错失重点那围绕架构你的工作重点是什么呢?在我看来,就是系统复杂度的治理。因为像功能实现、性能优化、稳定性等方面

2021-02-23 14:46:39 1085 1

原创 业务理解:深入业务是做好架构的前提

其实对任何一个技术人来讲,“架构设计与系统演进”都不是陌生的话题,早些年“架构”还是一个有身份、充满力量的词,很多人不敢张嘴闭嘴谈“架构”,但最近几年这个词变得愈发平常,与架构有关的各类书籍、文章层出不穷,而很多文章里都会有这样一个观点:架构要结合具体的业务场景来设计。“结合业务场景”听起来应该是一件容易的事儿,但据观察,在自己负责的领域里真正深刻理解业务的技术人凤毛麟角为什么技术要理解业务?产品需求不等于业务诉求日常工作中,往往产品提出要实现的系统功能未必等于业务想要解决的问题,但是有了.

2021-02-23 11:21:29 2578

空空如也

空空如也

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

TA关注的人

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