博客专栏  >  编程语言   >  Go in Action

Go in Action

这里有go的基础介绍,有go优秀库的深入解析,更有笔者go开发的实战经验。欢迎来吃go的螃蟹,let’s go!

关注
10 已关注
25篇博文
  • gopkg:一种方便的go pakcage管理方式

    在使用go的过程中,我们有时候会引入一些第三方库来使用,而通常的方式就是使用go get,但是这种方式有一个很严重的问题,如果第三方库更新了相关接口,很有可能你就无法使用了,所以我们一套很好地包管理机...

    2014-07-24 13:26
    4789
  • golang函数可变参数传递性能问题

    几天前纠结了一个蛋疼的问题,在go里面函数式支持可变参数的,譬如...T,go会创建一个slice,用来存放传入的可变参数,那么,如果创建一个slice,例如a,然后以a...这种方式传入,go会不会...

    2014-06-23 12:58
    3637
  • 高性能nosql ledisdb设计与实现 (2):replication

    ledisdb现在已经支持replication机制,为ledisdb的高可用做出了保障。使用假设master的ip为10.20.187.100,端口6380,slave的ip为10.20.187.1...

    2014-06-12 21:53
    3655
  • 高性能nosql ledisdb设计与实现(1)

    ledisdb是一个用go实现的基于leveldb的高性能nosql数据库,它提供多种数据结构的支持,网络交互协议参考redis,你可以很方便的将其作为redis的替代品,用来存储大于内存容量的数据(...

    2014-05-30 12:29
    3055
  • ledisdb:支持类redis接口的嵌入式nosql

    ledisdb现在可以支持嵌入式使用。你可以将其作为一个独立的lib(类似leveldb)直接嵌入到你自己的应用中去,而无需在启动单独的服务。ledisdb提供的API仍然类似redis接口。

    2014-05-16 11:07
    2595
  • 读生产环境下go语言最佳实践有感

    最近看了一篇关于go产品开发最佳实践的文章,go-in-procution。作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,后续我也争取能将这篇文...

    2014-05-12 11:01
    7718
  • 发布一个参考ssdb,用go实现的类似redis的高性能nosql:ledisdb

    起因ledisdb是一个参考ssdb,采用go实现,底层基于leveldb,类似redis的高性能nosql数据库,提供了kv,list,hash以及zset数据结构的支持。我们现在的应用极大的依赖r...

    2014-05-10 16:59
    5368
  • 我为什么选择go语言

    这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开...

    2014-04-27 14:12
    3504
  • 在golang中使用leveldb

    leveldb是一个很强悍的kv数据库,自然,我也希望能在go中使用。 如果有官方的go leveldb实现,那我会优先考虑,譬如这个,但是该库文档完全没有,并且在网上没发现有人用于实战环境,对...

    2014-04-23 13:30
    6805
  • golang使用pprof检查goroutine泄露

    有一段时间,我们的推送服务socket占用很不正常,我们自己统计的同时在线就10w的用户,但是占用的socket竟然达到30w,然后查看goroutine的数量,发现已经60w+。 每个用户占用...

    2014-04-22 10:58
    7745
  • golang:一个高性能低精度timer实现

    在go自带的timer实现中,采用的是通常的最小堆的方式,具体可以参见这里。 最小堆能够提供很好的定时精度,但是,在实际情况中,我们并不需要这样高精度的定时器,譬如对于一个连接,如果它在2分钟以...

    2014-04-16 10:24
    5213
  • 在go中使用json作为主要的配置格式

    最近在用go重构,在先前的代码中,我们使用的ini文件进行配置,但是因为很多历史遗留问题,导致配置混乱,维护困难,自然也需要考虑重构了。 通用配置格式 通用的配置格式有很多,常用的就有ini,...

    2014-04-13 11:54
    6708
  • go中string和slice no-copy转换

    在go里面,string和slice的互换是需要进行内存拷贝的,虽然在底层,它们都只是用 pointer + len来表示的一段内存。 通常,我们不会在意string和slice的转换带来的内存...

    2014-04-12 17:10
    4344
  • go: 一个通用log模块的实现

    在go里面,虽然有log模块,但是该模块提供的功能并不强,譬如就没有我们常用的level log功能,但是自己实现一个log模块也并不困难。 对于log的level,我们定义如下: const...

    2014-04-07 21:36
    3924
  • moonmq: 用go实现的高性能message queue

    介绍 moonmq是一个用go实现的高性能消息队列系统,后续准备用于我们消息推送服务以及各个后台的异步任务。 在设计上面,moonmq主要借鉴了rabbitmq以及rocketmq相关的思...

    2014-04-03 18:30
    5373
  • 在go中使用linked channels进行数据广播

    在go中使用linked channels进行数据广播 原文在这里(需翻墙),为啥想要翻译这篇文章是因为在实际中也碰到过如此的问题,而该文章的解决方式很巧妙,希望对大家有用。 在go中ch...

    2014-03-30 21:57
    2065
  • mixer: sql词法分析器设计

    介绍 mixer希望在proxy这层就提供自定义路由,sql黑名单,防止sql注入攻击等功能,而这些的基石就在于将用户发上来的sql语句进行解析。也就是我最头大的词法分析和语法分析。 到现...

    2014-03-23 16:38
    2583
  • polaris: session和middleware的支持

    起因 polaris虽然是模仿tornado开发,但我觉得作为一个go的web框架,还需要提供一些额外的扩展支持。 polaris现在已经支持session以及middleware,主要参...

    2014-03-19 09:34
    1296
  • go-mysql: database/sql 接口适配

    go-mysql已经支持golang database/sql接口,并通过https://github.com/bradfitz/go-sql-test测试用例。 现在go-mysql可以直接通...

    2014-03-16 21:03
    1738
  • mixer: mysql协议分析

    综述 要实现一个mysql proxy,首先需要做的就是理解并实现mysql通讯协议。这样才能通过proxy架起client到server之间的桥梁。 mixer的mysql协议实现主要参...

    2014-03-13 11:17
    3876

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部