自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

读万卷书,行万里路

deniro's thinking

原创 IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)

因为觉得网络上的 idea 快捷键不够详尽,所以特别编写了此篇文章,方便大家使用 idea O(∩_∩)O~ 其中的英文说明来自于 idea 的官网资料,中文说明主要来自于自己的领会和理解,英文说明只是作为参考。重要的快捷键会附带图示,进行详细的说明。 每一部分会先列出所有的快捷键说明表,如果...

2017-06-07 18:04:54 46715 35

原创 vi 与 vim 快捷按键说明大全

一般指令模式、一般指令模式切换到编辑模式、一般指令模式切换到指令列模式、vim 特有功能

2016-12-30 17:34:53 7866 0

原创 说说 JavaScript 中的冒泡与捕获过程

W3C 规范中定义了3个事件阶段,依次是捕获阶段 、 目标阶段 、 冒泡阶段。先捕获,后冒泡,捕获从上到下,就像石沉大海;而冒泡从下到上就像气泡冒出水面。 先看个示例: html 页面: <!DOCTYPE html> <html lang="en"> ...

2020-05-31 16:06:31 18 0

原创 系统架构设计笔记(35)—— 结构化分析与设计

结构化分析与设计方法是一种面向数据流的需求分析和设计方法,它适用于分析和设计大型数据处理系统,是一种简单 、 实用的方法,曾获得广泛的应用。 1 结构化分析 结构化分析方法的基本思想是自顶向下逐层分解。分解和抽象是人们控制问题复杂性的两种基本手段。对于一个复杂的问题,人们很难一下子考虑问题的所有方...

2020-05-31 15:19:48 281 0

原创 系统架构设计笔记(34)—— 需求分析与软件设计

需求分析是软件生命周期中相当重要的一个阶段。根据 Standish Group 对 23000 个项目进行的研究结果表明, 28% 的项目彻底失败, 46% 的项目超出经费预算或者超出工期,只有约 26% 的项目获得成功。需求分析工作在整个软件开发生命周期中有着十分重要的意义。而在这些高达 74%...

2020-05-30 11:15:24 535 0

原创 系统架构设计笔记(33)—— 定义系统问题与归结模型

软件系统的目的是为了解决问题,因此在建模之初最重要的步骤是对问题的分析与定义,并在此基础上归结模型,这样才能够获得切实有效的模型。定义问题的过程包括:理解真实世界中的问题和用户的需要,并提出满足这些需要的解决方案的过程。 1 问题分析 问题分析的目标就是在开发之前对要解决的问题有一个更透彻的理解。...

2020-05-30 11:13:28 320 0

原创 说说如何使用 Python 发送电子邮件

使用 Python 的 smtplib 模块,就可以实现发送邮件。 1 电子邮件服务器 如果是网易 163 邮箱,我们可以在浏览器中登陆 https://mail.163.com/ 邮箱后,依次点击 设置 → POP3/SMTP/IMAP ,进入服务器设置页: 进入服务器设置页后,确保开启 SM...

2020-05-30 10:32:11 71 0

原创 说说 JavaScript 中的 “!!” 语法

JavaScript 中的 ! 会将变量转换成 boolean 类型,而 null、undefined 和空字符串会被转换为 false,其它转换为 true。 console.log(!null);//true console.log(!undefined);//true console.lo...

2020-05-24 15:23:10 19 0

原创 系统架构设计笔记(32)—— 新旧系统的分析和比较

计算机技术飞速发展,日新月异,许多企业因为业务发展的需要和市场竞争的压力,需要建设新的企业信息系统。在这种升级改造的过程中,怎么处理和利用那些历史遗留下来的老系统,成为影响新系统建设成败和开发效率的关键因素之一。通常称这些老系统为遗留系统。 目前,学术和工业界对遗留系统的定义没有统一的意见 。Be...

2020-05-24 14:58:18 568 0

原创 系统架构设计笔记(31)—— 系统方案的制订和改进

通过在问题定义和归结模型阶段的工作,已经分析并定义了与系统开发目标相关的各种模型 、 分析出了系统的功能清单 、 性能要求等,解释了 “ 系统目标是什么 ” 的问题。在系统方案阶段,主要完成的工作则是解释 “ 系统如何实现 ” 的问题。 系统方案制订的最主要内容,包括以下几个方面。 1 确定软件架...

2020-05-24 14:54:51 79 0

原创 系统架构设计笔记(30)—— 可行性研究与效益分析

在项目计划和选择的过程中,需要完成的首要目标是对项目进行估算。项目估算的范围涉及方方面面,例如项目或产品开发的范围 、 投入和回报 、 项目风险 、 作用和意义等。在传统软件工程方法中,是以可行性研究的方式来组织项目的主要估算内容。 可行性研究的范围可能复盖技术 、 经济 、 执行 、 环境等各种...

2020-05-24 14:52:38 181 0

原创 说说 Docker 的三大核心概念

Docker 包括三大核心概念:镜像(Image)、容器(Container)和仓库(Repository)。 (1)镜像 镜像类似于虚拟机镜像,可以把它理解为一个只读的模板。例如,一个包含 Nginx 应用程序的镜像,其内部包含一个基本的操作系统环境以及 Nginx 应用程序 。 镜像是创建 D...

2020-05-17 17:25:59 44 0

原创 系统架构设计笔记(29)—— 项目的选择与提出

组织在信息化的过程中,可能基于各种动机提出系统项目的建设,有关人员要根据这些动机,提出和确定信息系统的工作范围,确定项目立项,提出系统选择方案,给出选择结果。 1 项目的立项目标和动机 企事业单位在其自身的经营管理过程中,对于项目的立项建设可能具有多种动机,通常可归结为下列几种。 (1)进行基础研...

2020-05-17 14:22:45 959 0

原创 说说 Docker 容器技术与虚拟化技术之间的关系

1 虚拟化技术分类 在计算机技术中,虚拟化 (virtualization) 是一种资源管理技术,是将计算机的各种实体资源,如服务器 、 网络 、 内存及存储等,予以抽象 、 转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用比原本的组态更好的方式来应用这些资源。因此,虚拟化的核心是对资...

2020-05-17 11:23:55 196 0

原创 系统架构设计笔记(28)—— 软件重用与基于架构的软件设计

1 软件重用 软件重用技术是一种重要的软件开发方法,虽然至今软件重用技术还不够成熟,离理想中的软件工厂还有很长的路要走,但现有的一些重用技术(例如,中间件 、 应用服务器等)已经改变了开发过程。 1.1 软件重用形式 软件产品与其他的产品不同,是抽象的,一旦产生就可以无限制地复制,因此重复利用软件...

2020-05-16 16:42:08 245 0

原创 系统架构设计笔记(27)—— 敏捷方法

2001 年 2 月,在美国的犹他州, 17 位“无政府主义者”共同发表了《敏捷软件开发宣言》,在宣言中指出: 尽早地、持续地向客户交付有价值的软件对开发人员来说是最重要的。 拥抱变化,即使在开发的后期。敏捷过程能够驾驭变化,保持客户的竞争力。 经常交付可工作的软件,从几周到几个月,时间范围越小...

2020-05-10 15:27:52 1109 0

原创 探索 Java 注解

Java 注解让我们可以在代码中添加信息元数据,这样这些元数据就可以实现与源代码放在一处管理与维护,而且还可以表述程序所需的信息。 1 标准注解 Java 定义了 5 种标准注解,具体说明如下: 注解 JDK 版本 说明 @Override JDK5 表示当前定义的方法将覆盖基类定...

2020-05-10 11:13:43 37 0

原创 系统架构设计笔记(26)—— 软件迭代统一过程

统一过程( Unified Process , UP )是由 Rational 公司开发的一种迭代的软件过程,是一个优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效地降低软件开发过程的风险,经过裁剪的 UP 可以适应各种规模的团队和系统。 1 UP 的二维模型 UP 是一个很有特色的模...

2020-05-05 14:47:26 314 0

原创 系统架构设计笔记(25)—— 软件生命周期与开发模型

1 软件生命周期 软件生命周期也就是软件生存的周期。同万物一样,软件也有诞生和消亡,软件生命周期就是指软件自开始构思与研发到不再使用而消亡的过程。有关软件生命周期的阶段划分,不同的标准有不同的规定。在 GB8566-88 ( 《 软件工程国家标准 —— 计算机软件开发规范 》 )中将软件生命周期...

2020-05-05 14:25:42 196 0

原创 说说在 IDEA 中如何使用 DevTools 与 LiveReload 实现热部署(包括代码与静态资源)

1 配置 Intellij IDEA 首先在 Intellij IDEA 中,开启项目自动构建选项: 然后打开 Maintenance 选项卡,快捷键为 Ctrl + Alt + Shift + /: 输入快捷键后,选择 Registry,进入注册表,找到 compiler.automa...

2020-05-04 11:03:43 41 0

原创 说说 Spring Boot 项目引导与测试原理

1 引导项目 因为 Spring Boot 项目会以可执行 JAR 文件的形式来运行,所以 Spring Boot 项目会定义一个主类,主类中提供 main 方法,它会在 JAR 运行时被执行。这个主类以注解的形式绑定 Spring 框架,完成 Spring 基础配置。 import org.s...

2020-05-04 08:53:23 43 0

原创 系统架构设计笔记(24)—— 系统性能评估

性能评估是对一个系统进行各项检测,并形成一份直观的文档,因此性能评估是通过各项测试来完成的。评估的一个目的是为性能的优化提供参考,而性能优化涉及的面很广,也很复杂,而且永无止境。对于不同的应用程序,优化的方法会有一些区别。 1 基准测试程序 把应用程序中用得最多 、 最频繁的那部分核心程序作为评价...

2020-05-03 15:53:36 269 0

原创 系统架构设计笔记(23)—— 系统性能计算与设计

1 系统性能计算 随着计算机系统复杂度的不断增长,性能指标也在不断地增长,这也增加了衡量计算机系统性能的难度。如何在众多指标中选取合适的性能指标,以及选择何种衡量方法都成为一项重要的课题,因此也衍生了各种性能评估体系。这里主要介绍一些常用性能指标的计算方法。 在实际应用时,往往是对这些常用性能指标...

2020-05-03 15:20:04 209 0

原创 说说使用 Spring Initializr 构建 Maven 项目的原理

Spring Initializr 实际上是一个提供 REST API 服务的 Web 应用,使用它我们能够生成一个基于 Spring 框架的项目结构骨架。还可以利用它添加我们所需要的组件或第三方框架依赖库。比如在下图中就可以选择所需要的依赖库: [外链图片转存失败,源站可能有防盗链机制,建议将图...

2020-05-03 09:30:38 82 0

原创 探索 JavaScript 作用域

JavaScript 是实际上是一门编译语言。但 JavaScript 并没有多少时间可供编译,在大部分情况下,编译会发生在 JavaScript 代码执行前的几微秒时间内。所以 JavaScript 引擎用了各种办法(比如 JIT)来保证性能。 JIT是“Just In Time”的首字母缩...

2020-05-02 16:30:28 44 0

原创 系统架构设计笔记(22)—— 系统性能指标

在计算机刚刚诞生时,所谓的系统仅仅指的是计算机本身,随着网络的出现和发展,诸如路由器 、 交换机设备,TCP/IP 、 SPX/IPX 、 以太网 、 光纤网络等网络技术如雨后春笋般涌现。系统的概念也不再局限于单台计算机,而是成为一个集各种通信设备于一体的集成装置。因此,这里所提到的性能指标,既包...

2020-05-01 14:31:32 324 0

原创 说说 Python 的 datetime 模块

Python 的 datetime 模块可以自定义日期的显示格式,而且还可以很方便地对日期进行算术运算,比如增减天数等操作。 datetime 模块定义了 datetime 数据类型,用于表示一个特定的时刻。 import datetime import logging import time ...

2020-05-01 09:39:43 69 0

原创 说说观察者模式

观察者模式,又叫做发布-订阅模式(Publish/Subscribe)。它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当这个主题对象状态发生变化时,会通知所有已注册的观察者对象,使它们能够依据实际情况,进行后续处理。 假设,我们有个自播带货的应用场景就可以用到观察者模式。...

2020-05-01 08:25:00 33 0

原创 说说在 jBPM 中,如何利用流程变量设置候选人、候选组或办理人

1 定义 首先要在流程定义文件中,设置好候选人、候选组或办理人变量表达式。 参数名 说明 candidate-users 候选人,多个以逗号分隔。一般设置为账号 ID。 candidate-groups 候选组,多个以逗号分隔。一般设置为部门 ID 或角色 ID。 assi...

2020-05-01 06:52:22 55 0

原创 说说在 jBPM 中,如何获取某个流程节点的 Task 对象

可以利用 taskService 的 createTaskQuery() 方法,来获取某个流程节点的 Task 对象。 /** * 查找任务 * * @param executionId Execution 实例 ID * @param activityName 活动名称 * @ret...

2020-05-01 06:50:18 47 0

原创 系统架构设计笔记(21)—— 物联网

物联网就是物物相连的互联网。其定义有两层意思 : 物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络; 其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。 物联网通过智能感知 、 识别技术与普适计算 、 广泛在网络的融合中应用,被称为继计算机 、 互联网之后世界信息...

2020-04-25 19:00:45 175 0

原创 系统架构设计笔记(20)—— 综合布线系统

综合布线工程包括综合布线设备安装 、 布放线缆和缆线端接等三个环节。任何一个网络系统的实施都至少包括两个部分,即逻辑设计与物理实现。 网络系统的调试与安装通常分为以下几步 : 网络系统的详细逻辑设计; 全部网络设备加电测试; 模拟建网调试及连通性测试; 实际网络安装调试。 综合布线系统 ( ...

2020-04-25 18:57:22 69 0

原创 客户端调用 Axis2 接口,导致 Linux 文件数打开过多问题的解决方法

生产系统最近不稳定, linux 经常爆出打开文件数过多的问题。 Linux 有文件句柄限制,默认一般为 1024 。之前生产环境调整过一次,改大了。这次又出现类似问题,怀疑是应用程序存在问题。 1 查看进程打开文件数最大限制 为了保证生产环境能够继续提供服务,运维把进程所能打开的最大文件数为改为...

2020-04-19 19:02:23 52 0

原创 系统架构设计笔记(19)—— 网络存储技术

目前,主流的网络存储技术主要有三种,分别是直接附加存储( Direct Attached Storage , DAS ) 、 网络附加存储( Network Attached Storage , NAS )和存储区域网络( Storage Area Network , SAN )。 1 直接附加存...

2020-04-19 18:11:04 88 0

原创 系统架构设计笔记(18)—— 网络工程

网络工程的建设是一个极其复杂的系统工程,是对计算机网络 、 信息系统建设和项目管理等领域知识的综合利用的过程,我们必须根据用户单位的需求和具体情况,结合当前网络技术的发展和产品化程度,经过充分的需求分析和市场调研,确定网络建设方案,依据方案有计划 、 分步骤地实施。按照实施过程的先后,网络工程可分...

2020-04-19 18:09:31 223 0

原创 说说包管理工具 NPM 的基本用法

NPM 是随同 NodeJS 一起安装的包管理工具,可以解决 NodeJS 代码部署上的很多问题,常见的使用场景有以下几种: 允许我们从 NPM 服务器下载第三方编写的包到本地使用。 允许我们从 NPM 服务器下载并安装第三方编写的命令行程序到本地使用。 允许我们将自己编写的包或命令行程序上传到...

2020-04-18 18:33:11 68 0

原创 说说如何使用 Node.js 创建 HTTP 服务器

1 Node.js 简介 Node.js 是运行在服务端的 JavaScript 。 它是一个异步 I/O、事件驱动模式的 JavaScript 服务端环境,基于 Google 的 V8 引擎, V8 引擎执行 Javascript 的速度快,性能好。 (1)异步 I/O 异步 I/O 遵循 “D...

2020-04-18 18:28:57 50 0

原创 说说如何使用 Python 的 cProfile 模块分析代码性能

cProfile 模块是自 python 2.5 以来标准版 Python 解释器的默认性能分析器。它是一种确定性分析器,只测量 CPU 时间,并不包含内存消耗和其他与内存相关联的信息。 代码分析模板如下: import cProfile, pstats, io from pstats impo...

2020-04-12 10:21:43 48 0

原创 说说 Python 的 round 函数

round( number ) 函数会返回浮点数 number 的四舍五入值。 具体定义为 round(number[,digits]): 如果 digits>0 ,四舍五入到指定的小数位; 如果 digits=0 ,四舍五入到最接近的整数; 如果 digits<0 ,则在小数点左侧...

2020-04-12 09:23:01 30 0

原创 系统架构设计笔记(17)——网络互连与常用设备

网络互连是为了将两个以上具有独立自治能力 、 同构或异构的计算机网络连接起来,实现数据流通,扩大资源共享的范围,或者容纳更多的用户。网络互连包括局域网与局域网的互连 、 局域网与广域网的互连 、 广域网与广域网的互连,这可以扩大资源共享的范围,使更多的资源可以被更多的用户共享。 1 网络互连设备 ...

2020-04-11 16:57:27 70 0

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