自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Andes Home 千年的塔 -十年技术,风雨兼程

莫急功近利,莫浮躁短视,是你的终究会给你---andes

  • 博客(348)
  • 资源 (3)
  • 收藏
  • 关注

原创 《Go语言核心编程》一书正式上市

背景从2012年开始接触Go,一直很喜欢这门语言,市面上几乎所有的图书我都会购来阅读,但是总是感觉缺少一本讲述Go语言的三大核心:类型系统、接口、并发的图书,这么多年过去了,一直没有人写,最后我决定动手写一本这个主题的图书,书名叫《Go语言核心编程》。经过近1年的准备,图书已经上市,希望喜欢的小伙伴关注和支持。这本书有啥特点不是前篇一律的堆积罗列语法。本书精炼的使用一个章节介绍了Go语言...

2018-10-09 15:05:01 5153 2

原创 如何提升工作效率

1.减少干扰手机置为静音或者放置在柜子里,戒除手机上瘾。定时打开邮箱收邮件,而不是每一封邮件都有提醒。关闭及时工具软件的消息提醒功能。2.减少多任务的切换。尽量不要再多个任务间来回切换,专注于做一件事情。如果迫不得已,需要同时做多个事情,一定要保存上下文,最简单的方式是为每一个任务记录一个文本文件的上下文。这有点类似于操作系统内存不够时使用虚拟内存的场景,每一个文本文件就类似于保存在磁盘...

2018-12-05 16:53:56 494

原创 软件开发工具的作用

软件开发不是工程更多的像是一门艺术;不但靠逻辑更需要靠直觉;软件开发中辅助设计的工具只是一个工具,不要为了工具而去用工具,发挥工具的好处,吸收使用多个工具,不生搬硬套。认识到每个工具都有其局限性,因为每个工具只是表述软件设计或者开发中的一个状态,其是一个静态的镜像,其不能真实的反馈整个软件全貌。工具只是辅助我们思考、设计和描述,而不要把工具用成一种负担;灵活使用工具,天马行空的使用工具,而不...

2018-10-25 01:36:42 2781

原创 他人工作多年后的总结

1.找一个好公司,使用一个开发平台,构架或语言,专注做5到10年,现有深度再有广度,不要为了高工资过早追求管理角色;2.从长远来看,拥有个人项目、阅读、写博客和参加访谈都会有助于你成为一个更好的开发人员;3.成为开发者社区的一部分,努力参加线上线下活动;4.感到厌倦时,好好的休息一段时间...

2018-10-25 01:01:28 473

转载 回车换行符的历史

转自 http://www.ruanyifeng.com/blog/2006/04/post_213.html 计算机历史不到100年,但是有些历史值得了解。今天,我总算搞清楚”回车”(carriage return)和”换行”(line feed)这两个概念的来历和区别了。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字...

2018-02-27 10:08:28 361

原创 git 文件级别diff和回滚

git 文件级别的比对git diff filename 比对working和stage区域文件差异git diff –staged filename 比对stage和HEAD之间的文件差异git diff HEAD filename 比对working和HEAD指针之间的文件差异git diff commit-id filename 比对commit-id视图下文件和work...

2018-02-21 18:02:08 752

原创 git object system

git object system画了张git对象系统的图,对git的底层工作机制的理解很有好处。对象系统 git diff 相关 git reset

2018-02-21 12:14:08 286

原创 git 使用vimdiff 格式显示比对文件

git difftool可以指定外边的diff工具来显示文件差异,可以使用 git difftool –tool-help 查看difftool可用的工具 如果不指定默认的difftool工具,需要使用–extcmd 参数指定具体的diff工具,比如:git difftool --extcmd vimdiff cache/pris.cgit difftool --extcmd ic...

2018-02-11 11:36:35 7295

原创 vim 虚拟模式下替换操作

最近使用gitbook写作,有个vim的高级替换特性学习了,记录一下。行级模式(使用V进行选择的)V选中后 输入:s/old/new/g  进行选中行的替换操作。visual模式(使用v进行选中的)  选中后 输入:s/old/new/g,默认的整个选中的虚拟行都会替换选中后 输入:s/\%Vold/new/g  这个替换精确的操作选中的区域,而不会操作选中的所有行

2018-01-28 12:00:14 1321

原创 知识焦虑时代如何进行学习

知识爆炸的现代,不要说一个人博古通今,就连一个行业的知识也变得非常的庞大,即使人穷其一生都无法学习完,我们该如何应对这个时代的知识焦虑感,今天听了《罗辑思维》-我们这一代的学习,结合自己的感受,做了下总结面对的环境:1.海量的知识,并且在快速的演进2.海量的知识里面有海量的垃圾知识3.人与人的交互越来越密切,时间被分割无数的小碎片解决办法:1.合理利用碎片时

2018-01-04 21:10:01 601

翻译 计算机中间层理论

Any problem in computer science can be solved by another layer of indirection.计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。

2017-12-11 11:12:22 968

转载 golang-defer坑的本质

本文节选自https://tiancaiamao.gitbooks.io/go-internals/content/zh/03.4.html作者的分析非常透彻,从问题本质分析,就不会对defer产生的副作用产生迷茫。defer坑的本质是:本质原因是return xxx语句并不是一条原子指令,defer被插入到了赋值 与 ret之间,因此可能有机会改变最终的返回值。defer使用时的

2017-09-04 13:21:43 1294

原创 努力成为10x Developer

努力成为10x Developer待续

2017-08-31 21:17:20 547

原创 《刻意练习》读书笔记

刻意练习的方法在学习区学习放慢练习分解练习对训练效果及时反馈遇到无法突破寻求新方法大量的练习:再薄弱区的大量练习(1万小时理论) (怎么坚持:兴趣--内在动机--激励)对大脑的几点认知1.大脑的脑神经元在成年后不会再发育,但是大脑的神经区域可以被重新使用(盲人的视觉大脑区域被听觉和触觉占据)2.大脑的长期记忆和短期记忆,有效的将短期记忆转换为长期记忆,是

2017-08-31 21:09:40 702

原创 go context专题(四)- context 最佳实践和相关争议

context的设计思想context包内Context对象设计的思路不是创建一个对象就直接一杆子到底就传递这个对象针对每个子goroutine可以自己封装Context对象后在逐层朝后传递。为什么这么设计?原因就是不同的goroutine 的需求不一样,传递给子goroutine的可能是:WithCancel WithDeadline WithTimeout WithValu

2017-08-31 20:17:30 1148 1

原创 go context专题(三)- context 工作机制和代码分析

go context专题(二)- context 设计思想和用法

2017-08-29 20:58:45 1149

原创 go context专题(二)- context设计目的和基本数据结构

go context专题(一)- context设计目的和基本数据结构

2017-08-29 20:56:48 1321

原创 go context专题(一)- go 并发编程基础设施

go 并发编程基础设施go 对并发的支撑有两个层次,一个是语言的层次上支持,一个是库的层次上支撑。前者go 并发编程的基础,后者是一种基础设施,为一个通用问题提供一个通用的解决方案go 并发语言层次支撑go 并发标准库层次支撑–context标准库本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮

2017-08-29 20:14:37 759

原创 DBA的能力模型

DBA的能力模型

2017-08-25 16:19:28 993

原创 架构师的能力模型

八年的软件开发运维经验,我总结的架构师的能力模型,不一定全,一起共勉下。

2017-08-25 16:16:48 605 1

原创 云计算基本概念

IT技术行业最不缺少的就是概念的炒作,今天出来个新技术名词,明天又出来个新技术名词,搞的从业人员焦虑不堪,生怕被这个时代所抛弃;但是人的精力是有限的,不可能什么都去学习,与其整天被这一帮发明概念的人骚扰,我们要学会看清楚这些操作概念之后的东西,看清其真面目,才不会恐慌。这几年操作比较厉害的概念就是:SOA,大数据,云计算,容器技术,机器学习,AR ,VR,AI ,好像转眼间,这个世界都变了。其

2017-01-01 18:50:31 3431

原创 关于高级编程语言的一点思考

作为从unix C一路走过来的从业者,使用过c/c++ java  python  golang 等,慢慢的从对新语言的恐惧,到坦然面对,今天不谈具体的东西,就谈点简单的对语言的胡思乱想,今天的写的不是从严肃的计算机科学角度,而是从编程者的主观认知角度。所谓的高级语言就是提供更丰富的语法糖,编译器,运行时和库等;有自己的类型系统,编程模式,最好有垃圾回收,并发支持等等额外特性;从本质上讲,编程

2016-12-02 14:31:27 1588

原创 slave_exec_mode对slave影响

slave_exec_mode 主要是控制mysql 主从复制中 insert 出现 duplicate-key, update 出现 no-key-found  情况下的处理方式做控制。stop slave;set global slave_exec_mode=idempotentstart slave;#idempotent 模式影响: 主机      

2016-08-24 17:15:52 2245

原创 COM_BINLOG_DUMP_GTID 报文分析

COM_BINLOG_DUMP_GTID 备机向主机发起拉取binlog的命令( 主备开启gtid 模式)官方定义:http://dev.mysql.com/doc/internals/en/com-binlog-dump-gtid.htmlIf the binlog-filename is empty, the server will send the binlog-stream

2016-08-23 14:25:51 3514

原创 go database/sql 源码分析 -题外篇

第一篇go database/sql 源码分析 的文章对其作者(Brad Fitzpatrick大神 memcached的作者 go语言项目组成员)给予高度评价,但是个人认为go database/sql 的实现不是完美无瑕的优点:接口设计简单,清晰,一致,友好:应用层的调用接口和驱动层的实现接口几乎一致,使用者毫无压力;缺点:包内部实现异常复杂、杂乱,给人一种错觉

2016-08-05 13:25:49 1359 2

原创 go database/sql 源码分析(四)sql.Stmt数据结构

#sql.Stmt是sql包暴露给程序调用者的可见实体,一般通过db.Open函数获得DB实例后的下一步就是调用func (db *DB) Prepare 方法的的Stmt#其内部通过 css []connStmt  来绑定相关的连接和驱动层driver.Stmt#其内部不是引用driverConn,而是引用一个css []connStmt #sql包中有两个方式能够创建Stm

2016-08-04 20:21:12 2671

原创 go database/sql 源码分析(三)sql.DB数据结构

package sql 中最核心的的数据结构是sql.DB,    其为上层应用程序提供一个统一的抽象体,它不代表一个数据库连接,也不代表一个连接池,其是sql的包的作者为了实现:并发访问安全控制,连接池等诸多功能而设计的一个综合抽象数据结构。具体见代码注释221 type DB struct {#通过driverName获取driver,通过driver的Open()方法获得到DB的原始连

2016-08-04 20:13:25 2238

原创 go database/sql 源码分析(二)driver包设计哲学

驱动接口设计特点驱动层设计很简单,没有并发锁的控制驱动层的设计是基于单个连接的,没有考虑连接池驱动层事务Tx和Stmt是独立分离的,Tx只有两个简单的方法就是Commit() 和Rollback()驱动的具体实现者只需要在单个连接上实现驱动层的API接口即可driver包的数据结构调用关系驱动注册具体的数据库驱动只需要按照接口层的定义

2016-08-04 20:07:57 1851

原创 go database/sql 源码分析(一)sql包设计哲学

database/sql设计哲学非常优雅,但是内部实现又非常复制,本节从顶层来去分析下database/sql的实现思想对上层应用提供一个标准的API对驱动层定义一个标准接口层隔离具体的数据库各个具体的数据库驱动实现该套接口即可被使用应用层调用逻辑不依赖具体的数据库,其使用的是sql提供的标准API三大功能在内部实现一个连接池内部通过锁实现并发访问的

2016-08-04 19:53:40 2240

原创 go vendor 介绍

go vendor 是go 1.5 官方引入管理包依赖的方式,1.6正式引入其基本思路是,将引用的外部包的源代码放在当前工程的vendor目录下面,go 1.6以后编译go代码会优先从vendor目录先寻找依赖包;1.解决的问题:将源码拷贝到当前工程的vendor目录下,这样打包当前的工程代码到任意机器的$GOPATH/src下都可以通过编译,避免项目代码外部依赖过多,

2016-08-04 19:14:25 32868 1

转载 golang 并发设计模式(二)--管道模式管道和显式取消

摘自点击打开链接Go Concurrency Patterns: Pipelines and cancellation一、 引言Go并发原语使得构建流式数据管道,高效利用I/O和多核变得简单。这篇文章介绍了几个管道例子,重点指出在操作失败时的细微差别,并介绍了优雅处理失败的技术。二、 什么是管道?Go没有正式的管道定义。管道只是众多并发程序的一类。一般的,一个管

2016-06-29 13:41:26 4456

原创 golang 并发设计模式(一)--资源生成器模式

在应用系统中,常见的的应用场景就是调用一个生成器:生成订单号,序列号,随机数等。golang  goroutine为这种需求提供了强大的武器。1.简单的生成器package mainimport ( "fmt" "math/rand")func GenerateIntA()chan int { ch := make(chan int ,10) go f

2016-06-28 17:22:04 2276

转载 Prepared statement peculiarities (P_S to the rescue)

转自http://mysqlblog.fivefarmers.com/2012/07/03/prepared-statement-peculiarities-p_s-to-the-rescuePrepared statements have been with MySQL since version 4.1, including the protocol plumbing that hel

2016-05-30 19:00:25 541

原创 mysql auto_increment 的坑

Statement-Based Replication,不要设置innodb_autoinc_lock_mode=2 会导致主从数据不一致innodb_autoinc_lock_mode=2 时,auto_inc锁顺序:0)   开始语句执行:1)   申请AUTO_INC锁2)   得到当前AUTO_INCREMNT值n,给AUTO_INCREMENT 加13)   插入

2016-05-24 19:41:47 2386

转载 Go语言如何深度拷贝对象

深度复制可以基于reflect包的反射机制完成, 但是全部重头手写的话会很繁琐.最简单的方式是基于序列化和反序列化来实现对象的深度复制:func deepCopy(dst, src interface{}) error { var buf bytes.Buffer if err := gob.NewEncoder(&buf).Encode(src); err != ni

2016-04-29 15:12:02 10856

转载 Go - 以任意类型的slices作为输入参数

Go - 以任意类型的slices作为输入参数(译)2014-01-16 ThuBy youngsterxyf原文:Go – taking slices of any type as input parameters译者:youngsterxyf最近参与的一个业余项目,go-linq,让我了解到Go语言的类型系统并不是为任何类面向 对象编程而设计的。没有泛型,没有类型继承,也没

2016-04-29 14:58:23 1939

翻译 go Type Identical &Value Assignability & Type Conversions

1. Type identityTwo types are either identical or different.Two named types are identical if their type names originate in the same TypeSpec. A named and an unnamed type are always different. Two 

2016-04-26 17:03:45 719

原创 go 类型系统(二)

pre-declared type (预声明类型)golang 默认的有几个预声明类型:boole,num,string type. 这些预声明类型被用来构造其他的类型。type literal(字面量类型)由其他预声明类型组合而成(没有使用type 关键字定义),array,struct,pointer,slice,map,channel,function,interfa

2016-04-26 14:43:29 1513

转载 go blank identifier _作用

The blank identifier has many possible uses, but its main purpose is to allow discarding returns from functions that have multiple returns:// We only care about the rune and possible error, not its

2016-04-15 12:17:08 916

转载 mysql null 值相关规则

3.3.4.6 Working with NULL Valueshttp://dev.mysql.com/doc/refman/5.5/en/working-with-null.htmlThe NULL value can be surprising until you get used to it. Conceptually, NULL means “a missing unkn

2016-04-15 10:30:20 374

提供数据库服务的Webservices

属于学习型小程序,重在实践 webservices 的开发,部署,和使用。<br>内含源代码,和详细的说明文档。

2007-12-19

c# 图像灰度图和直方图生成

一个自己做的图像提取,及彩色图像到灰度图转化图像,和生成图像直方图,开发环境 VS2005 语言 C# 包含源代码,详细的文档说明

2007-12-19

c# 图片查看器

简单的图片浏览!类似于windows图片传真器!

2007-12-19

空空如也

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

TA关注的人

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