- 博客(45)
- 收藏
- 关注
原创 Vue实现一个分页组件
分页是WEB开发中很常用的功能,尤其是在各种前后端分离的今天,后端API返回数据,前端根据数据的count以及当前页码pageIndex来计算分页页码并渲染到页面上已经是一个很普通很常见的功能了。从最开始的jquery时代到现在的各种各样的前端框架时代,分页功能都是必不可少的。分页大多数(基本上)情况下都是对异步数据列表的处理,这里首先需要明白一下分页的流程。在已知每页显示数据量pageSiz...
2019-04-15 12:54:23 6123
原创 基于 Laravel Auth 实现自定义接口 API 用户认证详解
基于 laravel 默认的 auth 实现 api 认证现在微服务越来越流行了. 很多东西都拆分成独立的系统,各个系统之间没有直接的关系. 这样我们如果做用户认证肯定是统一的做一个独立的 用户认证 系统,而不是每个业务系统都要重新去写一遍用户认证相关的东西. 但是又遇到一个问题了. laravel 默认的auth 认证 是基于数据库做的,如果要微服务架构可怎么做呢?实现代码如下:User...
2019-04-15 12:48:33 5295
原创 js 实现chunk 按照指定个数数组分割
\/** * @param item * @param num * @returns {*} *\/export function split(item,num) { if(item.length <= 0){ return item; } let groupSize = Math.ceil(item.length \/ num) ; ...
2019-04-15 12:41:35 333
原创 mac 使用 docker搭建 kafka集群 + Zookeeper + kafka-manager
Kafka 搭建:建立Zookeeper容器:这里我们用最简单的方式创建一个独立的Zookeeper节点,如果要考虑zookeeper的高可用,可以将其做成一个集群,最好是能有多台机器。$ docker run -d --name zookeeper -p 2181:2181 -t wurstmeister\/zookeeper默认的,容器内配置文件在,\/conf\/zoo.cfg,...
2019-04-15 12:40:14 656
原创 LeetCode只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 410 11 01想了很久不知道怎么写,搜了一下题解用异或运算就可以啦。先介绍一下与、或、异或运算。1...
2019-04-15 00:43:42 98
原创 golang 根据分数计算排名,同分数排名相同
package mainimport ( "fmt" "sort")type userInfo struct { Uid int64 \/\/uid Score int64 \/\/分数 Rank int \/\/排名}type Score []userInfofunc (s Score) Len() int { re...
2019-04-15 00:43:42 905
原创 golang 数组面试题
第一题 array append扩容问题实例代码array_append.go\/** * Author: JeffreyBool * Date: 2019\/4\/17 * Time: 16:16 * Software: GoLand*\/package array\/** * arr 底层扩容知识点 *\/func ArrayAppend() []int {...
2019-04-15 00:43:42 227
原创 Golang 超大文件读取的两个方案
Golang超大文件读取的两个方案流处理方式分片处理去年的面试中我被问到超大文件你怎么处理,这个问题确实当时没多想,回来之后仔细研究和讨论了下这个问题,对大文件读取做了一个分析比如我们有一个log文件,运行了几年,有100G之大。按照我们之前的操作可能代码会这样写:func ReadFile(filePath string) []byte{ content, err :=...
2019-04-15 00:43:42 3648
原创 golang 官方依赖管理工具 dep 使用和持续集成
介绍go dep 依赖管理工具是为应用管理代码的,go get是为GOPATH管理代码的官方地址官方说明为啥要统一依赖管理dep 需要在Go 1.7及更高的版本中使用安装本文使用 golang 版本是 go1.9.3 需要自己安装 depgo get -v -u github.com\/golang\/dep\/cmd\/dep基础帮助参数depDep is a tool ...
2019-04-15 00:43:42 359
原创 剖析Redis常用数据类型对应的数据结构
Redis是一种key-value非关系型数据库列表 list这种数据类型是由两种方法实现的,一种是压缩列表ziplist , 另一种是双向循环链表.当数据量小的时候,列表就可以使用压缩列表的方式实现,具体需要同时满足下面两个条件:列表保存的单个数据小于64个字节.列表数据个数少于512个.关于压缩列表它并不是基础的数据结构,而是 Redis 自己设计的数据储存结构.它类似数据,...
2019-04-15 00:40:42 136
原创 跳表实现原理
跳表实现原理是一种动态的数据结构,它可以支持快速的插入、查找、查询操作.写起来并不复杂,甚至可以替代红黑树.对于一个单链表来讲,即使链表中的储存数据是有序的.如果我们想要在其中查找某个数据,也只能从头到尾遍历链表.这样的效率会很低,时间复杂度也很高 O(n).如何提升链表的查询效率呢? 我们对链表建立一级索引层.每两个节点提取一个节点到上一级.图中的 down 表示 down 指针...
2019-04-15 00:40:42 152
原创 《数据结构与算法之美》如何抓住重点,系统高效地学习数据结构与算法 (读后感)...
什么是数据结构?储存一组数据的方法,数据结构是为算法服务的,算法要作用在特定的数据结构之上.数据结构和算法相辅相成.什么是算法?广义上讲就是 "操作一组数据的方法...
2019-04-15 00:40:42 114
原创 《数据结构与算法之美》为什么要学习数据结构和算法 (读后感)
一、数据结构和算法是什么数据结构是指一组数据的存储结构算法就是操作数据的方法数据结构和算法是相辅相成的,数据结构是为算法服务的,而算法要作用在特定的数据结构之上二、学习的重点在什么地方数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此,我们就需要一个考量效率和资源消耗的方法,这就是复杂度分析方法。在学习数据结构和算法的过程中,要学习它的「来历」、「自身的特点」、「适合解...
2019-04-15 00:40:42 300
原创 《数据结构与算法之美》复杂度分析(上):如何分析、统计算法的执行效率和资源消耗 (读后感)...
什么是复杂度分析?数据结构和算法解决的是如何让计算机 更快、更省空间的执行。因此需要从两个方面评估数据结构和算法的优越性。分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。复杂度描述的是算法的执行时间或者占用空间的大小与数据规模增长关系。为什么需要复杂度分析?和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强。掌握复杂度分析,将能编写...
2019-04-15 00:40:42 155
原创 零起点认识微服务架构
来自 | http://www.cnblogs.com/imyalost/p/6792724.html目录如下:一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、SOA 和微服务的区别六、如何具体实践微服务七、常见的微服务设计模式和应用八、微服务的优点和缺点九、思考:意识的转变十、参考资料和推荐...
2019-04-12 19:06:50 267
原创 python 在for 循环里删除多个元素的坑
# -*- coding:utf-8 -*-list = [11,33,44,55,66,77,88]# 使用for 删除某个元素for i in list: if i == 33 or i == 44: list.remove(i)print(list)分析:当我们在for 循环里删除多个值的时候,发现只删除...
2019-04-12 19:06:46 339
原创 (转载) 有赞开源项目最佳实践
因为业务需求,有赞自己造了很多轮子,组件库尤其多,React,Vue,小程序都有涉及,其他开源项目有 zan-proxy 代理,PHP 的框架 zanphp 等。有人可能会觉得奇怪,为什么有赞要造这么多轮子?其实原因真的很简单,就是因为现有的替代品无法满足我们自身业务的需求,可能是不满足我们的定制需求,也可能是功能不符合我们要求。根据业务需要,我们总结了...
2019-04-12 19:06:42 341
原创 go闭包函数的特点
所谓闭包就是一个函数“捕获”了和它在同一作用域的其它常量和变量。这就意味着当闭包被调用的时候,不管在程序什么地方调用,闭包能够使用这些常量或者变量。它不关心这些捕获了的变量和常量是否已经超出了作用域,所以只有闭包还在使用它,这些变量就还会存在. package mainimport "fmt"func main() { //返回值为一...
2019-04-12 19:06:39 265
原创 go 结构体成员使用(指针变量)
package mainimport "fmt"//定义一个结构体类型type Student struct { id int name string sex byte //字符类型 age int addr string}func main() { //1、指针有合法指向后,才操作成...
2019-04-12 19:06:35 1756
原创 Mac Python 安装系列教材
Mac Python 安装:首先依赖 brew, 没有安装 brew的童鞋安装一下 brew./usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装 python3:brew install ...
2019-04-12 19:06:31 317
原创 go 数组比较和赋值
package mainimport "fmt"func main() { a := [5]int {1,2,3,4,5} b := [5]int {1,2,3,4,5} c := [5]int {1,2,3} fmt.Println("a==b",a==b) fmt.Println("a==c",a==c)...
2019-04-12 19:06:28 622
原创 你必须要知道的golang那些坑
分享出来几个go面试题,都非常简单,如果您有一些开发时候使用到的小技巧欢迎评论。第一题 defer和panic 执行先后顺序那些事:package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fm...
2019-04-12 19:06:24 604
原创 golang 基础 - 接口定义
demo4.gopackage mainimport "fmt"type Student struct { Name string Age int Sex int}func (this Student) init(name string,age int,sex int){ this.Age = age ...
2019-04-12 19:06:20 144
原创 golang日志框架之logrus
golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数对于更精细的日志级别、日志文件分割以及日志分发等方面并没有提供支持。所以催生了很多第三方的日志库,但是在golang的世界里,没有一个日志库像slf4j那样在Java中具有绝对统治地位。golang中,流行的日志框架包括logrus、zap、zerolog、seelo...
2019-04-12 19:06:16 264
原创 go json 解析到 map 类型
package mainimport ( "encoding/json" "fmt")func main() { jsonBuf := ` { "company": "itcast", "subjects": [ "Go", "C++", "Pytho...
2019-04-12 19:06:12 898
原创 go 实战并发爬虫(捧腹网)
package mainimport ( "fmt" "strconv" "net/http" "regexp" "strings" "os")func main() { var start,end int fmt.Printf("请输入起始页( >= 1) :") f...
2019-04-12 19:06:08 146
原创 python3 和 python2 input 功能的不同点
python3 和 python2 input的区别:python3会把输入的值当前一个字符串解析python2 被表当前变量来执行列子#-*- coding:utf-8 -*-name = input('你的名字是?')age = input('你的年龄是?')qq = input('你的qq是?')print("========...
2019-04-12 19:06:06 268
原创 5 个让你的开发更加轻松的辅助函数
data_get()data_get() 辅助方法能够让你使用[.]符号来获取数组或者对象中的值。array_get()方法也是同样的道理。如果数组或者对象的key不存在的话,这个方法第三个可选参数可以设置一个默认值。$array = ['albums' => ['rock' => ['count' => 75 ]]];$coun...
2019-04-12 19:06:01 214
原创 go不定参数类型
package mainimport "fmt"func main() { MyFunc(1,2,3,4,5,6,7,8,9) Myfunc1(11,22,3,44,566,777)}func Myfunc1(a, b int,args ...int) { fmt.Printf("a=%d , b= %d, args...
2019-04-12 19:05:58 314
原创 go 返回值变量默认值的问题
package mainimport "fmt"func main() { a, b, c := myfunc02() fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)}func myfunc02() (a,b,c int) { //fmt.Println(a,b,c)...
2019-04-12 19:05:55 552
原创 js 实现chunk 按照指定个数数组分割
/** * @param item * @param num * @returns {*} */export function split(item,num) { if(item.length <= 0){ return item; } let groupSize = Math.ceil(item.le...
2019-04-12 19:05:52 4229
原创 golang线程同步WaitGroup简介
WaitGroup 用于线程同步,WaitGroup等待一组线程集合完成,才会继续向下执行。 主线程 (goroutine) 调用 Add 来设置等待的线程(goroutine)数量。 然后每个线程(goroutine)运行,并在完成后调用 Done 。 同时,Wait 用来阻塞,直到所有线程(goroutine)完成才会向下执行。对官方的代码做简单修改...
2019-04-12 19:05:48 192
原创 python 函数变量作用域和变量类型解说
不可变类型:#-*- coding=utf-8 -*-a = 100def test(num): # 如果是不可变类型,函数不会修改原始的值.如果是可变类型.函数默认是引用传递.会修改以前的值 # num +=num print(num)test(a)print(a)代码效果解读:变量a是整型属于不可变类型,...
2019-04-12 19:05:45 194
原创 基于 laravel Auth 实现自定义接口 api 用户认证详解
基于 laravel 默认的 auth 实现 api 认证现在微服务越来越流行了. 很多东西都拆分成独立的系统,各个系统时间没有直接的关系. 这样我们如果做用户认证肯定是统一的做一个独立的 用户认证 系统,而不是每个业务系统都要重新去写一遍用户认证相关的东西. 但是又遇到一个问题了. laravel 默认的auth 认证 是基于数据库做的,如果要微服务...
2019-04-12 19:05:40 1540
原创 golang 官方依赖管理工具 dep 使用和持续集成
介绍go dep 依赖管理工具是为应用管理代码的,go get是为GOPATH管理代码的官方地址官方说明为啥要统一依赖管理dep 需要在Go 1.7及更高的版本中使用安装本文使用 golang 版本是 go1.9.3 需要自己安装 depgo get -v -u github.com/golang/dep/cmd/dep基础帮助参数d...
2019-04-12 19:05:36 125
原创 python 获取某个对象的引用地址
class Dog(object): passdog = Dog()print(id(dog))dog2 = Dog()print(id(dog2))效果carbon.png
2019-04-12 19:05:32 517
原创 golang交叉编译
1、Mac 下编译 Linux 和 Windows 64位可执行程序CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go2、Linux 下编译 Mac 和 Windows 64位可...
2019-04-12 19:05:24 101
原创 go 利用 tcp 编写一个简单 tcp 服务端和客户端(服务端逻辑)
package mainimport ( "net" "fmt")func main() { //监听 Listener, err := net.Listen("tcp", "127.0.0.1:8000") if (err != nil) { fmt.Println("err = ", ...
2019-04-12 19:05:20 472
原创 golang 利用接口实现多态统计计数器
计数器实现:我们怎么利用 golang 接口实现多态计数器呢? 直接上代码...statistics.gopackage statisticsimport ( "sync")var GpsClient = new(dataMap)var CanClient = new(dataMap)type statistic inte...
2019-04-12 19:05:16 941
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人