自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 火影推荐程序连载46-操作系统:x86下内存分页机制

当我们写程序的时候,总是倾向于把一个完整的程序分成最基本的数据段,代码段,栈段。并且普通的分段机制就是在进程所属的LDT中把每一个段给标识出来。但是在实际运用中,大多数进程不会无限地运行下去。当进程结束之后它占有的内存空间也会被释放。但是这样就会出现一个问题:内存碎片导致的内存使用效率低下当进程A准备载入内存的时候,实际上内存的总剩余空间是足够放下的。但是进程A中的蓝色段无法直接放入内存中(假设这一段是代码段)。也就是说我们必须等待内存中的进程被释放的时候才能载入进程A。很明显,等待的工作是非常令人

2020-09-30 13:53:26 124

原创 火影推荐程序连载44-数据库的选型

对于很多程序员来说,公司选择什么样的数据库,基本不需要你来决定。当你加入一个公司的时候,公司的大部分技术选型已经确认,特别是数据库选型,因为数据库一旦选择,后期迁移的代价还是很大的。随着大数据时代的来临,涌现出了很多新型数据库,在公司遇到数据性能瓶颈,喊去IOE口号或者是想尝鲜时,都会慢慢的使用新型数据库。但是无论是技术选型还是转型,你都不能忽略一个因素:你选的数据库技术你能驾驭吗?我们知道,现在有很多开源数据库可以让我们选择,但是我们有相关的技术人员精通这些数据库吗?比如GreenPlum这款

2020-09-29 13:29:52 230

原创 火影推荐程序连载44-Spring Boot第二弹,配置文件怎么造?

自从用了Spring Boot,个人最喜欢的就是Spring Boot的配置文件了,和Spring比起,Spring Boot更加灵活,修改的某些配置也是更加得心应手。Spring Boot 官方提供了两种常用的配置文件格式,分别是properties、YML格式。相比于properties来说,YML更加年轻,层级也是更加分明。今天这篇文章就来介绍一下Spring Boot的配置文件的语法以及如何从配置文件中取值。properties格式简介常见的一种配置文件格式,Spring中也是用这种

2020-09-28 13:09:37 108

原创 火影推荐程序连载43-云与计算生态开发者蓬勃发展

01云与计算生态开发者蓬勃发展联接、计算、云、AI、行业应用这5种技术、5大机会史无前例地汇聚到一起。联接、计算、云和AI技术就像100多年前的电力,而行业应用就像家用电器和工业电气化。放眼未来,决定各行各业竞争力的关键就在于如何驾驭这些数字技术,构建行业应用。开发者无疑是推进这一进程,加速智能升级的核心力量。从2016年至今,华为云与计算领域开发者数量已从2.5万发展到180万,增长超过70倍。2019年,华为发布“沃土计划2.0”,未来五年投资15亿美金发展云与计算开发者。正是开发者们的信任与不

2020-09-27 15:20:42 116

原创 火影推荐程序连载42-用Docker swarm快速部署Nebula Graph集群

用Docker swarm快速部署Nebula Graph集群一、前言本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群。二、nebula集群搭建2.1 环境准备机器准备 ip 内存(Gb) cpu(核数) 192.168.1.166 16 4 ...

2020-09-26 15:14:13 307 1

原创 火影推荐程序连载41-有没有异常处理翻车过的,绩效还被打了C

完了,马上季度末打绩效,竟然在这里翻车了,心如刀绞啊。虽然没有影响到用户体验,但是找到问题并解决掉问题是工程师日常追求之一。作为一个优秀的工程师,应该还得加几点:弄清问题本质 总结问题原因 举一反三,防止出现类似错误异常处理,对于每个开发者来说一点不陌生。有人这样描述,“一个开发者90%的时间都是在处理程序异常”。这样说也不算是什么过错,毕竟正常的逻辑总是轻松容易的写完,异常处理往往会占据开发者大多数时间。既然这么占据我们的开发时间,何不主动花点时间去了解他,熟悉他,切莫让他成

2020-09-25 09:05:02 85

原创 火影推荐程序连载40-python自动保存百度网盘资源,一定要看

一个导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf、Csv和Html。在本篇教程,笔者将讲述如何使用Magicodes.IE的导入导出筛选器。在开始之前,我们需要先了解Magicodes.IE目前支持的筛选器:接口 说明 IImportResultFilter 导入结果筛选器,可以修改导入结果包括验证错误信息(比如动态修改错误标注) IImportHeaderFilter 导入列头筛选器,可以修改列名、值映射集合等等 IExporterHe

2020-09-24 14:59:08 456

原创 火影推荐程序连载39-laravel关于错误和异常的部分源码

第一部分:laravel关于错误和异常的部分源码第二部分:自定义异常的使用(结合serviceprovider monolog elasticsearch)过程中涉及到的重要函数请自行查看手册error_reporting set_error_handler set_exception_handler register_shutdown_function error_get_lastlaravel v6.18.40源码部分我们来到http kernel文件,处理请求部分可以.

2020-09-23 15:16:14 285

原创 别写秒杀系统了,我告诉你消息管理平台实现原理吧

没错,我又给自己挖了个坑。为什么想写项目相关的文章呢?原因有以下: 当我还没正式开始工作时,我经常会想:”网上的视频项目我是看过了,但真正的商业项目究竟长什么样?会不会很难?“我是挺想知道真正的商业项目跟自己练习的项目区别在哪。我估摸还没工作的同学应该也有跟我类似的思考吧? 变相推动自己持续输出,在这个过程中学习和成长。关注我可能有小白,也可能有跟我做同一领域的大佬。我把我所了解的写下来:可能我这边的实现方案被大佬们唾弃,交流和学习后,改善了我系统的实现方案。也有可能给正准备踏进该领域的

2020-09-22 09:33:20 637

转载 火影推荐程序连载38-java安全编码指南之:输入校验

为了保证java程序的安全,任何外部用户的输入我们都认为是可能有恶意攻击意图,我们需要对所有的用户输入都进行一定程度的校验。本文将带领大家探讨一下用户输入校验的一些场景。一起来看看吧。在字符串标准化之后进行校验通常我们在进行字符串校验的时候需要对一些特殊字符进行过滤,过滤之后再进行字符串的校验。我们知道在java中字符是基于Unicode进行编码的。但是在Unicode中,同一个字符可能有不同的表示形式。所以我们需要对字符进行标准化。java中有一个专门的类Normalizer来负责处理

2020-09-21 10:46:58 142

转载 火影推荐程序连载37-URL及日期等特殊数据格式处理-JSON框架Jackson精解第2篇

Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库。有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制。它提供了很多的JSON数据处理方法、注解,也包括流式API、树模型、数据绑定,以及复杂数据类型转换等功能。它虽然简单易用,但绝对不是小玩具,本节为大家介绍Jackson的基础核心用法,更多的内容我会写成一个系列,5-10篇文章,请您继续关注我。在也就是上一篇中,为大家介绍了这些内容 一、基础准备 二、序列化..

2020-09-20 10:23:21 348

原创 火影推荐程序连载36-单向链表和双向链表

1、链表概念链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点组成,节点可以在运行时动态生成,节点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。2、基础特点内存存储逻辑结构特点描述物理存储上是无序且不连续的; 链表是由多个节点以链式结构组成; 逻辑层面上看形成一个有序的链路结构;链表结构解决数组存储需要预先知道元素个数的缺陷,可以充分利用内存空间,实现灵活的内存动态管理。

2020-09-18 13:56:33 112

原创 火影推荐程序连载35-最好用的流程编辑器bpmn-js系列之基本使用

BPMN(Business Process Modeling Notation)是由业务流程管理倡议组织BPMI(The Business Process Management Initiative)开发的一套标准的业务流程建模符号规范。其目的是为用户提供一套容易理解的标准符号,这些符号作为BPMN的基础元素,将业务流程建模简单化、图形化,将复杂的建模过程视觉化,让业务建模者、业务实施人员、管理监督人员对BPMN描述的业务流程都有一个更加清晰明了的了解。BPMN的主要意义在于其作为一个标准,业务相关者都

2020-09-17 13:13:36 573

原创 火影推荐程序连载34-分库分表中间件的高可用实践

分库分表中间件在我们一年多的锤炼下,基本解决了可用性和高性能的问题(只能说基本,肯定还有隐藏的坑要填),问题自然而然的就聚焦于高可用。本文就阐述了我们在这方面做出的一些工作。哪些高可用的问题作为一个无状态的中间件,高可用问题并没有那么困难。但是尽量减少不可用期间的流量损失,还是需要一定的工作的。这些流量损失主要分布在:(1)某台中间件所在的物理机突然宕机。 (2)中间件的升级和发布。由于我们的中间件是作为数据库的代理提供给应用的,即应用把我们的中间件当做数据库,如下图所示:

2020-09-16 14:14:29 189

原创 火影推荐程序连载33-什么是Lambda架构

一、Lambda架构需求Lambda架构背后的需求是由于MR架构的延迟问题。MR虽然实现了分布式、可扩展数据处理系统的目的,但是在处理数据时延迟比较严重。实际上如果内存和CPU足够强大,MR也可以实现近实时运算,但实际业务环境并非如此,因此我们需要权衡,选择实时处理和批处理所需要数据量和恰当的资源。2012年Storm的作者Nathan Marz提出的Lambda数据处理框架。Lambda架构的目标是设计出一个能满足实时大数据系统关键特性的架构,包括有:高容错、低延时和可扩展等。Lambda架构

2020-09-15 13:45:47 105

原创 火影推荐程序连载32-我是如何使用freemarker生成Word文件的?

背景一天,产品经理递给我了一份word报告,我定睛一看这个文档有大大小小的标题层级,还有排版好的段落、各种一目了然的饼图、走势图,当然还少不了颜色循环交替的报表。精致程度不亚于小明同学的学习报告。准备鲁迅:身为一名Java程序员,任何时候都不要忘记站在巨人的肩膀上。通过某歌搜索关键词:java+word+导出,我立马得出了很多成熟的方案,通过横向、纵向比较,再结合本次报告样式比较多、用户可灵活选择不同模块导出的特点,最终,我决定使用Freemarker动态替换模版数据来导出word.

2020-09-14 14:00:56 221

原创 火影推荐程序连载31-bind返回的是一个函数体

bind返回的是一个函数体call和apply会直接执行,但是call参数需要一个一个进行传递,apply的第二个参数是一个数组实现bind简单实现Function.prototype.myBind = function(context){ self = this; //保存this,即调用bind方法的目标函数 return function(){ return self.applay(context, [...arguments]); };};

2020-09-13 13:15:32 131

原创 火影推荐程序连载30-过滤器和拦截器有啥区别,这次会了!

这个是不久前在面试的时候遇到的一个问题,当时直接懵了,两个单拎出来,虽然不太完全,但都大概知道可以对请求进行拦截,放在一起比较,可真是头疼。其实之前面试完就去学习了一波,只不过那个时候没及时总结,现在总结一下,以免日后遇到这类问题又给忘咯。要理解这类问题,光靠死记硬背可能当时有用,过一阵子就差不多忘了。要想真的牢记,我们必须要实操一下。Filter的使用首先,要使用Filter,必须实现javax.servlet.Filter接口:public interface Filter {

2020-09-12 21:42:20 475

原创 火影推荐程序连载29-藏在Java数组的背后,你可能忽略的知识点

数组是数据呈线性排列的一种数据结构,它用一组连续的内存空间,来存储一组相同数据类型的数据,表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间。数组是基本上所有语言都会有的一种数据类型,是我们在开发过程中经常会接触到的,所以我们很有必要了解数组的相关特性数组的定义和使用需要通过方括号[]。Java 中,数组是一种引用类型。Java 中,数组是用来存储固定大小的同类型元素。区别于C/C++数组存储结构区别:C数组:数组空间是一次性给定的,优先访问低地址,自.

2020-09-12 13:57:43 103

原创 火影推荐程序连载28-Azure DevOps Project设置ASP.NET项目

使用Azure DevOps Project设置ASP.NET项目我们需要先在Azure面板中创建一个Azure WebApp服务,此处步骤我将省略,然后点击部署中心如下图所示:此处我选择的是Azure Repos,当然大家也可以选择Github、Local Git、FTP我们需要提前在Azure DevOps中提前创建好应用程序,我这边已经提前创建好了名称为Blog.创建完后我们会在Azure DevOps Pipeline中看到默认为我们生成的管道信息,他是一个构建刚才那..

2020-09-11 13:37:32 136

原创 火影推荐程序连载28-Mybati源码解析篇之六剑客!!!

前言 环境版本 Mybatis的六剑客 SqlSession 有何方法 语句执行方法 立即批量更新方法 事务控制方法 本地缓存方法 获取映射方法 有何实现类? Executor 实现类 BaseExecutor CachingExecutor SimpleExecutor BatchExecutor ReuseExecutor SpringBoot中如何创建? StatementHand

2020-09-10 12:02:29 121

原创 火影推荐程序连载27-代码重构之法——方法重构分析

想要写出比较优秀的代码,需要时刻警惕代码中的坏味道,今天想写一篇文章介绍一下如何分析你的方法是不是需要考虑重构一个方法通常有三个部分组成,输入(Input),输出(Output),方法体(Method Body),我们就从这三个方面来分析一个方法是否该考虑重构Input方法输入也就是方法的参数,通常来说一个方法的参数基本可以控制在7个以内(仅作参考,可以自己衡量,SonarQube默认方法最多七个参数),如果你的方法参数过多的话,可能就需要考虑重构一个方法参数了,通常的做法是封装一个独立的 m.

2020-09-09 14:29:33 221

原创 火影推荐程序连载26-[01] C#网络编程的最佳实践

网络框架的选择C++语言里面有asio和libuv等网络库, 可以方便的进行各种高效编程. 但是C#里面, 情况不太一样, C#自带的网络API有多种. 例如:Socket TcpStream(同步接口和BeginXXX异步接口) TcpStream Async/Await Pipeline IO ASP.NET Core Bedrock众多网络库, 但是每个编程模型都不太一样, 和C++里面我常用的reactor模型有很大区别. 最重要的是, 编程难度和性能不是很好. 尤其是后面三种模型

2020-09-09 11:58:12 410

原创 火影推荐程序连载25-高并发系统的分析和设计

任何系统都不是独立于业务进行开发的,真正的系统是为了实现业务而开发的,所以开发高并发网站抢购时,都应该先分析业务需求和实际的场景,在完善这些需求之后才能进入系统开发阶段。没有对业务进行分析就贸然开发系统是开发者的大忌。对于业务分析,首先是有效请求和无效请求,有效请求是指真实的需求,而无效请求则是虚假的抢购请求。有效请求和无效请求无效请求有很多种类,比如通过脚本连续刷新网站首页,使得网站频繁访问数据库和其他资源,造成性能持续下降,还有一些为了得到抢购商品,使用刷票软件连续请求的行为。鉴别有效请

2020-09-08 13:48:29 154

原创 火影推荐程序连载24-软件开发流变史:从瀑布开发到敏捷开发再到DevOps

作为在20世纪70年代、80年代盛极一时的软件开发模型,瀑布模型通过制定计划、需求分析、软件设计、程序编写、软件测试、运行维护等6个流程将整个软件生命周期衔接起来。这6个流程有着严格的先后次序之分,只有当前面的流程结束之后,下一个流程才能开始运转。这种自上而下的流程像极了瀑布的下落,因此得名瀑布模型。我们可以发现,瀑布模型有很多优点:有明确的交接点:不论是制定计划还是需求分析,甚至是软件测试,都有明确的起始点及开发流程——也就是在上一流程结束后再开始下一个流程; 责任明确:开发人员都各司其职.

2020-09-07 14:06:21 100

原创 火影推荐程序连载23-Robot Framework自动化测试框架核心指南-如何做好自动化测试平台框架的设计

自动化测试如果需要能高效快速的支撑软件项目的测试,项目的快速迭代以及上线,除了以上我们介绍的需要许多的Lib来支持以及需要高效的去编写自动化测试案例外,还需要一个好的自动化测试框架平台来支撑我们的自动化测试案例的执行以及分析,自动化测试平台一般需要解决测试案例执行任务的创建,任务的管理,任务的调度,测试案例的解析,测试案例分别根据不同的测试类型分发给不同的测试工具或者测试Lib库进行执行,并且需要对执行的数据进行分析,得出质量数据,然后才好给出对应的测试报告分析数据给测试经理,项目经理来辅助持续的改善项目版

2020-09-06 16:29:37 217

原创 火影推荐程序连载22-当所有需求都是第一优先级时,你该怎么办?

技术团队做项目需求的工作过程中,经常会出现一些反复不断的问题,这些问题会严重影响团队的工作效率,同时也会给团队的士气带来重大的影响。接下来,我们来讨论一下这些问题发生的具体场景,造成的问题原因,以及如何预防和解决这些问题方法技巧。今天来看第一个常见的问题:当所有的需求或任务都是第一优先级的时候,你该怎么办呢?一切都很重要紧急这是指每个需求、任务和问题都被定义为最高优先级,技术团队管理者只是经常检查不同任务的进度,而不给开发人员适当的时间来完成任务等。这个问题发生的常见情况有以下几种:.

2020-09-06 14:24:09 142

原创 火影推荐程序连载21-npm包管理器报错-npm ERR

由于这两天买的新电脑在短期内频频蓝屏、卡机,不得不把自己其他的本本拿出来换上,但是程序员换电脑是真的痛苦,其他不说就说一个配环境 真的折腾哈我是一名前端菜鸟,现在自己的本本上使用的是npm包管理工具,其实对于配环境在网络条件稍微不好点就各种npm ERR的问题不是第一次出现了,没想到这次又遇到,还是记录下吧,如果有其他的小伙伴遇到不妨试一下这是这两天遇到的报错,上了梯子之后,还是❌❌❌问题出现npm ERR! Response timeout while trying to fetc..

2020-09-05 15:44:31 253

原创 火影推荐程序连载20-SpringCloud 服务负载均衡和调用 Ribbon、OpenFeign

1、RibbonSpring Cloud Ribbon是基于Netflix Ribbon实现的—套客户端―负载均衡的工具。简单的说,Ribbon是Netlix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。

2020-09-04 16:12:15 175

原创 火影推荐程序连载19-Redis的基础事务和常用操作

Redis的基础事务和常用操作和其他大部分的 NoSQL 不同,Redis 是存在事务的,尽管它没有数据库那么强大,但是它还是很有用的,尤其是在那些需要高并发的网站当中。使用 Redis 读/写数据要比数据库快得多,如果使用 Redis 事务在某种场合下去替代数据库事务,则可以在保证数据一致性的同时,大幅度提高数据读/写的响应速度。互联网系统面向的是公众,很多用户同时访问服务器的可能性很大,尤其在一些商品抢购、抢红包等场合,对性能和数据的一致性有着很高的要求,而存储系统的读/写响应速度对于这类场景的

2020-09-04 10:44:24 199

原创 火影推荐程序连载17-Git使用教程:最详细、最傻瓜、最浅显、真正手把手教

一、Git是什么?Git是目前世界上最先进的分布式版本控制系统。工作原理 / 流程:Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库二、SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网.

2020-09-03 15:45:20 159

原创 火影推荐程序连载16-聊聊前端监控——错误监控篇

当有人问起:你们的公司的这款应用用户体验怎么样呀?访问量怎么样?此时,你该怎么回答呢?你会回答:UV、PV 巴拉巴拉,秒开率、FP、TTI 巴拉巴拉。那么,这些数据是哪里来的呢?显而易见,这些数据都来自前端监控系统。前端监控的意义当今时代,是一个快节奏的时代,应用的性能极大影响着用户的留存率,没有用户会忍受一个卡到爆的应用。而监控应用性能的重担,就由前端监控系统肩负着。其次,对于线上应用来说,故障是不可避免的,对于高日活的应用来说,每次故障都意味着大量的损失。试想,如果是淘宝挂了一天,那么损

2020-09-02 14:59:22 233

原创 火影推荐程序连载15-用Java写编译器(1)- 词法和语法分析

ANTLR全称ANother Tool for Languate Recognition,是基于LL(*)算法实现的语法分析器生成器和词法分析器生成器,由旧金山大学的Terence Parr博士等人于1989年开始使用java编写。截止到目前,ANTLR已经支持生成适用于Ada95、C、C#、JavaScript、Objective-C、Perl、Python、Ruby、C++和Standard ML等多种编程语言的词法和语法分析器了。ANTLR安装$ cd /usr/local/lib$ wg

2020-09-02 14:22:11 367

原创 火影推荐程序连载14-Vue开源项目使用探索

前言本文记录一次使用Vue开源项目的过程。寻找Vue开源项目要使用Vue开源项目就必须先找到一个,我们去Github上搜索【后台】,然后使用Vue分类进行检索,找到排名第一的开源框架然后新建一个文件夹,将下载解压后的文件放进去,如下图:运行项目运行CMD,输入【cd /d F:\Vue\vue-framework-wz-master】然后输入【npm install】 ,如下图:然后耐心等待其下载依赖项。然后,得到结果缺少Python环境,安装失败。。。

2020-09-01 15:58:07 160

空空如也

空空如也

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

TA关注的人

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