Golang老男孩Go语言第一期
微信号:new_video qq号码:2381392963资料来源网络,仅供学习使用,请勿传播。如有侵权,请联系删除。 课程介绍: Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(RobPike)说:我们之所以开发Go,是因为过去10...课程截图...阅读全文
微信号:new_video qq号码:2381392963资料来源网络,仅供学习使用,请勿传播。如有侵权,请联系删除。 课程介绍: Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(RobPike)说:我们之所以开发Go,是因为过去10...课程截图...阅读全文
本文转载地址:https://juejin.im/post/5c62d45ee51d457fa44f4404 Go语言能够支持实时的,高并发的消息系统,在高达百万级别的消息系统中能够将延迟降低到100ms以下,很大一部分需要归功于Go高效的垃圾回收系统。 1.0. go的GC回收机制 对于实时系统而言,垃圾回收系统可能是一个极大的隐患,因为在垃圾回收的时候需要将整个应用程序暂停。所以在我们设计消息总线系统的时候,需要小心地选择我们的语言。Go一直在强调它的低延迟,但是它真的做到了吗?如果是的,它是怎么做到的呢? 在这篇文章当中,我们将会看到Go语言的GC是如何实现的(tricolor algorithm,三色算法),以及为什么这种方法能够达到如此之低的GC暂停,以及最重要的是,它是否真的有效...阅读全文
前一段时间的项目里用到了 Etcd, 所以研究了一下它的源码以及实现。网上关于 Etcd 的使用介绍的文章不少,但分析具体架构实现的文章不多,同时 Etcd v3的文档也非常稀缺。本文通过分析 Etcd 的架构与实现,了解其优缺点以及瓶颈点,一方面可以学习分布式系统的架构,另外一方面也可以保证在业务中正确使用 Etcd,知其然同时知其所以然,避免误用。最后介绍 Etcd 周边的工具和一些使用注意事项。 阅读对象:分布式系统爱好者,正在或者打算在项目中使用Etcd的开发人员。 Etcd 按照官方介绍 Etcd is a distributed, consistent key-value store for shared configuration and service discovery 是...阅读全文
Weave 创建一个虚拟网络并连接到部署在多个主机上的 [Docker](http://www.oschina.net/p/docker) 容器。  应用程序使用该网络就好像它们是插在同一个网络交换机上,无需任何配置和端口映射。容器内的服务可直接为容器外的应用所访问,而不需要关心容器运行在什么地方。  这是我之前写的一个,使用起来总觉得不方便。 新版本的 Validator 将数据验证的权限完全将由者处理,开发者为每一个需要验证的属性写相关的验证方法,...阅读全文
在go 的程序中调用 c 代码, golang 提供了两种方法: cgo, swing 。gstreamer 是开源跨平台的多媒体框架库,主要是在gnome 基础核心库 glib 之上构建。下面有一个简单的使用cgo 包装 gstreamer playbin 插件的例子: gstuse.go package main /* #cgo pkg-config: gstreamer-1.0 #define _GNU_SOURCE #include
ydict 是一个基于命令行的有道词典工具,由于没有UI界面,无需点击鼠标,再输入单词,通过命令行就可以实现高效的单词和句子查询,非常适合热爱命令行的geek同学。ydict用到了goquery这个库,从有道词典扒数据,并展示。 主要支持的功能: * 中文翻译为英文 * 英文翻译为中文 * 查询不到单词时,自动显示推荐搜索提示 * 语音朗读功能,朗读你所查询的单词  项目已经开源,放在GitHub给有兴趣的同学参考: https://github.com/TimothyYe/ydict 安装...阅读全文
在c语言中可以用system函数调用系统命令并得到输出,通过输出重定向也可以将程序执行的输出保存到文件以供使用,但用起来不是很方便。我这里介绍下用python和go语言的实现方式,可以将其它程序的输出直接保存成变量供程序使用。 下面的示例用的是ls命名,需要安装MinGW,并将“C:\MinGW\msys\1.0\bin”加入环境变量。 一、用python调用其它程序,并得到输出 示例代码: import osvar = os.popen('ls -l').read()print var 运行效果(以我机器为例): 二、用go语言调用其它程序,并得到输出 go代码: package mainimport ( "exec" // "os/exec" in go1 "fmt")func main...阅读全文
//有时候,我们希望 Go 能智能的处理 Unix 信号。例如,我们希望当服务器接收到一个 SIGTERM 信号时能够自动关机,或者一个命令行工具在接收到一个 SIGINT 信号时停止处理输入信息。这里讲的就就是在 Go 中如何通过通道来处理信号。 package main import "fmt" import "os" import "os/signal" import "syscall" func main() { //Go 通过向一个通道发送 os.Signal 值来进行信号通知。我们将创建一个通道来接收这些通知(同时还创建一个用于在程序可以结束时进行通知的通道)。 sigs := make(chan os.Signal, 1) done := make(chan bool, 1) ...阅读全文
今天调试程序的时候发现程序报is an unexported field of struct type controllers,但是用fmt.Println打印结构能正常 ,只是放到模板引擎中就不能访问了。 查找错误过程: 在控制台能够通过FMT包打印结构体,那么证明语法上应该没有什么问题。而且发生错误只是在模板调用的时候发生,于是从调用的数据入手。原先的定义的结构是 type Good struct{ item string price float } 后来想起,GO语言中要提供给外面访问的方法或是结构体必须是首字母大写。这个结构体只有结构体名大写了,而里面的字段没有首字母大写,而GO语言在模板调用时应该认为是两个不同的过程,所以找不到值。于是把结构改为 type Good struct{...阅读全文
实现效果 安装 delve windows go get -u github.com/go-delve/delve/cmd/dlv linux 方式一: go get -u github.com/go-delve/delve/cmd/dlv 方式二 $ git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve $ cd $GOPATH/src/github.com/go-delve/delve $ make install 注意: 若果你go版本为1.5需要设置GO15VENDOREXPERIMENT=1 OSX $ go get -u github.com/go-delve/d...阅读全文
这个题目的原文叫做《Gobs on the wire》,作者巧妙的用了“gob”这个词。gob本来是Golang的一个关于网络通信协议的包。而在这里,我感觉标题也可以翻译为《关于线上的那一大陀……》。好吧,我得承认,这么翻译实在不雅。 ————翻译分割线———— 飞翔的 gob 这周,我想跟大家谈谈如何用 Go 编写基于同步请求和异步事件通知的 Client/Server 系统。 为了帮助学习 Go,我克隆了一个Conserver 命令行服务。当然,现在对于世界来说没必要有另外一个命令行服务。然而由于Go语言带给开发者的特性,非常适合用来做命令行服务,所以这将会是一次非常有趣的体验。命令行服务的任务是从一个或者多个串口上汇总输出(或者说各种系统上的一个或者多个实现了使用TCP连接的Rteln...阅读全文
package main import ( "fmt" "os" ) type tt struct { //定义数据结构 tt,用于存放每日的课程 One string //0 Two string //1 Three string //2 Four string //3 } type DAY struct { //定义数据结构 DAY ,用于存放一周的,英文简写 week string } func main() { //主函数 var weekday int //定义一个int 类型的值,weekday //fmt.Printf("Enter the weekday : ") //fmt.Scanf("%d",&weekday) weekday = getday() //从getday(...阅读全文
关于google app engine的安装使用 我下载了google app engine的zip压缩包,解压到c盘根目录,将“c:\go_appengine”添加到path里面,使用命令时出现问题。 1、在cmd命令行窗口可以使用goapp命令,但在gitbash下显示sh.exe:goapp:command not find。这是什么原因,到底要将哪个路径写进path里面。 2、我使用deploy命令上传时出现“could not find python interpreter: exec: "python": executable file not found in%PATH%”,大概意思是找不到Python编译器,这是什么原因,源文件到底放在哪个路径下面,我已经安装...阅读全文
这里以Windows7 64位为例,如果是32位环境需安装对应版本程序。 一、安装golang1.2.2 1.3及1.3.1编译生成的二进制文件,无法使用LiteIDE23.2携带的gdb7.7进行调试。 二、安装及配置LiteIDE 将liteidex23.2.windows.7z解压到D:\即完成安装。 2.1 设置编辑环境 因为是64位环境,所以选择“win64”。 查看->编辑环境变量,确认GOROOT变量与GO安装路径一致。 2.2 添加GOPATH 查看->管理GOPATH...,创建新目录E:\Code_Repository\golang,并添加到“自定义目录”。 2.3 新建项目 选择上一步添加的GOPATH,模板为Go1 Command Project 编辑源代码,添加几行...阅读全文
Base64在不同语言对接时,其实是有些小坑的,之前有碰过。 首先Base64的是啥? 阮一峰有一篇写得很赞的文章说得很明白。 然后是怎么编码? 我用OpenSSL写了个Base64解编码实现: /* 用openssl来做Base64加解密. Author: xcl Date:2015-9-17 */ #include
Apache HTrace是Cloudera开源出来的一个分布式系统跟踪框架,支持HDFS和HBase等系统。该项目目前还在孵化阶段。  Apache HTrace是一个 Apache Incubator 项目, 可以与独立的应用程序和库使用。 HTrace是专为大的分布式系统使用的, 如Apache Hadoop分布式文件系统和Apache HBase存储引擎。 通过添加HTrace 支持到你的项目上,你将允许终端用户跟踪他们的请求。 此外,任何其他项目 使用HTrace都 可以使它 按照 你的项目的请求。 这就...阅读全文
 与大家所熟知的 MP3 一样, AAC 也是一种常见的音频格式。现如今常见的 AAC 规格有三种: LC-AAC (最基本的), HE-AAC ( AACPlus v1 ), HE-AAC v2 。 HE :“ High Efficiency ”(高效性)。 HE-AAC (又称 AACPlus v1 , SBR ),用容器的方法实现了 AAC ( LC )和 SBR(频段复制)技术。 SBR 把频谱切割开来,低频单独编码保存主要成分,高频单独放大编码保存音质,在减少文件大小的情况下还保存了音质。 HEv2...阅读全文
公司名称:澎湃时空科技有限公司 工作地点:北京市朝阳区双井地铁站附近 职位描述:参与服务器架构及各游戏模块开发 职位要求: 1.一年以上游戏服务器研发经验 2.熟悉golang/erlang/C/C++/C#中的至少一种 3.有游戏服务器架构经验者优先 4.有较强的学习能力 5.有较好的团队协作能力 职位月薪:12k~24k 公司福利:五险一金、项目分红、午餐补贴、加班补贴 有意者请将简历发至 hr@spacesurge.com 此信息在2015年8月31日之前有...阅读全文
大家好,好久没有跟新博客了,今天给大家带来一篇Sublime Text 2的插件SublimeGDB的使用教程。 在很早之前,写过一篇关于Sublime Text 2配置Go语言开发环境的文章,如果您还没有看过,可以先看看这一篇文章,地址:http://golanger.cn/?p=32,还写过一篇关于Go使用GDB断点调试的文章,大家也可以看下,地址:http://golanger.cn/?p=91。 接下来我们看下SublimeGDB的安装以及使用: 一,安装SublimeGDB插件:打开Preferences菜单下,Package Control菜单,并选择 Install Package选项,如下图: 输入SublimeGDB,并选择安装,一段时间后,SublimeGDB就会安装成功...阅读全文
go语言官方下载地址:https://golang.org/dl/ 我用的是window7 64的操作系统,下载的是 go1.7.1.windows-amd64 安装其实很简单,一直下一步能安装成功, 我这边截图了几个 总共9步 设置环境变量的时候需要修改path的值,在后面增加go的安装路径 在dos窗口输入 go version可以查看go的版本 测试程序 hello world 在本地创建一个test.go的文件里面输入 package main import "fmt" func main() { fmt.Println("Hello, World!") } 在dos创建运行 C:\Users\xlucas>D: D:\>cd go_work D:\go_work>go run te...阅读全文
希望可以在空余时间完成nsq源码解读系列的文档。 本篇作为第一篇,简单介绍一下nsq. 参考 http://feilong.me/2013/05/nsq-realtime-message-processing-system 的介绍:NSQ是由知名短链接服务商bitly用Go语言开发的实时消息处理系统,具有高性能、高可靠、无视单点故障等优点,是一个非常不错的新兴的消息队列解决方案。 nsg易于配置和部署,所有参考都通过命令行指定,编译好的二进制文件,没有其它依赖项。而且支持多种消息格式。 源码下载地址: https://github.com/bitly/nsq 本系列文档下载的源码为0.2.27版本。 为更好的理解源码,最理想的起步当然是先了解nsq的用法。所以接下来会先讲解nsq的安装、使用...阅读全文
Go 1.5 Beta 3 发布,Go 1.5 主要改进如下: * 编译器和运行现在完全用 Go 写(带一点汇编)。C 不再参与实施,所以曾经是构建分布必不可缺的 C,如今已经不见了。 * 垃圾收集器现在是 [并发的](https://golang.org/s/go14gc) ,并且通过运行提供显著降低了的暂停时间,可能时候,能和其他的 goroutines 平行。 * 默认 Go 程序使用 GOMAXPROCS 变量来设置CPU核数,之前默认是1 * 对 [internal packages](http://golang.org/s/go14internal) 的支持延伸到所有仓库,不只是 Go 核心库 * go 命令提供体验支持 vendoring 外部依赖 * 全新的 ...阅读全文
文地址:Golang 大杀器之性能剖析 PProf 前言 写了几吨代码,实现了几百个接口。功能测试也通过了,终于成功的部署上线了 结果,性能不佳,什么鬼????? 想做性能分析 PProf 想要进行性能优化,首先瞩目在 Go 自身提供的工具链来作为分析依据,本文将带你学习、使用 Go 后花园,涉及如下: runtime/pprof:采集程序(非 Server)的运行数据进行分析 net/http/pprof:采集 HTTP Server 的运行时数据进行分析 是什么 pprof 是用于可视化和分析性能分析数据的工具 pprof 以 profile.proto 读取分析样本的集合,并生成报告以可视化并帮助分析数据(支持文本和图形报告) profile.proto 是一个 Protocol Bu...阅读全文
发表失败全部丢失,写完了又重写一遍,csdn 都没个自动保存功能,强烈吐槽 go 里面有两个非常重要的环境变量 GOROOT 和 GOPATH,其中 GOROOT 是安装 go 的路径,而 GOPATH 是我们定义的自己的工作空间。 如果在安装的时候是一路 next 完的,那么默认就配置好了 ,无需手动配置。 如果在安装的时候修改了默认的安装路径,那么可能需要自己添加一下 。 首先在环境变量中添加 GOPATH,值为 go 的安装目录: 然后在环境变量 PATH 中添加 go 安装目录下的 bin 文件夹。 接着添加一个环境变量 GOPATH,值为你自己希望的工作目录。 最后重启一下 命令行工具,输入 go env 命令即可查看: Tips: 一定要记得重启下命令行工具,cmd 或者 cmd...阅读全文
欢迎关注IPFS周报!星际文件系统 (IPFS)是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周报旨在跟踪整个生态系统的开发。IPFS生态圈动态你在 Twitter 上关注 IPFS吗? 关于新闻中 IPFS 的最新汇总,请查看我们的Twitter 提要或查看有关 Awesome IPFS 的最新文章。包装链项目概述,David Craven,2019年8月24日幻灯片:go-libp2p-noise,Ed Mazurek,ETHBerlinZwei,2019年8月24日我如何使用3Box建立一个全栈Dapp,Pedro Gomes,2019年8月23日为您的应用程序添加身份验证的简便方法,2...阅读全文
https://github.com/rakyll/hey -n 要运行的请求数。默认是200。 -c 并发运行的请求数。请求的总数不能小于并发级别。默认是50。 -q 速率限制,以每秒查询(QPS)为单位。默认没有限制。 -z 发送请求的应用程序配置。当时间到了,应用程序停止并退出。如果指定持续时间,则忽略n。例子:- z 10s - z 3m。 -o 输出类型。如果没有提供,则打印摘要。“csv”是唯一受支持的替代方案。转储文件的响应以逗号分隔值格式的度量。 -m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS. -H 自定义HTTP头。您可以通过重复标记指定所需的数量 For example, -H "Accept: ...阅读全文
下载Prometheus 下载最新安装包,本文说的都是在Linux x64下面内容,其它平台没尝试过,请选择合适的下载。 Prometheus 主程序,主要是负责存储、抓取、聚合、查询方面。 Alertmanager 程序,主要是负责实现报警功能。 Pushgateway 程序,主要是实现接收由Client push过来的指标数据,在指定的时间间隔,由主程序来抓取。 *_exporter 这类是不同系统已经实现了的集成。 下载解压,一般默认的配置就可以运行。 tar xvfz prometheus-*.tar.gz cd prometheus-* go写的东西,直接打包成二进制包了,其本上没有别的依赖。 下面我们主要来了解一下他的配置文件,这是一个非常重要的步聚。 配置Prometheus监...阅读全文
init()和main()方法是golang默认的两个方法,不需要我们调用,程序执行会自动寻找项目中的这俩方法。现在我们就讲一种通用的情况: main 包下 导入了 init2 包而在init2 包下又导入了init3 包,三个包下都有自己的init 方法,初始化的顺序又是怎么的呢? 先看一段代码: // demo_init1.go package main import "golang_thinking/src/article_init/init2" import "fmt" var VariableMain = "variable_main" const ConstantMain = "constant_main" func init() { fmt.Printf("ConstantMa...阅读全文
本次是针对命令行来写的,如果使用goland工具则不存在此问题,其它IDE不清楚。 测试命令 go test -v 依赖文件 -test.run 方法名 备注:依赖文件指的是,你在测试用例文件需要引用到的其它文件,可空格分隔填写多个 -v,输出方法测试的开始与结束信息 如果依赖文件存在当前目录的比较多 go test -v ./ -test.run 方法...阅读全文
前言 2009年开始接触软件开发,一直深爱着它,喜爱淘腾些新技术新技能,却至今没有所成。也许专心才能做好一些事,2013年初接触Go Lang,感受着这门语言带来的魅力,自己该在这条路上留下足迹,以此见证自己的成长历程。 为什么会学习Go Lang 编程本身是一门艺术,Go Lang 有着无尽想象的魅力。 Gmail, Google Search, Google Translate,YouTube 这些已成为我生活工作不可缺少的一部分,足够证明Google的产品是优秀的,同样Go Lang也是优秀的,事实证明确实如此。 Go Lang是开源项目,它的社区时活跃的,它的创造者是行业Big牛。 Go Lang 被创造的目的是明确的:提高开发人员的编程效率,构建服务器软件...... 一段摘录 h...阅读全文
## 简介 Go 1.11 和 1.12 引入了[对 modules(模块)的初步支持](https://golang.org/doc/go1.11#modules),这是一个能让依赖项的版本信息更加明确和易于管理的依赖管理系统。本文旨在为你使用模块提供基本的操作指导。后续会有一篇文章来说明如何发布一个模块以供别人使用。 一个模块是一系列 [Go 代码包](https://golang.org/ref/spec#Packages) 的集合,它们保存在同一个文件树中。文件树的根目录中包含了一个 `go.mod` 文件。`go.mod` 文件定义了一个模块的 module path,这就是模块根目录的导入路径。`go.mod` 文件还定义了模块的 *dependency requirements...阅读全文
go 有开发桌面程序的包吗...阅读全文
 谷歌现在提供的容器管理服务,名为Google Container Engine,上周正式进入生产环境。这将为企业在Google Cloud Platform上运行他们自己最重要的应用做好了准备。 越来越多的组织或企业使用容器来构建应用程序,因为基于容器技术的应用易于扩展、复制和更新。这项新服务提供了一种方法来管理大量的容器,消除大量容器编排的繁琐工作。 谷歌在2014年11月推出容器引擎预览版。凭借当前的这个商业版本,谷歌准备正式进军生产环境,承诺保证99.95%的正常运行时间。 定价是这样的:最高可以免费使用6节点...阅读全文
程序员生存法则第一条——不要跟产品说话 :microphone: 最后,祝列位今晚能按时下班!  -- 来源:微博: 后厂村之...阅读全文
在一个IP紧缺的时代,连电信也不分配固定IP给到你用,一条专网专用线路贵的不行,那么作为软件开发人员常常要使用到外网,比如和微信调试程序,给到不在同一网段的朋友一起调试程序等,大家耳熟能详的内网穿透就是花生壳,但是花生壳的灵活性比较差,笔者就想有没有什么更好的办法自己搭建一个内网穿透服务器呢?那么今天就给大家推荐一款自建内网穿透. 附上: 喵了个咪的博客:w-blog.cn frp-Github地址:https://github.com/fatedier/frp frp-中文文档:https://github.com/fatedier/frp/blob/master/README_zh.md 1.安装 注意: frp 仍然处于前期开发阶段,未经充分测试与验证,不推荐用于生产环境。 目前的交互...阅读全文
sudo port install graphviz fuyundeMacBook-Pro:~ fuyun$ sudo port install graphviz Warning: The Xcode Command Line Tools don't appear to be installed; most ports will likely fail to build. Warning: Install them by running `xcode-select --install'. ---> Computing dependencies for graphviz ---> Fetching archive for graphviz ---> Attempting to fetch gr...阅读全文
本教程使用proto3版本的protocol buffer语言,提供了一个基本的在Go程序中使用protocol buffer的介绍。通过创建一个简单的示例应用程序,向你展示如何 在.proto文件中定义消息格式。 使用protoc编译器编译生成Go代码。 使用Go的protocol buffer API读写消息。 它不是一个全面的在Go中使用protocol buffer的指南,更详细的参考信息请查看前面的两个教程。 Protobuf语言指南 Protobuf生成Go代码指南 为什么使用protocol buffer 我们将要使用的示例是一个非常简单的“地址簿”应用程序,可以在文件中读取和写入人员的联系人详细信息。地址簿中的每个人都有姓名,ID,电子邮件地址和联系电话号码。 如何序列化和检...阅读全文
本人在日常golang项目开发中,用到了一些第三方开源库,大多都是优秀的开源项目,源码值得认真阅读研究。在此记录用到的一些库:1. 解析配置文件https://github.com/go-ini/ini,go-ini, go INI文件解析, 2. 命令行工具https://github.com/cheggaaa/pb, Terminal progress bar for Go, golang进度条3. golang web 开发https://github.com/gorilla, Gorilla web toolkit 一系列web开发套件,最常用的为http路由模块mux4. 存储相关https://github.com/klauspost/reedsolomon, RS纠删码 htt...阅读全文
下载地址:https://github.com/e421083458/gochat
本实例基于websocket和jQuery开发。
本实例特点如下:
1. 支持浏览器客户端和命令行客户端两种方式。
2. 支持私聊...阅读全文
https://github.com/stdupp/goasciiar...阅读全文
依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。在传统的程序设计过程中,调用者是自己来决定使用哪些被调用者实现的。但是在依赖注入模式中,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由注入器来完成,然后注入调用者,因此也称为依赖注入。 下面是facebookgo/inject 包的测试用例, 需要的自取。 https://github.com/e421083458/injec...阅读全文
Go 1.5.2 发布,更新内容请看:[1095 commits](https://github.com/golang/go/compare/go1.5.2...master) 。 下载页面:[go1.5.2](https://github.com/golang/go/tree/go1.5.2) Go 1.5 主要改进: * 编译器和运行现在完全用 Go 写(带一点汇编)。C 不再参与实施,所以曾经是构建分布必不可缺的 C,如今已经不见了。 * 垃圾收集器现在是 并发的 ,并且通过运行提供显著降低了的暂停时间,可能时候,能和其他的 goroutines 平行。 * 默认 Go 程序使用 GOMAXPROCS 变量来设置CPU核数,之前默认是1 * 对 intern...阅读全文
Golang的开发环境通常有如下三种: 1. vi, emacs, notepad++ 2. Sublime Text 2/3 3. LiteIDE 不过,今天我想体验一下在slickedit当中使用Golang的感觉。 我使用的版本是slickedit v19.0.1.1 64位版。 先配置好Golang的环境变量(网上有很多文章讲到如何配置) 最重要的一步就是,在安装目录的win子目录下,找到原先的gdb文件,并用下面的gdb替换之后就可以正常进入调试了 替换的gdb文件下载 好了,下面就可以体验一下在slickedit当中开发go程序的乐趣了。 个人认为,slickedit更加适合大型的go项目开发,好处当然是多多了,就不一一讲明了。 其实,不管是vi,sublime text,Lit...阅读全文
导读 在 Go 开源之后的 7 年里,它已被全球采用。他们可以更轻松地在易读而可用于生产环境的应用程序中向他人展示数据模型。与此相结合的是 Go 的广泛使用,而且有数据专家创建“可用并且与其它程序配合”的程序。任何使用 Go 构建的应用数据科学家会在公司其他部分使用相同的语言,或者至少它非常适合现代架构。 今年像动态插件,Serverless Go 以及 HTTP/2 这些创新对开发意味着什么 Go 1.8 刚刚发布,它有几个新功能,包括: 1.HTTP/2 Push 2.HTTP 服务器平滑关闭 3.插件 4.缺省 GOPATH 这些新功能的影响力取决于你和开发团队如何使用 Go。 自从 Go 1.0 于 2012 年发布以来,其简单性、并发性和内置支持使其保持普及度不断增长,所以对“Go...阅读全文
本文中,我们将一同看看当今 Web 开发的发展趋势,给大家分享我对 2015 年及未来的一些看法、观察和预测。我从 2000 年就开始做 Web 技术方面的工作,而近几年主要是做云架构解决方案。作为一名 Web 开发者,我曾在 .Net、Node.js 和 Go 技术栈上开发 Web 应用和 Web 服务。最近,我将 Web 技术和开发趋势作为整体研究了一遍,在这里分享一下我的想法和观察结果。 首先,让我分享一些我所观察到的可用性和体系结构目前的趋势。 可用性的趋势 如今,用户体验变得比以往更重要,响应式网页设计(RWD)也成为了网站必备的特性。RWD 能让最终用户在不同尺寸的设备上访问网站,包括手机和平板浏览器。有了 RWD 取代移动网站,我们便无需为移动用户单独开发额外的网站。特别是当我...阅读全文
在[先前的博文](https://studygolang.com/articles/12686)中,我们探讨了链表以及如何将它应用于实际应用。在这篇文章中,我们将继续探讨两个相似且功能强大的数据结构。 ## 建模操作和历史 让我们看看 Excel 或 Google 文档,他们是人类发明的最普遍的构成文件的应用程序。我们都使用过它们。 正如你可能知道的,这些应用程序有各种各样对文本的操作。 比如在文本中添加颜色、下划线、各种字体和大小,或者在表格中组织内容。这个列表很长,我们期望从这些工具中得到一个普遍的功能 —— “撤销”和“重做”已经执行了的操作的能力。 你是否考虑过让你做,你将如何规划这样的功能?下面让我们探索一个可以帮助我们完成这样一项任务的数据结构。 将被记录在栈上而不是堆上,从而提...阅读全文
尽管媒体对容器技术存在大肆宣传,但是,应用程序打包技术仍在不断发展之中,特别是与网络有关的。 在过去的一年里,虽然Docker容器自身在网络功能方面有着长足的进步。但与此同时,Docker也构建了一个插件架构,允许更先进的网络管理工具控制容器。 同时,众多创业公司也已经开发出定制的平台来管理容器,而传统的供应商,如思科和VMware使他们的网络管理工具控制容器。因此,最初的容器网络挑战开始得到解决,但还有更多的工作要做。 ### 基本挑战 一直都存在容器网络问题。容器托管在相同的物理服务器上可以相互作用和共享数据。但Docker开发者最初没有能力将容器从一个主机迁移到另一个主机,或在不同的主机上将一个容器到另一个容器建立连接。 “跨容器通讯一直是最大挑战,”技术...阅读全文