代码改变世界

随笔分类 -  Go

gin框架使用注意事项

2019-03-21 12:39 by 轩脉刃, 11715 阅读, 收藏, 编辑
摘要: gin框架使用注意事项 本文就说下这段时间我在使用gin框架过程中遇到的问题和要注意的事情。 错误处理请求返回要使用c.Abort,不要只是return 当在controller中进行错误处理的时候,发现一个错误,往往要立即返回,这个时候要记得使用gin.Context.Abort 或者其相关的函数 阅读全文

聊聊OSM

2019-03-07 22:00 by 轩脉刃, 2118 阅读, 收藏, 编辑
摘要: 聊聊OSM 做路网的同学一定对OSM并不陌生,OSM是一个由英国人Steve Coast创立的一个项目,这个项目的目标是创建一个内容自由,且能让所有人编辑的世界地图。类似于维基百科的概念。和它对标的是谷歌的google map。google map是谷歌提出的电子地图服务。它是收费的。且并不提供友善 阅读全文

golang的cms

2019-03-06 12:53 by 轩脉刃, 7674 阅读, 收藏, 编辑
摘要: golang的cms 说说cms cms(内容管理系统)是建站利器。它的本质是为了快速建站。cms本质是一个后台服务站,使用这个后台,能很快搭建一个前台web站。在PHP的世界里面,CMS框架简直不要太多:著名的wordpress,漏洞很多的dedecms,以搭建论坛为主的discuz,优雅的Oct 阅读全文

colly源码学习

2019-02-27 09:52 by 轩脉刃, 1196 阅读, 收藏, 编辑
摘要: colly源码学习 "colly" 是一个golang写的网络爬虫。它使用起来非常顺手。看了一下它的源码,质量也是非常好的。本文就阅读一下它的源码。 使用示例 从Visit开始说起 首先,要做一个爬虫,我们就需要有一个结构体 Collector, 所有的逻辑都是围绕这个Collector来进行的。 阅读全文

使用chan的时候选择对象还是指针

2019-02-22 12:34 by 轩脉刃, 4352 阅读, 收藏, 编辑
摘要: 使用chan的时候选择对象还是指针 今天在写代码的时候遇到一个问题,在创建一个通道的时候,不确定创建的通道是使用chan A还是chan \ A。 思考了一下,觉得这个应该和函数一样是一个值传递还是参数传递的问题。然后写了个play验证了一下。 package main import ( "fmt" 阅读全文

golang中Context的使用场景

2019-02-19 09:27 by 轩脉刃, 21547 阅读, 收藏, 编辑
摘要: golang中Context的使用场景 context在Go1.7之后就进入标准库中了。它主要的用处如果用一句话来说,是在于控制goroutine的生命周期。当一个计算任务被goroutine承接了之后,由于某种原因(超时,或者强制退出)我们希望中止这个goroutine的计算任务,那么就用得到这个 阅读全文

如何加速golang写业务的开发速度

2019-02-13 08:58 by 轩脉刃, 3636 阅读, 收藏, 编辑
摘要: 如何加速golang写业务的开发速度 不要忌讳panic golang写业务代码经常会被吐槽,写业务太慢了,其中最大的吐槽点就是,处理各种error太麻烦了。一个项目中,会有30%或者更多的是在处理error。 对于golang的error这个事情,golang的官方也说的很详细,建议函数返回err 阅读全文

Gin框架源码解析

2018-09-18 19:44 by 轩脉刃, 12364 阅读, 收藏, 编辑
摘要: Gin框架源码解析 Gin框架是golang的一个常用的web框架,最近一个项目中需要使用到它,所以对这个框架进行了学习。gin包非常短小精悍,不过主要包含的路由,中间件,日志都有了。我们可以追着代码思考下,这个框架是如何一步一步过来的。 从http包说起 基本上现在的golang的web库都是从h 阅读全文

slice全解析

2018-08-24 18:02 by 轩脉刃, 1084 阅读, 收藏, 编辑
摘要: slice全解析 昨天组内小伙伴做分享,给出了这么一段代码: package main import ( "fmt" ) func fun1(x int) { x = x + 1 } func fun2(x int) { x = x + 1 } func fun3(x []int) { x = ap 阅读全文

说说接口封装

2017-03-09 15:36 by 轩脉刃, 11688 阅读, 收藏, 编辑
摘要: 今天给同事封装了一个接口,说起接口封装的事情,其实其实很有的聊。很多时候,说一个服务好,一个服务烂,实际上都是在吐槽服务队外暴露的接口好坏。不管什么语言,封装接口,抽象起来,就是由一个函数名,若干个参数,若干个返回值组成的。封装的好坏,就在这几个上面。 函数名 首先是函数名。函数名的好坏很明显,我的 阅读全文

Golang汇编命令解读

2016-12-05 10:12 by 轩脉刃, 11017 阅读, 收藏, 编辑
摘要: 我们可以很容易将一个golang程序转变成汇编语言。 比如我写了一个main.go: 使用命令: 我们就获取了main.S是main.go的汇编版本。 首先这个程序根据TEXT是定义函数的,分为3个部分 这个"". 代表的是这个函数的命名空间。 g(SB) 这里就有个SB的伪寄存器。全名未Stati 阅读全文

go-hbase的Scan模型源码分析

2016-11-18 10:35 by 轩脉刃, 2448 阅读, 收藏, 编辑
摘要: git地址在这里: https://github.com/Lazyshot/go hbase 这是一个使用go操作hbase的行为。 分析scan行为 如何使用scan看下面这个例子,伪代码如下: 首先是NewClient, 返回的结构是hbase.Client, 这个结构代表的是与hbase服务端 阅读全文

golang中的race检测

2016-01-20 10:19 by 轩脉刃, 31178 阅读, 收藏, 编辑
摘要: golang中的race检测 由于golang中的go是非常方便的,加上函数又非常容易隐藏go。 所以很多时候,当我们写出一个程序的时候,我们并不知道这个程序在并发情况下会不会出现什么问题。 所以在本质上说,goroutine的使用增加了函数的危险系数 "论go语言中goroutine的使用"... 阅读全文

testing - 测试基本使用接口

2015-01-20 18:49 by 轩脉刃, 3256 阅读, 收藏, 编辑
摘要: # testing - 测试基本使用接口 #当你写完一个函数,结构体,main之后,你下一步需要的就是测试了。testing包提供了很简单易用的测试包。#写一个基本的测试用例#测试文件的文件名需要以_test.go为结尾,测试用例需要以TestXxxx的样式存在。比如我要测试utils包的sql.g... 阅读全文

Symfony学习--目录和入口

2013-05-16 10:09 by 轩脉刃, 6232 阅读, 收藏, 编辑
摘要: 1 目录结构 根目录下有: app src vendor web app是存放应用的一些配置文件,如果有一些配置文件或者文档,应当存放在这里面。 src是存放你的项目的php代码,这里的php至少必须是5.3,因为symfony中使用了命名空间的概念。 vendor是存放第三方代码的目录,这个目录可能非常庞大,因为symfony大量使用了第三方bundle的概念,连自身都是作为一个... 阅读全文

freetype-go学习

2013-04-17 10:08 by 轩脉刃, 5383 阅读, 收藏, 编辑
摘要: freetype-go的源码在这里https://code.google.com/p/freetype-go/ 它的作用是生成带文字的png图片 首先解决的几个概念: 什么是FreeType? FreeType是一个可移植的,高效的字体引擎。 字体在电脑上的显示有两种方式:点阵和矢量。对于一个字,点阵字体保存的是每个点的渲染信息。这个方式的劣势在于保存的数据量非常大,并且对放大缩小等操作... 阅读全文

Go小tip

2013-03-19 09:38 by 轩脉刃, 2526 阅读, 收藏, 编辑
摘要: go一些“隐藏库” code.google.com上有一些分支 有的是还没合并到default上的函数功能 比如net/websocket http://code.google.com/p/go/source/browse?repo=net#hg%2Fwebsocket 这些库可用性都很高,很适合直接使用 如何为go添加补丁 http://golang.org/doc/contrib... 阅读全文

golang rpc的两种调用方法

2013-02-28 17:20 by 轩脉刃, 19771 阅读, 收藏, 编辑
摘要: golang的rpc有两种方法进行调用,一种是rpc例子中给的:package mainimport ( "net/rpc" "net/http" "log" "net" "time")type Args struct { A, B int}type Arith intfunc (t *Arith) Multipl... 阅读全文

Polemo Chat客户端行为

2013-02-19 11:30 by 轩脉刃, 4604 阅读, 收藏, 编辑
摘要: chatofpomelo的git地址在这里: https://github.com/NetEase/chatofpomelo 当你启动game-server和web-server之后,你就可以在web上进入一个聊天室进行实时聊天了。这里的实时聊天是使用了websocket技术,在网页和服务器上建立了一个连接,本文的目的在于分析清楚下客户端和服务端聊天的过程。 首先是客户端(页面)的js有: ... 阅读全文