自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GeekDavis 的博客

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(22)
  • 资源 (23)
  • 收藏
  • 关注

原创 Golang 标准库 tips -- context

本文目录结构:gls假如没有 Contextcontext 的实现原理context 主要功能 实现超时控制 实现错误取消 防止 groutine 泄露 实现数据同步获取 context 里面所有的元素context 案例分析 http.Requstcontext 案例分析 gin.Contextcontext 调用栈太深问题context 的最佳实践glsGo 没有 gls(goroutine local storage) 协程本地存储的概念,不能将数据和 groutine

2021-07-22 00:13:01 619 2

原创 Golang 标准库 tips -- waitgroup

WaitGroup 用于线程同步,很多场景下为了提高并发需要开多个协程执行,但是又需要等待多个协程的结果都返回的情况下才进行后续逻辑处理,这种情况下可以通过 WaitGroup 提供的方法阻塞主线程的执行,直到所有的 goroutine 执行完成。本文目录结构:WaitGroup 不能被值拷贝Add 需要在 Wait 之前调用使用 channel 实现 WaitGroup 的功能Add 和 Done 数量问题WaitGroup 和 channel 控制并发数WaitGroup 和 channe

2021-07-21 23:43:48 458

原创 Golang 标准库 tips -- error

本文分析一下 error 的演进历程以及最佳实践,从而对 error 有一个整体的认识以及标准库里面 error 使用上的一些问题。本文目录结构error 的演进历程 1.13 之前的 error pkg/errors 1.13 error pkg/errors 适配 1.13 error 2.0 error 提议error 最佳实践

2021-07-21 19:45:05 462

原创 Golang 标准库 tips -- defer

defer 关键字用来标记最后执行的 Go 语句,一般用在资源释放、关闭连接等操作,会在函数返回前调用,defer 的执行顺序是先进后出,当同时定义了多个 defer 代码块时,golang 按照先定义后执行的顺序依次调用 defer。defer 与参数解析defer 在被声明的时候,defer 中执行的参数就已经被实现解析确定了而不是在 return 之后,如下代码定义了 i 之后,接着通过 defer 打印 i,后面的操作对 i 进行自增,程序会在结束的时候打印 0 而不是 1。func main

2021-07-21 00:54:03 175 1

原创 Golang 标准库 tips -- select

Golang 的 select 语句的作用是用来监听多个 channel 的读写操作,当 channel 读写操作发生时,会触发对于的 case 执行。在实际使用过程中,有以下需要注意的地方。for-select 循环退出我们在普通的 for 循环中,如果想退出循环,可以使用 break 语法退出,想要忽略本地循环继续下一次迭代可以通过 continue 来控制,但是在 selet 的 for 循环中,continue 的作用作用还是忽略本地循环继续下次循环。但是 break 的作用却是跳出本次 sel

2021-07-18 23:34:21 648 1

原创 Golang 安装以及升级版本脚本

官方会经常发布 Golang 新版来修复一些补丁,所以版本有更新的话,我们也需要了解新版本的特性以及在服务器上升级 Golang 版本到最新,以下介绍以源码的方式来安装以及更新 Golang 版本。第一步:到官网上下载对应的操作系统的最新的 Golang 版本:https://studygolang.com/dl在 home 目录下建立 goinstall 目录,然后在该目录下创建升级部署...

2018-03-03 18:21:58 30557 1

原创 Golang 项目部署实战

一直认为不懂部署的开发工程师不是好的开发工程师,以下以一些实例讲解自己在项目中的 Golang 后端部署的情况。一般部署脚本应该具有构建、启动、停止、回滚已经查看记录日志等功能,以下分别将这些功能以单个脚本的形式给出,当然也可以写成Makefile 的形式。单个部署脚本的形式,在一个目录下建立如下文件:bin # 目录,用于存放每次 build 之后存放的二进制文件app.log #...

2018-03-03 16:54:14 19098 1

原创 Nginx 线上配置实例

1 /etc/nginx/nginx.conf,在主配置下设置 /etc/nginx/conf.d/*.confuser nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections...

2018-03-02 15:01:44 11224

原创 Golang 位操作符总结

位运算可能在平常的编程中使用的并不多,但涉及到底层优化,一些算法及源码可能会经常遇见,下面先回顾一下位操作符的基础:与操作:& 1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0或操作:! 1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 & 0 = 0异或:^ 1 ^ 1 = ...

2018-02-11 11:10:01 4991

原创 Golang 验证 struct 字段的数据格式

假设我们有如下结构体:type User struct { Id int Name string Bio string Email string }我们需要对结构体内的字段进行验证合法性:Id的值在某一个范围内。 Name的长度在某一个范围内。 Email格式正确。 我们可能会这么写:user := User{ Id:

2017-11-14 10:53:48 3031

原创 Nginx 常见配置总结

以下总结的都是自己项目中用到的关于 nginx 的配置知识点,了解了以下的关于 nginx 的配置对于一些常见关于 nginx 的配置应该是没有什么问题的,后续项目中如果有遇到新的知识点会来补充:1. nginx 的匹配规则 关于 nginx 的匹配规则是学习 nginx 必须要了解的,也可以说懂了 nginx 的匹配规则就相当于打通了 nginx 学习的仍督二脉,以下直接给到一些总结: ...

2017-10-22 16:54:45 3701

原创 Golang 闭包的理解

和变量的声明不同,Go语言不能在函数里声明另外一个函数。所以在Go的源文件里,函数声明都是出现在最外层的。 “声明”就是把一种类型的变量和一个名字联系起来。 Go里有函数类型的变量,这样,虽然不能在一个函数里直接声明另一个函数,但是可以在一个函数中声明一个函数类型的变量,此时的函数称为闭包(closure)。

2017-05-14 19:13:35 4724 2

原创 Golang 中操作 Mongo Update 的方法

这篇博客主要记录下 Golang 中引入 Mongo 数据库对 Mongo 的修改操作的方法。使用gopkg.in/mgo.v2库操作,修改操作主要使用mongodb中Collection对象的Update、UpdateAll、UpdateId、Upsert、UpsertId方法。统一封装下getDB方法package mainimport ( "fmt" "gopkg.in/mgo.

2017-05-07 01:39:26 10954

原创 Golang 向 Templates 插入对象的值

Go对象可以插入到template中,然后把对象的值表现在template中,你可以一层层的分解这个对象,去找他的子字段,当前对象用’.’来表示,所以当当前对象是一个string的时候,你可以用{{.}}。这个包默认使用fmt包来把插入的对象转成string插入某个对象字段的值,我们在字段名字前面加上一个’.’前缀就可以了,例如我们定义一个structtype Person struct {

2017-04-07 14:21:03 893

原创 MongoDB 增删改查与 Golang 的语法实现

这篇文章主要建设 MongDb 中的增删改成与在 Golang 中的具体实现

2017-02-06 16:27:24 4506

原创 MongoDB 关于索引操作命令实例详解

1.查看索引: db.COLLECTION_NAME.getIndexes()[ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "mars.COLLECTION_NAME" }]2.创建索引: 数字 1 表

2017-02-03 16:32:30 2166

原创 Golang 关于通道 Chan 详解

首先我们来看线程,在golang里面也叫goroutine在读这篇文章之前,我们需要了解一下并发与并行。golang的线程是一种并发机制,而不是并行。它们之间的区别大家可以上网搜一下,网上有很多的介绍。下面我们先来看一个例子吧import( "fmt")funcmain(){ go fmt.Println("1") fmt.Println("2") }在go

2017-01-15 20:34:20 60091 12

原创 Golang Cron 定时任务分析

1、cron 表达式的基本格式 用过 linux 的应该对 cron 有所了解。linux 中可以通过 crontab -e 来配置定时任务。不过,linux 中的 cron 只能精确到分钟。而我们这里要讨论的 Go 实现的 cron 可以精确到秒,除了这点比较大的区别外,cron 表达式的基本语法是类似的。(如果使用过 Java 中的 Quartz,对 cron 表达式应该比较了解,而且它和这里

2017-01-14 23:25:45 10270

原创 一篇文章详解请求头Host的概念

我们知道Http请求头信息里面会带有一个Host字段,很多人不是很清楚这个字段具体的作用或者用法,包括我被很多人问过也曾经有些迷茫,这里具体扫盲下。我们知道一个IP地址可以对应多个域名,比如假设我有这么几个域名www.qiniu.com,www.taobao.com和www.jd.com然后在域名提供商那通过A记录或者CNAME记录的方式最终都和我的虚拟机服务器IP 111.111.111.111关

2016-04-20 01:48:14 35740 5

原创 有关 dig 命令的实用脚本

这里直接给出脚本以及执行的效果图,主要判断了一下cdn然后可以直接过滤url,默认就是dig +域名 +short。 脚本qdig(随便可以取一个名字)如下:#!/usr/bin/env bashc=$(echo $1 | awk -F '://' '{print $1}')if [ "$c" = "http" ] || [ "$c" = "https" ]; then b=$(ech

2016-01-22 17:02:59 2777

原创 CentOS 定时运行脚本配置

很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如使用七牛的工具上传,如果同步文件里面有新增加一个文件,这个时候我们可以提供定时脚本去完成我们需要的同步命令(七牛的qrsbox工具是自动会同步的,只需要在同步文件夹里面增加一个文件就会自动监听上传)。1.安装crontab[root@CentOS ~]# yum install vixie-cron[root@CentOS ~]# yu

2016-01-22 16:30:30 30585 4

原创 vi/vim 复制剪切粘贴以及常用命令小结

接触linux操作系统之后使用vi/vim编辑器用的就比较多,其实vi/vim编辑文件特别方便,但是一些常见的指令模式下的命令确很容易忘,特别是复制剪切粘贴经常忘,所以小结下以后查用起来比较方便。1.复制剪切粘贴撤销 复制: 复制一行则:yy 复制三行则:3yy,即从当前光标+下两行。 复制当前光标所在的位置到行尾:y$ 复制当前光标所在的位置到行首:y^剪切: 剪切一行:dd 前切三

2016-01-21 10:34:24 62215

Go Web编程 郑兆雄[带目录]pdf

《Go Web 编程》原名《Go Web Programming》,原书由新加坡开发者郑兆雄(Sau Sheong Chang)创作、 Manning 出版社出版,人名邮电出版社引进了该书的中文版权,并将其交由黄健宏进行翻译。 《Go Web 编程》一书围绕一个网络论坛 作为例子,教授读者如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件去构建一个 Go Web 应用,然后在该应用的基础上,构建出相应的 Web 服务。 值得一提的是,本书在教授 Go Web 开发方法时,基本上只会用到 Go 语言自带的标准库,而不会用到任何特定的 Web 框架:这使得读者学习到的知识不会受到特定的框架所限制,即使将来有需要用到现成的框架又或者自行构建框架,读者仍然会从本书介绍的知识中获益。 除了教授具体的 Web 开发方法之外,本书还会教授读者如何对 Go Web 应用进行测试,如何使用 Go 的并发特性去提高 Web 应用的性能,以及如何在 Heroku 、 Google App Engine 、 Digital Ocean 等云端平台上部署 Go Web 应用,并在有需要的时候,向读者传授一些 Go Web 开发方面的经验和提示。这些重要的实践知识将帮助

2018-05-03

Go并发编程实战 第2版[带目录]pdf

1.紧跟Go的1.8版本。 在这个行当的各位都应该知道,学技术就要学最新的技术。即使暂时用不上,也要在思维和思路上与技术前沿同步。更何况对于Go语言来说,版本间的向后兼容做得如此之好,我们更有理由跟上最新版本,享受语言本身带来的红利(更丰富的库、更高的性能,等等)。 2.章节结构和内容都有大幅调整。 为了更合理、更科学地为大家呈现Go语言的独特魅力和内在奥妙,我和编辑们共同确定了新的大纲和结构。在第2版里,基础编程讲得少了(更易速查),并发编程讲得更多了(更加深入和细致)。 3.示例代码得到全面且彻底的修订。 第1版的示例代码无论从编排、设计和实现水准上都已经落后了,且无法体现Go1.8的最新变化。在本次改版中,我完全改变了代码包的编排方式,可以让大家快速地找到每章每节的实例。同时,我几乎对所有中大型的示例都进行了改造,也几乎改进了所有示例代码文件。

2018-05-03

深度学习 中文版.pdf

这本书的主题——深度学习是通向人工智能的途径之一。具体来说,它 是机器学习的一种,一种能够使计算机系统从经验和数据中得到提高的技术。我们 坚信机器学习可以构建出在复杂实际环境下运行的AI系统,并且是唯一切实可行的 方法。深度学习是一种特定类型的机器学习,具有强大的能力和灵活性,它将大千 世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念、从一般抽 象概括到高级抽象表示)。

2018-03-30

解析卷积神经网络——深度学习实践手册.pdf

这是一本面向中文读者轻量级、偏实用的深度学习工具书,本书内容侧重深 度卷积神经网络的基础知识和实践应用。为了使更多不同技术背景的读者通过 本书对卷积神经网络和深度学习有所了解,笔者试图尽可能少的使用晦涩的数 学公式而尽可能多的使用具体的图表形象表达。本书的受众为对卷积神经网络 和深度学习感兴趣的入门者,以及没有机器学习背景但希望能快速掌握该方面 知识并将其应用于实际问题的各行从业者。为方便读者,本书附录给出了一些 相关数学基础知识简介。

2018-03-30

TensorFlow实战_黄文坚[带书签].pdf

《TensorFlow实战》黄文坚(完整中文书),TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

2018-03-30

Tensorflow 实战Google深度学习框架[带书签].pdf

《Tensorflow:实战Google深度学习框架》为使用TensorFlow深度学习框架的入门参考书,旨在帮助读者以最快、最有效的方式上手TensorFlow和深度学习。书中省略了深度学习繁琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow样例程序介绍如何使用深度学习解决这些问题。《Tensorflow:实战Google深度学习框架》包含了深度学习的入门知识和大量实践经验,是走进这个最新、最火的人工智能领域的首选参考书。

2018-03-30

神经网络与机器学习.pdf

本书不但注重对数学分析方法和理论的探讨,而且也非常关注神经网络在模式识别、信号处理以及控制系统等实际工程问题的应用。本书的可读性非常强,作者举重若轻地对神经网络的基本模型和主要学习理论进行了深入探讨和分析,通过大量的试验报告、例题和习题来帮助读者更好地学习神经网络。

2018-03-30

白话深度学习与TensorFlow[带书签].pdf

这本书的宗旨很简单,就是希望通过聊天和讲故事的方式,凭借高中以上水平的数学知识把大家一步一步地带入深度学习的领域。只要大家在阅读本书的时候保持一点点耐心,即便没有高等数学知识的朋友,通过努力也一样可以基本掌握深度学习的应用技巧。

2018-03-30

Head+First+Java.第二版.中文完整高清版.pdf

Head First系列在各个细分领域和技术都是非常好的[入门]书籍. 这一系列书籍的共同点就在于,对于功能的介绍基本都是秉承[设定目标 - 设计最初解决方案 -> 遇到问题 -> 借助解决问题的需求,介绍新的技术或者功能 -> 加入这个新的技术和功能,进而改进原有解决方案 -> 解决问题]. 所以,相比较传统讲技术的书来讲, 加入了使用一项功能或者技术的场景和需求, 一切看上去都那么自然和有必要,也印象深刻. 使得整个学习过程一气呵成又[深入浅出].

2017-12-29

Tensorflow 实战Google深度学习框架(中文带目录)

通俗易懂的讲解深度学习与 TendorFlow,AI 入门参考资料。

2017-12-21

持续交付-发布可靠软件的系统方法

《持续交付:发布可靠软件的系统方法》讲述如何实现更快、更可靠、低成本的自动化软件交付,描述了如何通过增加反馈,并改进开发人员、测试人员、运维人员和项目经理之间的协作来达到这个目标。本书由三部分组成。第一部分阐述了持续交付背后的一些原则,以及支持这些原则的实践。第二部分是本书的核心,全面讲述了部署流水线。第三部分围绕部署流水线的投入产出讨论了更多细节,包括增量开发技术、高级版本控制模式,以及基础设施、环境和数据的管理和组织治理。

2017-11-24

人人都是架构师(带目录)pdf

《人人都是架构师:分布式系统架构落地与瓶颈突破》并没有过多渲染系统架构的理论知识,而是切切实实站在开发一线角度,为各位读者诠释了大型网站在架构演变过程中出现一系列技术难题时的解决方案。《人人都是架构师:分布式系统架构落地与瓶颈突破》首先从分布式服务案例开始介绍,重点为大家讲解了大规模服务化场景下企业应该如何实施服务治理;然后在大流量限流/消峰案例中,笔者为大家讲解了应该如何有效地对流量实施管制,避免大流量对系统产生较大冲击,确保核心业务的稳定运行;接着笔者为大家讲解了分布式配置管理服务;之后的几章,笔者不仅为大家讲解了秒杀、限时抢购场景下热点数据的读/写优化案例,还为大家讲解了数据库实施分库分表改造后所带来的一系列影响的解决方案。

2017-11-24

微服务设计中文(带目录)pdf

本书通过大量的例子,全面讨论了系统架构师和管理员在构建、管理和演化微服务架构时必须考虑的问题,并给出了实用的建议。 了解微服务如何将系统设计与组织目标相匹配   掌握将一个服务和现有系统进行集成的不同方式 使用增量式的做法拆分单块代码库 通过持续集成部署各个微服务 审视对分布式系统进行测试和监控的复杂性 管理“用户-服务”和“服务-服务”两种模式下的安全性 理解微服务架构在规模化方面所面临的问题

2017-11-24

JavaScript 高级程序设计(第3版)

本书从最早期Netscape浏览器中的JavaScript开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的JavaScript技巧,以及与在Web应用程序中部署JavaScript解决方案有关的问题,如错误处理、调试、安全性、优化/混淆化、XML和Web服务,最后介绍应用所有这些知识来创建动态用户界面。

2017-11-24

Go语言·云动力中文版(带目录)pdf

书中内容共分为9章,全面介绍了Go语言的基础知识,以及Go语言在云计算中的应用。作者还提供了70多个完整的示例程序,方便读者边学边练,加深记忆。通过轻松简洁的介绍,读者定能顺利进入Go语言的世界

2017-11-24

学习 Go 语言中文版(带目录)pdf

这是关于来自 Google 的 Go 语言的简介。目标是为这个新的、革命性的语言提供一个 指南。 本书假设你已经在系统中安装了 Go。 这本书的目标读者是那些熟悉编程,并且了解某些编程语言,例如 C[3],C++[21], Perl[5],Java[15],Erlang[4],Scala[16],Haskell[1]。这不是教你如何编程的书,只是 教你如何使用 Go。

2017-11-24

Go 学习笔记中文 pdf

《Go语言学习笔记》经四年多逐步完善,内容覆盖了语言、运行时、性能优化、工具链等各层面知识。且内容经大量读者反馈和校对,没有明显的缺陷和错误。上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。下卷则对运行时源码做出深度剖析,引导读者透彻了解语言功能背后的支持环境和运行体系,诸如内存分配、垃圾回收和并发调度等。

2017-11-24

Go并发编程实战pdf

Go并发编程实战全面介绍了Go语言的特点、安装部署环境、工程规范、工具链、语言语法、并发编程模型以及在多个编程实战中的应用,重点阐述了Go语言并发编程模型和机制。本书共分为四个部分,介绍了Go语言编程环境搭建、Go语言基础编程、Go语言并发编程方法及其原理,以及使用Go语言开发的应用系统的案例讲解。

2017-11-24

Go语言编程(带目录)pdf

本书以介绍Go语言特性为主,示例则尽量采用作者开发团队平常的实践,内容涉及内存管理(堆和栈)、错误处理、OOP、并发编程等关键话题。 这本书面向的读者是所有打算用Go语言的开发者,主要包括目前使用C、C++、Java、C#的开发人员,甚至一些Python、PHP开发人员也可能转为 Go 程序员。

2017-11-24

Go语言圣经中文版(带目录)

Go语言是谷歌推出的一种全新的C语言风格的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性,提高编程效率,适合开发大型软件,有望成为主流的编程语言。本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队合作编写而成,是关于Go语言编程的权威著作。

2017-11-24

Go语言实战中文高清(带目录)

Go语言实战中文高清下载,完整版 Go语言实战同时关注语言的规范和实现,涉及的内容包括语法、类型系统、并发、管道、测试等。

2017-11-24

myeclipse黑色主题与默认主题

提供下myeclipse的两种主题,黑色主题与默认主题

2016-02-22

空空如也

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

TA关注的人

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