1. Golang Glide包管理工具mirrors.yaml配置

    我这里简要说下Golang的包管理,目前Golang的包管理有几个比较用的多的,比如godep,govender,glide,还有官方最近推出的dep。 本篇文章是对Glide包在进行包管理时遇到下载包出现错误的一个小结。

    2018/11/18 Go

  2. 利用Shadowsocks服务搭建科学上网

    特此声明 本篇文章主要目的是为了使用Google查询技术相关知识资料。 准备工作 在阿里云上申请一台在国外的云服务器,比如我用的是一台香港阿里云服务器,系统是CentOS。 搭建步骤 使用终端登陆云服务器

    2018/11/10 杂记

  3. Go使用gRPC的入门指南

    本篇文章是基于gRPC官网翻译。代码较多,建议在电脑上浏览。

    2018/09/26 分布式

  4. Go设计模式之单例模式

    简介 单例模式是使用最多的设计模式之一,在工作和面试中也常常提到这个设置模式。单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。

    2018/09/12 设计模式

  5. Go垃圾回收机制

    Go的垃圾回收采用的是 标记-清理(Mark-and-Sweep)算法,就是先标记出需要回收的内存对象块,然后在清理掉;在这里不介绍标记和清理的具体策略,只介绍GC过程是怎么调度的以及STW相关 这个算法,会导致STW (stop the world)的问题,中断用户逻辑。

    2018/09/09 Go

  6. 常见GC算法

    这段时间在看Java和Go的垃圾回收机制,趁着这个机会我总结了一下常见的GC算法。分别是:引用计数法、Mark-Sweep法、三色标记法、分代收集法。 引用计数法 原理是在每个对象内部维护一个整数值,叫做这个对象的引用计数,当对象被引用时引用计数+1,当对象不被引用时引用计数-1。当引用计数为0时,自动销毁对象。 目前引用计数法主要用在c++标准库的 std::shared_ptr 、微软的 COM 、Objective-C 和PHP 中。 但是引用计数法有个缺陷就是不能解决循环引用的问题。循环引用是指对象 A 和对象 B 互相持有对方的引用。这样两个对象的引用计数都不是 0 ,因此永远不能被收集。 另外的缺陷是,每次对象的赋值都要将引用计数+1,增加了消耗。 Mark-Sweep法(标记清除法) 这个算法分为两步,标记和清除。 标记:从程序的根节点开始, 递归地 遍历所有对象,将能遍历到的对象打上标记。 清除:讲所有未标记的的对象当作垃圾销毁。

    2018/09/09 算法

  7. Mac下使用vscode的delve调试Go报错

    在mac下使用vscode开发Go程序时使用delve来debug如果报下面的错误: could not launch process: exec: "lldb-server": executable file not found in $PATH Process exiting with code: 1 可以直接打开终端(Terminal)输入: $ xcode-select --install

    2018/08/10 开发心得

  8. defer入门

    1.Defer的定义 defer:英文意思是推迟,延迟。所以defer语句表示推迟函数的执行,直到函数执行完毕返回为止。特别要提示是defer会在return语句之后执行。

    2018/07/18 Go