3 deniro_li

尚未进行身份认证

暂无相关简介

等级
TA的排名 1k+

说说 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

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

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

2020-05-24 14:58:18

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

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

2020-05-24 14:54:51

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

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

2020-05-24 14:52:38

说说 Docker 的三大核心概念

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

2020-05-17 17:25:59

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

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

2020-05-17 14:22:45

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

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

2020-05-17 11:23:55

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

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

2020-05-16 16:42:08

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

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

2020-05-10 15:27:52

探索 Java 注解

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

2020-05-10 11:13:43

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

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

2020-05-05 14:47:26

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

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

2020-05-05 14:25:42

说说在 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

说说 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

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

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

2020-05-03 15:53:36

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

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

2020-05-03 15:20:04

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

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

2020-05-03 09:30:38

探索 JavaScript 作用域

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

2020-05-02 16:30:28

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

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

2020-05-01 14:31:32

说说 Python 的 datetime 模块

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

2020-05-01 09:39:43

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。