自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (14)
  • 收藏
  • 关注

原创 程序员悟道

走过了十年的程序员生涯,做过很多项目,也担任过很多角色,经历过成功的喜乐也历经过失败时的悲伤。如果有人在我的职业路上给我些许指引或许我的人生会大不同。下面我总结一下我的个人感悟,希望对大家带来帮助。了解并认同你的企业文化只有一群志趣相投的人在一起才能共同成就一翻事业,有帮人怎么能志趣相投呢?这肯定是以企业文化为核心的,需要大家去契合、去认可、去努力。开心的团队才能做好事,做好创新所以日常工...

2019-05-21 20:39:20 338

原创 HTTPS原理

先说一下http吧,这是传输数据没有经过任何处理的明文传输形式,等于是让你的数据在网络上裸奔,如果私密信息被非法盗用后果不堪设想。所以https就出现了,它是怎么工作的呢?先说它的工作流程:1、客户端对服务端发起请,并带上客户端生成的随机数以及客户端支持的加密套件2、服务端收到后生成服务端证书,并返回在服务端生成的随机数据与服务端证书3、客户端根据之前客户端生成的随机数+服务端生成的随机...

2019-05-20 20:45:35 226

原创 使用nginx防盗链

1、防盗链目的防止资源被非法盗用2、防盗链设置思路首要任务是区别哪些请求是非法请求3、基于http refer防盗链配置模块打开nginx的conf配置文件,并按下面说明做配置none : 允许没有http_refer的请求访问资源;blocked : 允许不是http://开头的,不带协议的请求访问资源;10.100.9.78 : 只允许指定ip来的请求访问资源;locatio...

2019-05-15 20:46:40 257

原创 技术团队管理

管理并非千篇一律,不同企业甚至不同团队都有着不同的风格和文化,所谓的管理就是让项目推进更加顺畅、让团队越来越牛、让公司的代码底蕴越来越雄厚。 整个团队就像是一个不停运转着的机器,每个队员都是其它的一个齿轮,做为管理者就是要让每个齿轮运转的都很顺畅,要留意着团队运转时的卡点并及时的为团队解决障碍。程序员特点对技术是有追求的有点骄傲的多数程序员是不善于表达和沟通的他们是需要加班...

2019-05-13 21:00:33 1847

原创 缓存头Cache-Control的含义与使用

缓存头是指:response的返回结果可被中间经过的各代理服务器以及请求浏览器缓存缓存的意义是我不需要每次都到业务服务器去请求数据,只需要在中间缓存中获取即可,提升了获取数据效率及响应速度,当然数据变化频率很快的场景并不适合开启Cache-Control。可缓存参数:public 、private 、no-cachepublic : 可被中间经过的各代理服务器以及请求浏览器缓存privat...

2019-05-06 15:43:43 1480

原创 http跨域

什么是跨域?所有支持Javascript的浏览器都会使用同源策略这个安全策略。同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当一个浏览器的两个tab页中分别打开百度和谷歌的页面当一个百度浏览器执行一个脚本的时候会检查这个脚本是属于哪个页面的即检查是否同源,只有和百度同源的脚本才会...

2019-05-06 14:08:00 163

原创 HTTP报文格式

报文格式在这里分两部分来说,分别是请求报文与响应报文。请求报文请求报文首行 : http方法 -> GET url -> /api/test/aaa.text http协议 -> http/1.1header : Accept : text/* Accept-Language : en,fr响应报文首行 : http协议 ...

2019-05-05 20:47:28 179

原创 http3次握手

首先要创建http连接需要先与服务器建立一个tcp connection。对与http来说它是应用层的协义,它只有请求和响应,不存在连接的,它们都是数据包,所以这时需要建立一个tcp connection来做网络上的数据包传输。 tcp connection本质上是可以一直连接着的,对与http的不同版本,对这个机制的用法不一样。 比如http1.0里用一次就关闭,http1.1时主可以做保持连...

2019-04-29 20:51:41 1514

原创 http1.0与2.0的区别

说http1.0之前先说一下http0.9http0.9只有get请求,也没有header的概念,因为那个时候的需求很简单。 随着信息化的发展只有get这样的简单的功能定义显示是不够用的,所以http1.0出现了。http1.0除get请求外还增加了post/head增加了status code和header多字符集支持、多部分发送、权限、缓存等http1.1除get/post/h...

2019-04-29 09:47:22 167

原创 中台战略

“大中台小前台”这个词不断的引领着新一代的服务理念,它之所以牛是因为它解决了很多实实在在的问题。大中台:把很多公共的服务给集中管理,统一提供优质的服务小前台:前台应用服务在大中台的支撑下,做的事情越来越小,所以叫做小前台,可以快速的响应服务的变化。为什么出现大中台的概念当一个企业的业务线越来越多,很多新的服务也就随之出现了,每个服务都要面临重复造轮子的尴尬局面,轮子造的越多花费的人力越多,...

2019-04-26 11:33:29 1140

原创 nginx采用的多路复用epoll

什么是epoll模型?是一个linux的内核模块,是新的比较高效的IO复用的内核模型,epoll模型就是用来实现IO复用的。什么是IO复用?如果一个线程只能处理一个i/o流,那么要处理多个i/o流就需要多个线程或多个进程,这样显然是不够高效的。 那么一个线程能处理多个i/o流的模式就是i/o复用模式。i/o复用模式解决了并发的情况下i/o阻塞的问题,要尽量让你的程序是非阻塞的,这样会更通畅...

2019-04-19 11:37:32 593

原创 反向代理名词解释

不愿意带着疑惑向前走的同学,初次听到反向代理的同学都会有各种疑惑,比如说nginx为什么是反向代理?哪里反了?怎么个反法?其实这个概念并没那么高深,和正向代理对比一下就一目了然了。正向代理(客户端代理):代表客户端,比如我们用的翻墙服务器代理就是正向代理,代表着客户端向服务器发出请求。反正代理(服务端代理):代表服务端,比如nginx, 就代理着服务器,客户发送请求到nginx,再由ngin...

2019-04-18 14:35:00 291

原创 docker日志文件挂载

为什么需要挂载使用docker时,目录挂载功能是非常重要的,为什么呢?如果日志存放在容器里,当重启时或删除容器后日志会丢失这个问题用docker目录挂载功能可以很好的解决具体步骤第一步: 确定自己的docker容器中的日志目录我的项目中是/logs第二步:创建宿主机的挂载目录我选择的是/usr/local/app/logs第三步:运行dockerdocker run -it -...

2019-04-16 09:35:32 8573 1

转载 Sql注入

本文转载自:https://www.jianshu.com/p/078df7a35671 感谢作者分享经验一、Sql注入简介Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。二、Web 程序三层架构三层架构(3-tier architecture) 通常意义上就是将整个业...

2019-04-12 18:05:25 132

原创 MD5和Hash

不止一次有人问我hash与MD5的区别以及如何选择使用,今天又碰到了。所以我在这里写一下吧。首先,MD5与hash都是单向加密的算法,可以把一些信息进行单向加密成固定长度的散列码。(hash算法即常说的散列算法,也被人翻译成哈希)其次,MD5也是hash算法的一种,常见的hash算法还有sha1,sha2等MD5也被称为信息摘要算法,由于其算法复杂不够,容易被暴力破解的。SHA1算法也存在...

2019-04-09 18:10:59 22269

原创 bloom filter

bloom filter是什么?Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员。如果检测结果为是,该元素不一定在集合中;但如果检测结果为否,该元素一定不在集合中。因此Bloom filter具有100%的召回率。这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝...

2019-03-29 14:26:18 638

原创 算法_迷宫寻路算法_广度优先

先出一个迷宫数据文件:maze.in6 80 1 0 0 0 1 1 00 0 0 1 0 1 1 00 1 0 1 0 1 1 01 0 0 1 0 0 0 10 0 1 0 1 1 0 01 1 0 0 0 1 1 1这个文件描述了一个6行8列的迷宫数据,0表示路,1表示墙接下来要做的就是要使用广度优先算法把这个迷宫给走通,下面简单介绍一下思路,细节部分直接上代码:1、...

2019-03-27 15:19:12 482

原创 GO接口方法集

interface! method! struct!go不是面向对象的语言,它里面没有类和对象。go是函数式的编程语言,它里面只有以interface、struct、method。直接上段我整理过的可执行的代码,我在里面加入了注释,自己看吧:package mainimport "fmt"type Do interface { Speak(content string)}t...

2019-03-26 15:49:46 267

原创 GO chan select

select功能:可以在select中监听多个chan,哪个chan来了就处理哪个,这样的好处是可以对多个chan进行并行处理。下面给出一个例子,例子的功能是:1、创建两个chan并向其中每间隔1.5秒写入一个值,chan收到值后直接写入worker chan中2、worker chan收到值直接输出main.gopackage mainimport ( "fmt" "math...

2019-03-25 16:08:33 2296

原创 GO协程间通信的同步问题

go语言的创作者的一句话:“不要通过共享内存来通讯,要通过通讯来共享内存”我们已经使用过channel, 但是在前面几例中都是使用time.Sleep()方法来保障主线不被那么快的结束,从而让子协程中的fmt.print()有机会被输出。 但是这样很不友好,也不应该被使用,用channel通讯来试试吧代码1代码思路:每次写入 in chan时也同时写入done chan, done cha...

2019-03-22 17:28:29 918

原创 GO goroutine死锁

死锁现场1 :package mainfunc main() { ch := make(chan int) <- ch}运行结果:fatal error: all goroutines are asleep - deadlock!分析:只有一个主协程,在<-ch时就阻塞上了,并未检测到其它的活跃并相关的协程死锁现场2 :package mainimpor...

2019-03-21 18:32:46 638

原创 GO chan缓冲通道

非缓冲通道的工作方式是读协程在读取chan时,若读取不到会就会阻塞在那里,直到读取到数据为止。写入也是这样如果没有其它协程读取本次的写入,写入协程也同样会阻塞在这里等待。这种方式明显降低程序运行的效率,如果能写与读互不阻塞是不是就会快很多呢? 可不可以相互约定一块空间,我把数据放在指定的地方,读取者也去指定的地方读取,这样我把数据放在那里后立刻就可以去做别的事情。缓冲chan就可以做这件事情,...

2019-03-21 17:28:04 476

原创 GO chan单向通道

在定义chan时可以指定chan是只读或是只写,这样会使程序只读性更强,更清晰//定义只写chanvar in chan<- string//定义只读chanvar out <-chan string写段代码来试试吧:package mainimport ( "fmt" "time")//定义输入通道func worker1(in chan<- st...

2019-03-21 16:30:29 469

原创 GO chan思绪整理(非缓冲chan)

初次学习go chan思路整理过程,当然也不免会碰到些低级错误代码package mainimport "fmt"func main() { ch := make(chan int) ch <- 20 ch <- 21 value := <-ch fmt.Printf("%s\n",value) value = <-ch fmt.Printf...

2019-03-21 14:12:38 147

原创 GO写网络爬虫(单任务版架构设计)

说是架构设计,但是爬虫框架大同小异,这里也是说明一下原理,把之前做的一些功能给模块化到架构中。先上个图吧这就是引擎中各组件的任务职能,各施其职发挥出种组件的特点:1、种子就是原始URL没什么好说明的2、爬虫引擎对爬虫种子或其它任务进行调度3、网页获取器主要任务是对网页内容进行读取,包括网页编码解析及转码等工作4、解析器对网页内容进行解析,如何解析是要自己开发逻辑解析器的,这个解...

2019-03-19 18:18:31 280

原创 GO手写网络爬虫三(获取珍爱城市列表)

直接上可执行的代码:发贴时这段是可直接获取到的,若你在执行时网网页结构已改变,可根据代码中的逻辑说明自行修改。package mainimport ( &quot;bufio&quot; &quot;fmt&quot; &quot;golang.org/x/net/html/charset&quot; &quot;golang.org/x/text/encoding&quot; &quot;golang.org/x/te

2019-03-15 15:21:36 285

原创 GO手写网络爬虫二(正则表达式匹配)

本篇主要演示一下GO用正则表达式匹配文本信息的用法,为后面的爬虫做准备工作:代码中已有详细的注释,直接贴上可执行的代码:package mainimport ( &quot;fmt&quot; &quot;regexp&quot;)const text = `arno's email is [email protected] lisa's email is [email protected] luca...

2019-03-15 11:14:11 580

原创 GO手写网络爬虫一(读取网页)

直接上代码,里面有详细的注释:package mainimport ( "bufio" "fmt" "golang.org/x/net/html/charset" "golang.org/x/text/encoding" "golang.org/x/text/transform" "io" "io/ioutil" "net/http&q

2019-03-15 11:03:45 361

原创 GO被墙了包下载工具gopm

刚用golang的时候让我特别意外的是golang.org的包无法下载,经查证在中国大陆是被墙了,好一翻折腾后才通过github镜像把这个包给安装上了。今天发现了一个特别好用的工具,分享给大家,gopm !gopm的安装go get -u github.com/gpmgo/gopmgopm使用以下载 golang.org/x/net/html为例gopm get -g -v gola...

2019-03-14 18:01:57 5400 7

原创 GO函数式编程(二叉树应用)

先看一下通常的二叉树写法,上代码:package mainimport ( "fmt")type Node struct { LeftNode *Node RightNode *Node Value int}func buildTree() Node { var tree Node tree.Value = 0 tree.LeftNode = new(Node)...

2019-03-13 16:14:40 205

原创 GO函数式编程详解及练习

GO是函数式编程,不是面像对象的语言,它没有对象的概念,一切都是根据结构体去分配内存,GO中的函数也是如此。先上一段代码:package mainimport "fmt"func adder1() func(i int) int { sum := 0 return func(v int) int { sum += v return sum }}func main()...

2019-03-13 14:03:23 209

原创 GO接口定义与实现

如果你看它像只鸭子,那么它就是一只鸭子,这就是duck typeing的概念。如果你是个小朋友你可能会把它当作小黄鸭,如果你是个吃货可能会把它当作是别的什么东西。这个概念是有点抽像的。先上段代码看看go的接口定义与实现:GreenDuck.gopackage ducktype GreenDuck struct {}func (duck GreenDuck)GetInfo()str...

2019-03-12 17:27:41 3049

原创 GO数组与切片

定义:数组是值类型,是一组同类型数据的集合,通过从0开始的下标索引访问元素值。在初始化后长度是固定的,无法修改其长度。当作为方法的参数传入时将复制一份数组而不是引用同一指针。数组的长度也是其类型的一部分,通过内置函数len(array)获取其长度。切片的长度是不固定的,可以追加元素,数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型Slices切片(...

2019-01-10 11:44:21 156

原创 GO指针、值类型的区别整理

定义:A方法传一个参数p 至B方法后,当B方法改变了p的值A方法中p值也改变了就了传指针A方法中p值没改变就是传值值类型的变量:值类型的变量是直接指向内存中的值,值都是存储在栈中,当用等号进行赋值时,实际上是进行了一次拷贝, 如 i = j 实际上是进行了一次拷贝。GO中值类型有int ,float,bool,string等,除了数组、切片、结构体、channel外都是值类型&amp;a...

2019-01-10 10:35:44 299 1

原创 docker开放能力

今天把golang服务加入到docker里面,碰到了一个问题:register db Ping default, dial tcp 10.16.58.219:3306: connect: no route to host这是因为docker没有开放权限,具体解决方法如下方法一:简单粗暴,权限全放开docker run命令中加入参数: --privileged=true原命令doc...

2019-01-07 14:06:06 226

转载 使用 Docker 部署 Spring Boot

Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署。一个简单 Spring Boot 项目在 pom.xml 中 ,使用 Spring Boot 2.0 相关依赖&amp;lt;parent&amp;gt...

2018-12-12 16:15:58 443

原创 maven与本地JAR

maven是JAVA的资源管理神器,你要是用GO是没办法想受到这样的待遇的,但是现实中难免碰到使用本地JAR包的情况,下面就举个例子:小米推送是免费的,但是服务支持并不是很好,SDK没有提供maven依懒,只支持JAR下载。希望达到的目标通过maven打包成jetty jar ,然后直接运行步骤一: 把依懒JAR 拷贝到src/libs目录下步骤二:以下图中的方式把jar包加入maven...

2018-12-12 11:37:47 110

原创 敏捷开发004-转型失败原因总结

上个月有家公司跟我说敏捷转型失败的事情,从他们的描述中总结一下他们转型失败原因:一、太激进,刚用敏捷就想得到立杆见影的效果模式转型很忌讳激进,心态一定要好二、产品与团队茅盾加深在敏捷模式下,PO的权力是大了一点的,给了团队过大的压力;团队除了应用开发外还有代码重构以及内部优化上面;这时scrum master的作用就需要展现出来,包括技术判断力和人格魅力,但是他们的scrum mast...

2018-12-04 16:13:15 439

原创 AWS大数据之组件整合

kafka或kinesis 做数据收集S3+redshift 做数仓EMR做计算RDS做数据市场AWS Glue / AWS Data Pipeline 做数据集成这些组件配合起来,几乎可以做各种方式的数据分析kinesis还是比较推荐,延迟时间可以配置的算是实时的,而且功能会多一点,聚合、过滤什么的都可以...

2018-12-04 14:23:48 1171

原创 AWS大数据之kinesis

kinesis中又包括了Amazon Kinesis Streams与Amazon Kinesis FirehoseAmazon Kinesis Streams通过 Amazon Kinesis Streams,您可以构建自己的自定义应用程序来处理或分析流数据,以满足特定需求。它能够每小时从成千上万个来源连续捕获和存储数 TB 的数据。然后,您可以构建应用程序来处理来自 Amazon Kine...

2018-12-04 14:15:16 3562

小码哥 任小龙 java笔记 java基础

小码哥最棒

2017-08-12

阿里巴巴开发手册

大神们开发中积累的经验和规范

2017-08-12

flex教程,flex学习资料

flex学习资料,flex教程,flex初学者,flex文档

2010-08-19

pv3d入门精典,pv3d入门,pv3d文档,pv3d API,PV3D中文API

灰常好的一个文档 pv3d入门,pv3d文档,pv3d API,PV3D中文API

2010-08-18

sql内存管理机制

从开发者的角度来阐述了SQL SERVER 2000内存管理的内部机制

2008-08-08

深入浅出讲解SQL索引结构

索引是一门艺术,创建一个好的索引不容易,所以要从根本上去了解索引

2008-08-08

sql索引提高数据库性能

好的索引可以非常有效的提高数据库的性能,想要设计好一个索引却是一件不容易的事,所以有人说索引是一门艺术

2008-08-08

SQL事务

本文档详细的讲述了SQL事务的隔离技术

2008-08-08

java模式源代码

本人买书时自带的源码,放在这里供大家下载,很不错的..

2008-08-06

java性能优化

本文档讲解了日常编程中对java的性能优化

2008-08-06

数据库锁机制

深入讲解数据库的锁机制

2008-08-06

sql性能优化

本书用精简,有效的语句描述了SQL的查询,几乎含盖了所有SQL的查询...

2008-08-04

j2ee 文档

与大家分享,如果下载不了请与本人联系....QQ:115791238

2008-05-13

空空如也

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

TA关注的人

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