自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

肖朋伟

Stay hungry,stay foolish!

  • 博客(345)
  • 资源 (23)
  • 收藏
  • 关注

原创 若依vue版菜单点不开 Error: Cannot find module ‘@/views/system/user/index‘

若依 vue 版菜单点不开,报错:Error: Cannot find module ‘@/views/system/user/index’问题描述今天运行后端哥哥都爱的若依项目:RuoYi-Vue 的时候,发现可以正常启动,但是左侧菜单点不开,一直在加载中。然后 F12 一看控制台一顿输出:Error: Cannot find module '@/views/system/user/index' at webpackEmptyContext (index.js:39) at per

2021-12-05 13:45:15 18843 6

原创 Support for password authentication was removed on August 13, 2021. Please use a personal access tok

简介换了电脑,正在准备愉快的编程(copy),使用 git clone 时,提示:Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.原因是,github 密码验证于 2021 年 8 月 13 日不再支持。解决方式一:生成 token打开 Github 【Settings】 -> 【Developer settings】

2021-12-04 15:46:46 6259

原创 Macbook M1 开发环境快速配置

前言Macbook M1 下载软件,常用工具都会有 M1 芯片的适配版本,才能更好的发挥它滴性能,选择版本时认准: M1、arm64、Apple Silicon 即可起飞!安装操作比 windows 简单些,如果出现 dragto,或者要安装的程序和 app store 同时出现,需要把程序拖拽到后面 app store 图标上。使用 dmg 镜像压缩文件安装,也不需要配置 jdk 环境变量等。常用软件1、Google Chrome 浏览器下载地址:https://www.google.com/i

2021-11-27 17:04:08 3033 1

原创 解决 Google chrome 浏览器提示【证书无效】问题

问题描述一些比较旧的系统,安装 chrome 浏览器,在访问某些网址时会显示网址不安全,查看后提示网络 【证书无效】,页面无法正常加载。解决方法1、桌面找到 Chome 浏览器图标,右键,选择属性2、在’‘目标’’,引号后面加一个空格,后面再添加--ignore-certificate-errors --allow-running-insecure-content 3、重启浏览器即可...

2021-11-02 12:21:29 32446 3

原创 Spring AOP 切点 Pointcut 表达式介绍与使用

一、前言面向切面编程 AOP 是一种常见的编程思想,是面向对象编程的一种补充,AOP 框架通过修改源代码,将处理逻辑编织到指定的业务模块中常见的处理比如:在方执行法前进行校验,在方法执行后进行日志的记录,事务管理,消息通知,业务监控等。本篇主要介绍 Aspectj 通过注解配置,切点表达式的书写二、AOP 术语说明通知 (Advice): AOP 框架中的增强处理。通知描述了切面何时执行以及如何执行增强处理。通知的类型有:后置通知、返回通知、异常通知、环绕通知、前置通知。连接点 (Joint P

2021-06-06 14:26:07 3026 6

原创 接口多实现类动态调用的两种方式

接口多实现类动态调用的两种方式本篇内容: 一个接口在不同场景,需要有不同的实现类,实现动态调用模拟场景: 学生、教师部分在中国,部分在泰国,处理方式需要区分,接口国际化支持会传入一个来源,根据来源区分服务实现。代码库:https://github.com/xpwi/springboot-multi-example方式一:利用 @Autowired 把多实现类注入到一个 Map利用 @Autowired 注解,可以把同一接口的实现类,注入到集合类型中,比如 List,Map,这里使用 Map 介

2020-12-06 15:17:48 7102 4

原创 Lambda、函数式接口、Stream - 从入门到入坑

声明:本文学习自《精通Lambda表达式:Java多核编程》,以及其他网路资源,如有,会将参考原文链接附在最后,未经允许,不可转载,如有错误,也请指点。(1)为什么要用 lambda?(1)Lambda 允许把函数作为一个方法的参数(2)Lambda 表达式可以使代码变的更加简洁紧凑(2)Lambda 重要特征可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。可选的大括号:如果主体包含了一个语句,就不需要使用大括号

2020-08-22 23:29:03 1553

原创 Springboot 使用 Shiro 模板引擎时使用 swagger-ui 时的问题

先不管为啥技术栈混乱,遇到问题了描述一下,Shiro解决方案添加路径处理器,当一个 swagger-ui.html 请求过来,既要经过权限认证,是不是模板引擎的模板,是不是静态资源的重重处理,服务器也不知道它要要干啥了。最开始我在网上搜索的文章,几乎都是说,通过@Configurationpublic class WebMvcConfig implements WebMvcConfigu...

2020-03-13 23:02:26 2840

原创 HTML 页面跳转时传递参数(jquery.params.js)

HTML 页面跳转时传递参数(jquery.params.js)描述:在 HTML 页面跳转时,通过 URL 传递参数一、引入在解析参数页面的 JS 中引入:jquery.params.js(代码贴在本文后面)/** 需要先引入 jquery*/<script type="text/javascript" src="/***/jquery/jquery-3.3.1.min.js...

2020-02-16 19:59:18 6955 2

原创 MySQL 中 TIMESTAMP 类型返回日期时间数据中带有 T

MySQL 中 TIMESTAMP 类型返回日期时间数据中带有 T一、场景描述:MySQL 中使用 TIMESTAMP 类型实体类使用 java.util.Date 类型返回 JSON 数据:二、通过注解格式化(方法一)可以在日期类型属性上,或者 GET 方法加上 Jackson 的 @JsonFormat 注解方式来格式化,例如:@JsonFormat(pattern = "...

2020-02-16 16:53:25 12490 6

原创 告别吧 - 单链表反转(Java 实现)

告别吧 - 单链表反转(Java 实现)若有不足,还望指正,一、递归实现帮助理解:编写递归代码时最重要的有以下三点 : —— 摘自《算法 4》(1)递归总有一个最简单的情况,即方法的第一条语句总是一个包含 return 的条件语句。(2)递归调用总是去尝试解决一个规模更小的子问题,这样递归才能收敛到最简单的情况。含有某个参数一直在缩小。(3)递归调用的父问题和尝试解决的子问题之间不应...

2019-08-28 00:10:58 1948

原创 CentOS7 下 Redis 的安装、配置、启动、关闭、开启远程连接

CentOS7 下 Redis 的安装、配置、启动、关闭redis 官网:https://redis.io/download操作步骤官网给了最简单的安装方式,emmm,太简单了,简单的不敢相信,我们还是走复杂的提示:输入名称时,建议使用 Tab 键补全,又快又爽。使用 ls 随时查看目录下的文件列表先安装 gcc:yum install gcc -y(1)下载cd 进到一个目...

2019-08-26 12:53:15 2031

原创 Ubuntu 18 boot 分区空间不足-解决方法

Ubuntu 18 boot 分区空间不足-解决方法直接进入 boot 下可以看到会有多个版本的文件,这是更新后没有删除(1)为了稳妥,先查看自己当前使用的版本,使用uname -r(2)然后准备删除其他低版本(3)先查看都安装了那些版本,使用: dpkg --get-selections | grep linux(4)删除制定版本内容,例如:sudo apt-get purg...

2019-08-24 16:07:05 2685 3

原创 Ubuntu 18 搜狗输入法 - 输入汉字时候选栏乱码问题

Ubuntu 18 搜狗输入法 - 输入汉字时候选栏乱码问题打开中终端(1)如果是刚装完搜狗输入法,可尝试修复,输入命令:sudo apt-get install -f进行检查,判断是否缺少依赖项,或者安装包出错,出错会重新安装更多:sudo apt-get -f install 修复损坏的软件包,尝试卸载出错的包,重新安装正确版本的。-f 是 参数放在 install 前面跟后面效果...

2019-08-19 09:06:19 2837 1

原创 为什么重写 equals() 要重写 hashCode()? hashCode 值相等,两个对象不一定相等?

为什么重写 equals() 要重写 hashCode()? hashCode 值相等,两个对象不一定相等?hashCode 方法,如果不重写的话,返回的实际上是该对象在 jvm 的堆上的地址,而不同对象的地址肯定不同,所以这个 hashCode 也就肯定不同了。如果重写了的话,由于采用的算法的问题,有可能导致两个不同对象的 hashCode 相同。equals 方法,如果不重写的话,是严格...

2019-08-17 22:31:11 1721

原创 为什么包装类型间的相等判断应该用 equals

为什么包装类型间的相等判断应该用 equals大家都知道 java 中 == 和 equal 的区别, == 操作比较的是两个变量的值,对于引用型变量是判断变量是否指向同一引用对象,比地址。equals 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。引用类型用 == 的示例:public static void main(String[] args) { Inte...

2019-08-17 13:00:38 3667 1

原创 金额工具类

金额工具类import java.math.BigDecimal;import java.text.DecimalFormat;/** * <p> * * @author coder * @since 2019-08-17 */public class AmountUtil { public static DecimalFormat fnum = new ...

2019-08-17 11:03:26 1625 1

原创 不能使用 float 和 double 来表示金额等精确的值

不能使用 float 和 double 来表示金额等精确的值关于面试,金额用什么数据类型?不是 doube,更不是 float ,而是用 BigDecimal。对于金融项目,对于金额,误差是不能容忍的。那么用什么数据类型才能精确的表示金额?JDK 提供了一个 java.math.BigDecimal 的类,这个类可以表示任意精度的数字。Java 中 float 的精度为 6-7 位有效数字。...

2019-08-17 11:02:54 11768 22

原创 浮点数为什么不精确

浮点数为什么不精确?其实这句话本身就不精确, 相对精确一点的说法是: 我们在程序里写的 10 进制小数,计算机内部无法用二进制的小数来精确的表达。因为二进制只能表示 2 的 n 次方的数,n 可以取负值,3.3 无法用 2 的 n 次方的数组合计算出来,所以无法精确表示:3.3 = 1*2+1*1+0*1/2+1*1/4+0*1/8+0*1/16+1*1/32+…(解释:2+1=3,3+1...

2019-08-17 01:52:13 4730 14

原创 JVM 字节码指令手册 - 查看 Java 字节码

JVM 字节码指令手册 - 查看 Java 字节码jdk 进行的编译生成的 .class 是 16 进制数据文件,不利于学习分析。通过下命令javap -c Demo.class > Demo.txt或者其他方式可反汇编,得到字节码文件一、JVM 指令分类(1)操作数栈过程符号变量到操作数栈iload, iload_, lload, lload_, ...

2019-08-15 21:26:27 4538 4

原创 手写 Spring - 详细思路与实践

手写 Spring - 详细思路与实践之前的一篇 手写 Spring,这样的文章很多,到处都是,要说真的能简单手写出 Spring MVC 其实不多,因为要理解,记忆,实践才能掌握,这不是一篇博客就能实现的,可能需要两篇。。再说面试的时候,要不要说呢,自己还没底。。自定义命名部分为加 X- 前缀,请自行理解一、必背思路框架1、创建项目,准备 Jar 包2、properties 和 web....

2019-08-13 23:09:53 4104 3

原创 最常见的 Git 错误及解决方法

最常见的 Git 错误及解决方法经常用 Git,哪能不出错。1、修改最后一次提交消息 - 提交消息写错了解决方法:git commit --amend该命令将打开编辑器,并允许更改最后一次提交消息。(按 i 进行编辑,编辑后,按 ESC,如果保存退出使用 :wq,只退出输入 :q,如果出错,退出不保存使用 :qa!)拼写错误的分支名假设已经是下午三点了,但是你还没有吃午饭。饥肠辘...

2019-08-10 17:22:23 1309 1

原创 Grub2 开机系统选择界面美化 - 主题修改

Grub2 开机系统选择界面美化 - 主题修改

2019-08-10 14:39:56 7927 1

原创 Ubuntu 18 系统时间问题 - 解决其使用 BIOS 时间,不联网同步

Ubuntu 18 系统时间问题 - 解决其使用 BIOS 时间,不联网同步Ubuntu 18 系统时间不对,会遇到很多问题,问题描述:Ubuntu 18 系统时间不对,大概差 8 个小时,因为在 BIOS 中的时间就是当前时间。解决方法:Ubuntu 系统下,在命令提示符输入:sudo timedatectl set-local-rtc 1更新时间sudo apt-get in...

2019-08-10 11:47:02 4289

原创 Ubuntu 18 使用命令卸载软件

Ubuntu 18 使用命令卸载软件先看一下看装了哪些软件列出所有软件,找出需要删除的软件的全称sudo dpkg --list例如:然后使用命令删除sudo apt-get --purge remove 名称(提示名称可以不用手动全输入,可以输开头一部分,按 Tab 键可以补全,以及按两下提示有哪些可能)例如:...

2019-08-06 23:23:18 7787

原创 You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).Please, commit your changes

Git 报错在 IDEA 中使用 Git 报错:You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).Please, commit your changes我使用 git status 命令查看当前状态,也没看出什么问题,解决方法使用命令放弃 git cherry-pick 变更git cherry-pi...

2019-08-06 18:58:25 33307 2

原创 在 ubuntu 18 中为 navicat 创建快捷方式

在 ubuntu 中为 navicat 创建快捷方式参考原文:查看连接问题:在 ubuntu 中,解压 navicat 并不会生成快捷方式,每次运行都需要进入软件解压的目录,然后运行命令开启navicat,十分不便.今天尝试引入快捷方式,直接双击运行,感觉挺不错.首先下载一个合适的 png 文件,用作快捷方式的图表,一般要求是png格式.这是我下载的图标链接,将其置于软件所在的路径下,并重...

2019-08-04 20:12:39 1172 3

原创 ubuntu 18 安装 navicat Premium 中文乱码(很彻底)

ubuntu 安装 navicat Premium 数据库值中文乱码本来以为连接时,字符集不对,用 Auto,UTF8 都不行,后台了解到是软件的问题。解决方法:找到启动脚本,就是它。在根目录:用 vim 编辑器打开,将 LANG 修改为:zh_CN.UTF-8效果:...

2019-08-04 15:02:17 1405 1

原创 ubuntu 18 解锁文件目录(谨慎操作)

ubuntu 解锁文件目录ubuntu 中一些文件目录是锁定的可以打开,但是不能向里面家东西,emmm使用命令:sudo chown xiaopengwei 目录名/ -R提示:将 xiaopengwei 替换为自己的用户名,就是 @ 前面的...

2019-08-04 14:32:03 1094 1

原创 svn 必须会敲的常用命令

1、svn help:可以通过该命令查看 svn 的所有操作命令,包括命令的缩写2、首先需要从 svn 库中 checkout 对应的项目:(1)svn 项目路径为 svn://192.168.1.1/myproject/doc,将项目路径下的文件checkout到/home/test目录下,若没有/home/test路径会自动创建,同时只将doc中的子目录和文件checkout到该路径。s...

2019-08-04 12:47:09 1387

原创 ubuntu 18 自带截图工具 - 快捷键

ubuntu 自带截图工具 - 快捷键默认:快捷键作用PrtSc获取整个屏幕的截图并保存到 Pictures 目录Shift + PrtSc获取屏幕的某个区域截图并保存到 Pictures 目录。Alt + PrtSc获取当前窗口的截图并保存到 Pictures 目录。Ctrl + PrtSc获取整个屏幕的截图并存放到剪贴板。Shift + ...

2019-08-04 12:45:47 1534 1

原创 写给自己 - 开发路上

今天来写一下开发过程中的感受。1.不要以为自己测试完,没问题,就完事了。有的时候自己测试和用户使用时看待问题的角度是不同的。也可能自己写的时候根本就没有明白业务逻辑,不明白需求。2.整理思路的时间应该大于开发的时间。之前有工作几年的领导说过这句话。当时只是觉得有道理,其实没有真正的明白。也就像现在我写在这个,别人看了也不一定明白。整理思路绝不只是自己设计自己的程序。而是一个不断交流,先整体...

2019-07-26 21:18:41 1228 1

原创 Git 删除已经 Push 的远程文件夹或文件的命令方法

Git 删除已经 Push 的远程文件夹或文件的命令方法使用场景:由于给本地项目配置远程库,误提交很多不应该提交的文件或文件夹,比如 .idea .settings .project .iml 以及日志等文件。以及由于 .gitignore 文件配置不正确很有可能导致某些不需要的目录上传到 git 远程仓库上了。除了注意配置 .gitignore 文件外,以下是解决办法。示例:比如需要...

2019-07-23 22:32:07 6533 2

原创 MyBatis: Invalid bound statement (not found) 错误的可能原因

MyBatis: Invalid bound statement (not found)错误的可能原因其他原因导致此问题解决参考:1.检查 xml 文件所在 package 名称是否和 Mapper interface 所在的包名一致<mapper namespace="com.xiaopengwei.mapper.UserInfoMapper">mapper 的 names...

2019-07-22 12:22:40 4342

原创 Oracle:ORA-01219:database not open:queries allowed on fixed tables/views only

Oracle:ORA-01219:database not open:queries allowed on fixed tables/views only问:解决 ORA-01219:database not open:queries allowed on fixed tables/views only 需要几步?答:4 步第一步:打开 SQL Plus 连接数据库;第二步:尝试执行:...

2019-07-22 00:11:09 5388

原创 Oracle 在 Drop 表时的 Cascade Constraints

Oracle 在 Drop 表时的 Cascade Constraints在 Oracle 使用 Drop 语句时,例如:drop table CUSTOMER_INFO cascade constraints;在删除主键约束时:使用 cascade 关键字,可以删除参照该列的那些外键和使用 on delete cascade 关键字来级联删除参照该关键字的数据。使用 casc...

2019-07-21 21:37:01 10756

原创 手写 Spring MVC

手写 Spring不多说,简历装 X 必备。不过练好还是需要求一定的思维能力。一、整体思路思路要熟练背下来1)配置阶段配置 web.xml: XDispatchServlet设定 init-param: contextConfigLocation = classpath:application.xml设定 url-pattern: /*配置 Annotation: @XContr...

2019-07-20 20:11:00 50887 72

原创 8080 端口被占用的解决方法 netstat -ano;taskkill (命令行)

8080 端口被占用的解决方法 netstat -ano;taskkill (命令行)(ano 和 aon 都可以)打开命令行:(1)netstat -ano 可查看端口使用情况,记住 PIDnetstat -ano(2)也可以直接查看指定端口占用情况,记住 PIDnetstat -ano|findstr 8080(3)杀死进程(例如 PID 是:14732)taskkil...

2019-07-20 16:31:58 2960

原创 Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IP

Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IPIP 工具类源代码:/** * <p> * * @author XiaoPengwei * @since 2019-07-20 */import java.net.Inet4Address;import java.net.InetAddress;import java....

2019-07-20 15:16:36 1599

原创 Idea 获取 git 仓库时更新类型update type 的选择

Idea获取git仓库时更新类型update type 的选择各选项代表内容:注意:Update Type 选择Merge:结果与运行 git fetch ; git merge 或 结果相同 git pull。Rebase:结果与运行 git fetch ; git rebase 或 结果相同 git pull --rebase。Branch Default:此选项用于选...

2019-07-15 15:47:42 14632 2

jsp-cookie-session-crud 使用 JSP 实现cookie session验证及增删改查

我的首页:https://xiaopengwei.com 本资源内容 jsp-cookie-session-crud 使用 JSP 实现cookie session验证及增删改查

2019-04-11

使用 Spring MVC 读取用户信息、筛选字段

使用 Spring MVC 读取用户信息、筛选字段,图文及演示教程:https://blog.csdn.net/qq_40147863/article/details/85913973

2019-01-13

前期项目 Spring+Spring MVC+JDBC Template 增删改查

前期项目 Spring+Spring MVC+JDBC Template 增删改查,包含建库,前端加后台

2019-01-12

使用 Spring MVC + JDBC Template 实现筛选、检索功能(maven)

使用 Spring MVC + JDBC Template 实现筛选、检索功能(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/86187642

2019-01-09

使用 sessionStorage 存储数据、js 图片验证码、登录加载动画

使用 sessionStorage 存储数据、js 图片验证码、登录加载动画,图文教程地址:https://blog.csdn.net/qq_40147863/article/details/86146534

2019-01-09

使用 Spring MVC + JDBC Template 实现登录(maven)

使用 Spring MVC + JDBC Template 实现登录(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/86084761

2019-01-08

使用 Spring JDBC Template 对数据库查询(登录)和删除(maven)

使用 Spring JDBC Template 对数据库查询(登录)和删除(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/86015509

2019-01-08

使用 jQuery Ajax 异步登录,并验证用户输入信息(maven)

使用 jQuery Ajax 异步登录,并验证用户输入信息(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/85999375

2019-01-07

mybatis-generator 自动生成的 demo

mybatis-generator 自动生成的 demo,建库加图文教程,请查看:https://blog.csdn.net/qq_40147863/article/details/85886166

2019-01-06

从 MySQL 建库到 登录验证数据库信息(maven)

IDEA 项目,从 MySQL 建库到 登录验证数据库信息(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/85807384

2019-01-04

AOMEI 分区助手破解版(解压使用,多软件)

分区助手破解版(解压使用,多软件),注意:不含AOMEI Dynamic Disk Manager Pro 1.2,需要它请下载:https://download.csdn.net/download/qq_40147863/10856485

2018-12-17

MUI 使用原生底部栏(中间凸起图片)

MUI 使用原生底部栏(中间凸起图片)

2018-11-06

自动操作鼠标点击自动操作鼠标点击工具工具

自动操作鼠标点击工具,一个通过操作鼠标,来实现重复操作自动化的工具,不会用请在博客私信

2018-10-18

MyEclipse2018.8.0 破解工具

MyEclipse2018 ci 破解工具,破解后显示Product Activated,可用到2021年10月,图文教程请参考:https://blog.csdn.net/qq_40147863/article/details/83017723,其他教程基本都是只可用5天,请自行鉴别

2018-10-17

AppManage.apk

AppManage.apk,用户获取 app 的包名和签名的工具,操作简单

2018-09-28

template-web.js

art-template 的 template-web.js 文件,如果官网不能下载,就下载这个,拷贝就可使用

2018-09-26

黑客攻防-请看介绍

内容: 1.必须掌握的基础知识 2.局域网攻防 3.Windows系统漏洞攻防 4.提升系统安全性能 没有下载劵联系QQ:1370911284

2018-09-14

DOS批处理简明高级教程

预览:https://blog.csdn.net/qq_40147863/article/details/82696020 因为本教程可深度学习也可简明学习,所以比较长,但是本教程也适合做为开发人员的查阅书籍,有丰富的案例代码 例: @echo off if /i a == A (echo 我们相等) ELSE echo 我们不相等 pause 加上/I 不区分大小写就相等了!

2018-09-13

oracle 常用命令大全

oracle 常用命令大全 oracle dba 常用命令 1 运行 SQLPLUS 工具 sqlplus 2 以 OS 的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入 SQLPLUS 命令提示符 sqlplus /nolog 5 在命令提示符以 OS 身份连接 connect / as sysdba 6 以 SYSTEM 的身份连接 connect system/xxxxxxx@服务名 7 显示当然用户有哪些表 select * from tab; 8 显示有用户名和帐户的状态 select username,account_status from dba_users; 9 将 SCOTT 帐号解锁(加锁) alter user scott account unlock(lock);

2018-09-05

架构之美(清晰中文完整版).pdf

软件设计架构,本书作者们在介绍软件架构的基本实践方面得心应手,他们也同样介绍了各式各样的现代系统,我特别喜欢他们谈及架构的广泛性,从Emacs到Facebook,从非常正式的系统到非常有灵气的系统。简而言之,本书对软件架构的艺术,科学和实践做出了非常及时和有益的贡献 ----Grady Booch, IBM院士

2018-08-14

空空如也

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

TA关注的人

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