自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (10)
  • 论坛 (1)
  • 收藏
  • 关注

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

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

2020-05-31 16:06:31 132

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

结构化分析与设计方法是一种面向数据流的需求分析和设计方法,它适用于分析和设计大型数据处理系统,是一种简单 、 实用的方法,曾获得广泛的应用。1 结构化分析结构化分析方法的基本思想是自顶向下逐层分解。分解和抽象是人们控制问题复杂性的两种基本手段。对于一个复杂的问题,人们很难一下子考虑问题的所有方面和全部细节,通常可以把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题,经过多次逐层分解,每个最底层的问题都是足够简单 、 容易解决的,于是复杂的问题也就迎刃而解了。这个过程就是分解过程。结构化

2020-05-31 15:19:48 984

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

需求分析是软件生命周期中相当重要的一个阶段。根据 Standish Group 对 23000 个项目进行的研究结果表明, 28% 的项目彻底失败, 46% 的项目超出经费预算或者超出工期,只有约 26% 的项目获得成功。需求分析工作在整个软件开发生命周期中有着十分重要的意义。而在这些高达 74% 的不成功项目中,有约 60% 的失败是源于需求问题,也就是差不多有一半的项目都遇到了这个问题,这一可怕的现象引起人们对需求分析的高度重视。需求分析阶段的主要任务是通过开发人员与用户之间的广泛交流,不断澄清一些模

2020-05-30 11:15:24 1353

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

软件系统的目的是为了解决问题,因此在建模之初最重要的步骤是对问题的分析与定义,并在此基础上归结模型,这样才能够获得切实有效的模型。定义问题的过程包括:理解真实世界中的问题和用户的需要,并提出满足这些需要的解决方案的过程。1 问题分析问题分析的目标就是在开发之前对要解决的问题有一个更透彻的理解。为了达到这一目标,通常需要经过在问题定义上达成共识,理解问题的本质,确定项目干系人和用户,定义系统的边界和确定系统实现的约束这五个步骤。1.1 在问题定义上达成共识要检验大家是否在问题的定义上达成了共识,最简单

2020-05-30 11:13:28 797

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

使用 Python 的 smtplib 模块,就可以实现发送邮件。1 电子邮件服务器如果是网易 163 邮箱,我们可以在浏览器中登陆 https://mail.163.com/ 邮箱后,依次点击 设置 → POP3/SMTP/IMAP ,进入服务器设置页:进入服务器设置页后,确保开启 SMTP 与 IMAP 服务。设置页的最下面就是网易邮箱的服务器地址:(1)SMTP发送电子邮件使用的协议是简单邮件传输协议( SMTP ,Simple Mail Transfer Protocol)。它是一种提

2020-05-30 10:32:11 393

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

JavaScript 中的 ! 会将变量转换成 boolean 类型,而 null、undefined 和空字符串会被转换为 false,其它转换为 true。console.log(!null);//trueconsole.log(!undefined);//trueconsole.log(!'');//trueconsole.log(!'deniro');//falseconsole.log(!1);//false运行结果:truetruetruefalsefalse!

2020-05-24 15:23:10 103

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

计算机技术飞速发展,日新月异,许多企业因为业务发展的需要和市场竞争的压力,需要建设新的企业信息系统。在这种升级改造的过程中,怎么处理和利用那些历史遗留下来的老系统,成为影响新系统建设成败和开发效率的关键因素之一。通常称这些老系统为遗留系统。目前,学术和工业界对遗留系统的定义没有统一的意见 。Bennett 在 1995 年对遗留系统做了如下的定义:遗留系统是不知道如何处理但对组织又至关重要的系统 。Brodie 和 Stonebraker 对遗留系统的定义如下:遗留系统是指任何基本上不能进行修改和演化以满

2020-05-24 14:58:18 994

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

通过在问题定义和归结模型阶段的工作,已经分析并定义了与系统开发目标相关的各种模型 、 分析出了系统的功能清单 、 性能要求等,解释了 “ 系统目标是什么 ” 的问题。在系统方案阶段,主要完成的工作则是解释 “ 系统如何实现 ” 的问题。系统方案制订的最主要内容,包括以下几个方面。1 确定软件架构在问题定义阶段得到的软件概念模型使用各种工具定义了项目的开发目标。在系统方案制订阶段才开始真正考虑如何去实现软件。其中最重要的工作,就是制定系统的实现架构。系统的实现架构与一些很具体的方面相关:(1)分析模

2020-05-24 14:54:51 219

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

在项目计划和选择的过程中,需要完成的首要目标是对项目进行估算。项目估算的范围涉及方方面面,例如项目或产品开发的范围 、 投入和回报 、 项目风险 、 作用和意义等。在传统软件工程方法中,是以可行性研究的方式来组织项目的主要估算内容。可行性研究的范围可能复盖技术 、 经济 、 执行 、 环境等各种需要评估的因素,但它并不是最后的详细计划(例如:项目的时间进度及人员安排)。通常在进行可行性研究的阶段,项目的目标或产品的最终方向也是极易变化的。但可行性研究的意义在于,虽然可行性研究不能指出项目最终的详细计划和方

2020-05-24 14:52:38 491

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

Docker 包括三大核心概念:镜像(Image)、容器(Container)和仓库(Repository)。(1)镜像镜像类似于虚拟机镜像,可以把它理解为一个只读的模板。例如,一个包含 Nginx 应用程序的镜像,其内部包含一个基本的操作系统环境以及 Nginx 应用程序 。 镜像是创建 Docker 容器的基础,通过版本管理和增量文件系统, Docker 提供了一套机制来创建或更新现有的镜像,我们还可以从网上下载并使用别人已经做好的镜像。(2)容器Docker 容器类似于一个轻量级沙箱, Doc

2020-05-17 17:25:59 199

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

组织在信息化的过程中,可能基于各种动机提出系统项目的建设,有关人员要根据这些动机,提出和确定信息系统的工作范围,确定项目立项,提出系统选择方案,给出选择结果。1 项目的立项目标和动机企事业单位在其自身的经营管理过程中,对于项目的立项建设可能具有多种动机,通常可归结为下列几种。(1)进行基础研究并获取技术此类项目通常由大学院校或企业集团的战略研究性部门提出和实施。小规模的研究组织可能仅仅是企业中的一个研发部门或从事研发工作的团队;中大规模的研究组织包括研究所或研究院这种独立建制的单位;大规模的研究性项

2020-05-17 14:22:45 1174

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

1 虚拟化技术分类在计算机技术中,虚拟化 (virtualization) 是一种资源管理技术,是将计算机的各种实体资源,如服务器 、 网络 、 内存及存储等,予以抽象 、 转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用比原本的组态更好的方式来应用这些资源。因此,虚拟化的核心是对资源的抽象,我们可以在同一个主机上同时运行多个系统或应用,从而提高系统资源的利用率,实现降低成本 、 方便管理的目的。虚拟化技术有以下这些层次分类:这里重点说明平台虚拟化技术。平台虚拟化分为以下几种类型:(1

2020-05-17 11:23:55 772

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

1 软件重用软件重用技术是一种重要的软件开发方法,虽然至今软件重用技术还不够成熟,离理想中的软件工厂还有很长的路要走,但现有的一些重用技术(例如,中间件 、 应用服务器等)已经改变了开发过程。1.1 软件重用形式软件产品与其他的产品不同,是抽象的,一旦产生就可以无限制地复制,因此重复利用软件产品的意义重大,可以节约大量的人力物力。软件重用指的是利用已经存在的软件元素建立新的软件系统,这其中的软件元素既可以是软件产品 、 源程序,也可以是文档 、 设计思想甚至是领域知识。软件重用可以直接提高软件的开发效

2020-05-16 16:42:08 388

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

2001 年 2 月,在美国的犹他州, 17 位“无政府主义者”共同发表了《敏捷软件开发宣言》,在宣言中指出:尽早地、持续地向客户交付有价值的软件对开发人员来说是最重要的。拥抱变化,即使在开发的后期。敏捷过程能够驾驭变化,保持客户的竞争力。经常交付可工作的软件,从几周到几个月,时间范围越小越好。在整个项目中,业务人员和开发者紧密合作。围绕士气高昂的团队进行开发,为团队成员提供适宜的环境,满足他们的需要,并给予足够的信任。在团队中,最有效率的、也是效果最好的沟通方式是面对面地交流。可以工作的软

2020-05-10 15:27:52 1265

原创 探索 Java 注解

Java 注解让我们可以在代码中添加信息元数据,这样这些元数据就可以实现与源代码放在一处管理与维护,而且还可以表述程序所需的信息。1 标准注解Java 定义了 5 种标准注解,具体说明如下:注解JDK 版本说明@OverrideJDK5表示当前定义的方法将覆盖基类定义的方法。@DeprecatedJDK5表示当前定义的元素已过时,如果有其它元素调用该元素,那么编译器会记录警告信息。@SuppressWarningsJDK5表示关闭当前定义元素的编译器警告信

2020-05-10 11:13:43 109

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

统一过程( Unified Process , UP )是由 Rational 公司开发的一种迭代的软件过程,是一个优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效地降低软件开发过程的风险,经过裁剪的 UP 可以适应各种规模的团队和系统。1 UP 的二维模型UP 是一个很有特色的模型,它本身是一个二维的结构,如图 1 所示。对于 UP 而言,时间主线就是横轴的阶段,随着时间的流逝,...

2020-05-05 14:47:26 485

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

1 软件生命周期软件生命周期也就是软件生存的周期。同万物一样,软件也有诞生和消亡,软件生命周期就是指软件自开始构思与研发到不再使用而消亡的过程。有关软件生命周期的阶段划分,不同的标准有不同的规定。在 GB8566-88 ( 《 软件工程国家标准 —— 计算机软件开发规范 》 )中将软件生命周期划分为8个阶段:可行性研究与计划 、 需求分析 、 概要设计 、 详细设计 、 实现、集成测试、确认测...

2020-05-05 14:25:42 405

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

1 配置 Intellij IDEA首先在 Intellij IDEA 中,开启项目自动构建选项:然后打开 Maintenance 选项卡,快捷键为 Ctrl + Alt + Shift + /:输入快捷键后,选择 Registry,进入注册表,找到 compiler.automake.allow.when.app.running,勾选它:这时 Java 代码发生变化时,ID...

2020-05-04 11:03:43 184

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

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

2020-05-04 08:53:23 113

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

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

2020-05-03 15:53:36 457

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

1 系统性能计算随着计算机系统复杂度的不断增长,性能指标也在不断地增长,这也增加了衡量计算机系统性能的难度。如何在众多指标中选取合适的性能指标,以及选择何种衡量方法都成为一项重要的课题,因此也衍生了各种性能评估体系。这里主要介绍一些常用性能指标的计算方法。在实际应用时,往往是对这些常用性能指标的复合计算,然后通过算法加权处理得到最终结果。性能指标计算的主要方法有:定义法 、 公式法 、 程序...

2020-05-03 15:20:04 317

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

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

2020-05-03 09:30:38 240

原创 探索 JavaScript 作用域

JavaScript 是实际上是一门编译语言。但 JavaScript 并没有多少时间可供编译,在大部分情况下,编译会发生在 JavaScript 代码执行前的几微秒时间内。所以 JavaScript 引擎用了各种办法(比如 JIT)来保证性能。JIT是“Just In Time”的首字母缩写。每当一个程序在运行时创建并运行一些新的可执行代码,而这些代码在存储于磁盘上时并不属于该程序的一部分...

2020-05-02 16:30:28 118

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

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

2020-05-01 14:31:32 643

原创 说说 Python 的 datetime 模块

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

2020-05-01 09:39:43 213

原创 说说观察者模式

观察者模式,又叫做发布-订阅模式(Publish/Subscribe)。它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当这个主题对象状态发生变化时,会通知所有已注册的观察者对象,使它们能够依据实际情况,进行后续处理。假设,我们有个自播带货的应用场景就可以用到观察者模式。直播带货指的是通过视频直播平台,进行现场直播卖货的模式。目前带货平台以淘宝、快手、抖音为主,京东、拼...

2020-05-01 08:25:00 94

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

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

2020-05-01 06:52:22 147

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

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

2020-05-01 06:50:18 145

Nginx 1.18.0 以及相关依赖库

该压缩包内包含了 Nginx-1.18.0以及 Nginx所需要的依赖库。依赖库主要为: * 编译 Nginx 的GCC 编译器; * 未来使用 C++ 来编写 Nginx 的 G++ 编译器; * Perl 正则表达式(Nginx HTTP 模块依赖库); * zlib (网络数据包 gzip压缩依赖库); * openssl (提供HTTPS 支持以及 MD5、SHA1 等加密算法实现)。

2020-12-27

Vue.js 技术交流培训材料.pdf

包含数据绑定、计算属性、内置指令、组件、自定义指令、Render 函数、webpack、插件等内容。

2019-11-22

jasperreports-functions-6.3.1.jar

jasperreports 的函数依赖包,用于解决 jasperreports 抛出 Caused by: java.lang.NoClassDefFoundError: net.sf.jasperreports.functions.standard.DateTimeFunctions 的问题

2017-11-07

mysql 函数,可以将数字转换为中文大写形式

mysql 函数,可以将数字转换为中文大写形式。大写数字是中国特有的数字书写方式,利用与数字同音的汉字取代数字,以防止数目被涂改。 据考证,大写数字最早是由武则天发明,后经朱元璋改进完善。

2017-10-30

olap4j-0.9.7.309-JS-3.jar jasperreports 6.x 的依赖包

olap4j-0.9.7.309-JS-3.jar jasperreports 6.x 的依赖包哦

2017-10-20

微软雅黑字体

微软雅黑字体是一种全新的无衬线黑体,它的字形略呈扁方而饱满,笔画简洁而舒展,易于阅读。

2017-10-10

axis1.4 包,一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。

axis全称Apache Extensible Interaction System 即阿帕奇可扩展交互系统。Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。Axis目前版本是为Java编写的,不过为C++的版本正在开发中。但Axis并不完全是一个SOAP引擎,它还是一个独立的SOAP服务器和一个嵌入Servlet引擎(例如Tomcat)的服务器

2017-09-29

Fiddler4 破解版,http协议调试代理工具

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。

2017-09-29

阿里巴巴Java开发手册(正式版)

阿里巴巴集团推出的《阿里巴巴Java开发手册(正式版)》是阿里巴巴近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让Java开发者能够提升协作效率、提高代码质量。

2017-02-16

mdwiki 项目模板代码

可用于搭建 mdwiki 项目架构,mdwiki 是基于 markdown 的 wiki 系统。里面有一些基础文件,可在此基础上进行扩展。

2016-12-30

deniro_li的留言板

发表于 2020-01-02 最后回复 2020-03-05

空空如也

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

TA关注的人 TA的粉丝

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