自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 node-logger

log4js node文章目录log4js node一,前言二,配置log4js三,日志区分四,小结一,前言koa框架开发的web api 项目,日志直接打印到console中,能够开发的时候确定问题,但是上线后如何通过日志文件来确定问题?成了一个难题,我尝试了多个koa的日志组件,从npm中获取的,都不是很理想。最后还是回到了log4js或是叫 log4node的项目上来。log4js库有很强的普及率,虽然和java的log4j在使用上面不太相似,但是功能是一样的。二,配置log4js

2021-09-09 10:23:37 577 1

原创 数据结构-树的简介

数据结构–树的简介文章目录数据结构--树的简介@[toc]一,树的定义二,节点间的关系三,树的表示法四,二叉树五,总结一,树的定义一对一的数据结构是线性结构,一对多的数据结构中包含树。树是N个节点的有限集合。如果N=0称为空树。有且只有一个特定的称为根的节点。其余节点可分为M个互不相交的有限集合。每一个集合本身又是一颗树,并且称为根的子树。二,节点间的关系节点的子树的根称为该节点的孩子,相应地,该节点称为孩子的双亲(Parent)同一个双亲(parent)的孩子之间互称兄弟(si

2021-08-22 09:52:30 441 1

原创 敏捷软件开发

敏捷管理文章目录敏捷管理@[toc]一,敏捷转型难?二,敏捷的好处!三,ADAPT模型四,敏捷的实施模式五,渐进敏捷六,试点项目七,总结一,敏捷转型难?首先变革不是完全的自上而下或是自下而上的。(主力太弱小了)结束状态不可预知 (这就是命,不断的革命,有点恐怖主义的意思)敏捷无处不在。 (着眼于细节)二,敏捷的好处!更高的生产力和更低的成本 (主力是基层员工,干活的。996)员工参与度和工作满意度增强 (参与度指定是高了,因为责任到人。满意度不知道,应该是不好说)更快的产品

2021-08-21 17:03:52 186 1

原创 ECDSA算法(Hyperledger Fabric 椭圆曲线算法)

ECDSA算法(Hyperledger Fabric 椭圆曲线算法)文章目录ECDSA算法(Hyperledger Fabric 椭圆曲线算法)一,什么是ECDSA算法二,为什么要用签名算法三,基础原理和算法四,椭圆曲线密码学五,椭圆曲线算法六,总结一,什么是ECDSA算法ECDSA全称:Elliptic Curve Digital Signature Algorithm 有兴趣的朋友可以去维基百科看看这个算法的算法原理。椭圆曲线数字签名算法 既然是签名算法,就不是用来加密的。也就是说数据是

2021-08-06 11:43:22 2110 1

原创 字符串的累加分析和优化

字符串的累加分析和优化文章目录字符串的累加分析和优化一,前言二,第一种处理方法三,测试时间差四,总结一,前言开发过程中经常会遇到生成连续的数字字符串,如果连续数字的字符串有哪些技巧和问题呢?二,第一种处理方法通过for循环来处理,条件就是从1开始,小于输入的数字,每次递增。//简单粗暴直接拼接就可以了。func CreateArray1(length int)[]int{ if length > 0 { arr := "" for i := 1; i <= le

2021-07-31 14:47:56 332 1

原创 数据结构--串

目录串--字符串一,前言二,串的比较三,串的顺序存储结构缺点:四,串的链式存储结构缺点:五,字符串匹配1,朴素的字符串匹配2,KMP匹配算法六,总结串–字符串一,前言串的定义串是由零个或多个字符组成的有限序列,又名字符串。空字符串零个字符的串就是空串。也就是常说的 “”二,串的比较字符串的比较实际是比较字符的值,根据不同的编码进行存储,最初的ASCII 到 Unicode。从最初的128个字符,到65w多。字符串的长度一样,每一个相对位置的字符值都一样,就可以说

2021-07-24 17:37:33 210 2

原创 数据结构-栈

目录栈一,栈的定义二,golang实现栈结构1.顺序结构2.链式结构三,双栈共享空间结构四,总结栈一,栈的定义栈是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶(top)。另一端称为栈底(bottom)。不含任何元素的栈称为空栈。栈又称为后进先出的线性表。(Last In Fist Out)LIFO 结构最先进栈的就一定最后出栈吗?当然不是,应该说是不一定,因为第一个进栈如果,第二个进栈前就出栈了,对吧。线性表有顺序结构和链式结构,同样栈也是这样。

2021-07-15 11:49:29 105 1

原创 分布式事务-三阶段提交

目录三阶段提交(3PC)前言改动点第一阶段 CanCommit第二阶段 PreCommit第三阶段 doCommit**执行提交**:**中断事务**总结三阶段提交(3PC)[]前言三阶段提交协议(3PC)主要是为了解决两阶段提交协议的阻塞问题,2pc存在的问题是当协作者崩溃时,参与者不能做出最后的选择。因此参与者可能在协作者恢复之前保持阻塞。三阶段提交(Three-phase commit),是二阶段提交(2PC)的改进版本。改动点引入超时机制。同时在协调者和参与者中都引入

2021-07-15 09:53:00 252 1

原创 分布式事务-两阶段提交

两阶段提交(2PC)目录两阶段提交(2PC)@[TOC](目录)一,两阶段提交(2PC)第一个阶段分为三步:第二阶段(正常情况)第二阶段(异常情况)二,2PC的缺点三,总结分布式事务的基本理论:基本遵循CPA理论,采用柔性事务特征,软状态或者最终一致性特点来保证最终一致性问题。一,两阶段提交(2PC)是一个非常经典的 强一致性,中心化的原子提交协议一个中心化的协调者节点,N个参与者节点组成。两个阶段:一个是投票阶段,提交/执行阶段。第一个阶段分为三步:第一步,协调者向所有的

2021-07-15 09:31:33 391 1

原创 经典排序算法 下篇【快速,堆排序,计数,桶,基数】

经典排序算法 下篇目录经典排序算法 下篇一,准备工作二,快速排序三,堆排序四,计数排序五,桶排序六,基数排序七,总结一,准备工作//获取随机的数组func GetArry(count int) []int { arr := make([]int, count) rand.Seed(time.Now().UnixNano()) for i := 0; i < count; i++ { arr[i] = rand.Intn(100) } return arr}//打印数组

2021-07-03 17:38:40 124 4

原创 经典排序算法 上篇【冒泡,选择,插入,希尔,归并】

经典排序算法 上篇目录经典排序算法 上篇一,准备工作二,冒泡排序三,选择排序四,插入排序五,希尔排序六,归并排序七,总结一,准备工作//获取随机的数组func GetArry(count int) []int { arr := make([]int, count) rand.Seed(time.Now().UnixNano()) for i := 0; i < count; i++ { arr[i] = rand.Intn(100) } return arr}//打印数

2021-07-02 15:59:24 123 2

原创 数据结构和算法--线性表

前言程序运行的基础就是数据结构和算法。数据结构非常的重要,既然是基础就得好好学习。线性表零个或多个数据元素的有限序列数组数组package mainimport "fmt"func main() { arry := []int{1, 5, 4, 8, 7, 6, 3, 11} fmt.Println(arry[2]) fmt.Println(findVal(arry,3))}//查询数组中是否存在要查找的值,返回数组下标,如果没有返回-1func findVal(arry

2021-06-26 20:50:11 100 6

原创 golang源码分析-bufio

前言​ 流工具包,提供了读取器和写入器的对象创建和一些工具方法。包介绍// Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer// object, creating another object (Reader or Writer) that also implements// the interface but provides buffering and some help for textua

2021-06-20 15:30:41 111 1

原创 Golang源码分析-error

Golang -源码分析文章目录Golang -源码分析前言一, errors 包UnwrapIsAS二,总结前言由于一直用golang开发应用,但是对于底层的实现却是一知半解,所以抽时间就自己看看golang的源码,并把一些源码进行分析,看看能不能学到大师的一点皮毛,也是对于golang这个语言来说有更深层次的学习和理解。抱着这个目的开始了我的golang源码分析。一, errors 包error/wrap.goUnwrap// Unwrap returns the result o

2021-06-10 16:02:04 364

原创 分布式一致性算法,协议

目录前言一,CAP定理二,算法paxos 算法zab 算法raft 算法nwr 协议三,总结前言在分布式系统中,无法忽略的就是数据一致性问题,随着分布式系统的大量应用,产生了很多解决一致性问题的算法。在此参考了一些博客,记录一下。一,CAP定理 一个分布式系统中不可能同时满足一致性,可用性和分区容错性这三个基本需求。最多只能满足其中的2个,不可能三者兼顾。二,算法 paxos 算法 首先多个角色分别是 提议人,接收提议人,执行提...

2021-06-09 14:32:06 108 2

原创 单例模式

单例模式介绍 保证一个类仅有一个实例,并提供一个访问它的全局访问点 懒汉单例 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new...

2021-05-26 20:05:35 72

原创 TypeScript 联合类型的学习

TypeScript 联合类型的学习首先先介绍下联合类型的作用。比如我有一个函数返回类型是Error,但是如果没有错误呢?我应该返回什么呢?null,undefined,void,never?一般只有null符合。undefined是对象未定义;void是函数不返回任何类型;never是因为特殊原因不会返回。我们这里需要返回类型。但是如果在TypeScript中开启了strictNullChecks:true 的开关的话。...

2021-05-24 20:06:58 100

空空如也

空空如也

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

TA关注的人

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