Go语言中文网 为您找到相关结果 1685

Go获取命令行参数及信号量处理

部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用os库和flag库。 golang os库获取命令行参数 os可以通过变量Args来获取命令参数,os.Args返回一个字符串数组,其中第一个参数就是执行文件本身。 1 2 3 4 5 6 7 8 9 10 package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) } 编译执行后执行 $ ./cmd -user="root" [./cmd -user=root] 这种方式操作起来要自己封装,比较费时费劲。golang提供了flag库,可以很方便的操作命名行参数,下面介绍下flag的用法。 golang fla...阅读全文

博文 2015-08-22 12:00:00 kenkao

GO语言LiteIDE的安装使用

这里以Windows7 64位为例,如果是32位环境需安装对应版本程序。 一、安装golang1.2.21.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编辑源代码,添加几行代码,包括变量声明...阅读全文

博文 2015-12-10 02:01:30 u011225629

Golang程序配置方案小结

Golang程序配置方案小结 七 01 bigwhite技术志 Bool, cobra, config, Cpp, Education, flag, getopt, Go, Golang, ini, Java, json, multiconfig, Perl, POSIX, Ruby, Shell, TOML, twitter, viper, Windows, 命令行选项, 标准库, 配置文件 No Comments 在Twitter上看到一篇关于Golang程序配置方案总结的系列文章(一个mini series,共6篇),原文链接:在这里。我觉得不错,这里粗略整理(非全文翻译)一下,供大家参考。 一、背景 无论使用任何编程语言开发应用,都离不开配置数据。配置数据提供的形式有多样,不外乎命令...阅读全文

Go 的依赖注入

过去几年里我一直使用 Java。最近,用 Go 建立了一个小项目,然而 Go 生态系统中依赖注入(DI)功能缺乏让我震惊。于是我决定尝试使用 Uber 的 [dig](https://github.com/uber-go/dig) 库来构建我的项目,期间感触颇深。 我发现 DI 帮助我解决了之前在 Go 应用程序中遇到的很多问题 - 过度使用 `init` 函数,滥用全局变量和复杂的应用程序设置等。 在这篇文章中,我将介绍 DI ,然后在使用 DI 框架(通过 `dig` 库)前后写一些例子做对比。 ## DI 的简要概述 依赖注入是指你的组件(通常在 Go 中是 struct )在创建时,就应该获取它们依赖关系的一种思想。这与那些组件在初始化过程中,就建立自身依赖关系的反关联模式不同 。我...阅读全文

博文 2018-09-15 18:00:58 polaris

golang如何优雅处理退出

有时候我们想在Go程序中处理Signal信号,比如收到SIGTERM信号后优雅的关闭程序(参看下一节的应用)。Go信号通知机制可以通过往一个channel中发送os.Signal实现。首先我们创建一个os.Signal channel,然后使用signal.Notify注册要接收的信号。package main import "fmt" import "os" import "os/signal" import "syscall" func main() { // Go signal notification works by sending `os.Signal` // values on a channel. We'll create a channel to // receive th...阅读全文

博文 2016-10-08 14:00:02 e421083458

Go基础学习记录之如何在Golang中使用Session

Session背后的基本原则是服务器维护每个客户端的信息,客户端依赖唯一的SessionID来访问此信息。当用户访问Web应用程序时,服务器将根据需要使用以下三个步骤创建新Session: 创建唯一的Session ID 打开数据存储空间:通常我们将Session保存在内存中,但如果系统意外中断,您将丢失所有Session数据。如果Web应用程序处理敏感数据(例如电子商务),这可能是一个非常严重的问题。为了解决此问题,您可以将Session数据保存在数据库或文件系统中。这使得数据持久性更加可靠,并且易于与其他应用程序共享,但需要权衡的是,读取和写入这些Session需要更多的服务器端IO。 将唯一SessionID发送到客户端。 这里的关键步骤是将唯一Session ID发送到客户端。在标准...阅读全文

博文 2018-10-26 22:34:42 DurbanZhang

优化网站性能必备的6种架构方案,你知道吗?

前言 一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随着业务的扩展而逐步完善的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如:淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿用户的实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。尽管如此我们也可以从这些不同的网站背景下,找出其中共用优化的技术,这些优化技术和手段广泛运用在大型网站系统的架构中,下面让我们来认识这些优化性能的技...阅读全文

博文 2017-08-02 03:37:53 不思则罔_不学则殆

golang init函数

go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性, 有下面的特征: 1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 2 每个包可以拥有多个init函数 3 包的每个源文件也可以拥有多个init函数 4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明) 5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序 6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用 下面的两个go文件演示了: 1 一个package或者是go文件可以包含多个init函数, 2 init函数是在main函数之前执行的, 3 init函数被自动调用,不能在其他函数中调用,显式调用会报该函数未定义 g...阅读全文

博文 2018-12-05 12:34:42 stevenlife

golang日志处理

golang程序日志记录 package main import ( "flag" "fmt" "log" "os" "runtime" ) var ( logFileName = flag.String("log", "cServer.log", "Log file name") ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) flag.Parse() //set logfile Stdout logFile, logErr := os.OpenFile(*logFileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666) if logErr != nil { fmt.Println("Fai...阅读全文

博文 2014-10-04 19:26:52 liaojie

网易云音乐一键下载NeteaseMusicDownloader

网易云音乐一键下载工具(MusicDownloader) ![image](https://static.oschina.net/uploads/space/2017/0302/103950_Hj0A_852973.gif) Golang 写的命令行工具,把需要下载的网址粘贴到命令行中即可。 目前支持直接下载: - 歌单 http://music.163.com/#/playlist?id=****** - 单曲 http://music.163.com/#/song?id=****** - 电台节目 http://music.163.com/#/program?id=******   - 歌手 http://music.163.com/#/artist?id=*****...阅读全文

开源项目 2017-03-02 04:00:09 henson

golang的协程原理

协程是应用层的线程。 应用层是相对于内核层而言,是操作系统的概念,对应的是cpu的运行级别。操作系统的核心代码运行的ring0级别,应用程序的代码运行在ring3级别。内核与应用层的级别设置保证了一些高权限的操作只有内核代码能做,应用程序要使用这些功能必须通过调用操作系统的API(linux上称为系统调用)来调用内核的代码。这个调用会导致cpu从ring3到ring0的上下文切换,这个切换是耗费一些cpu时间的。 线程是操作系统的内核对象,多线程编程时,如果线程数过多,就会导致频繁的上下文切换,这些cpu时间是一个额外的耗费。所以在一些高并发的网络服务器编程中,使用一个线程服务一个socket连接是很不明智的。于是操作系统提供了基于事件模式的异步编程模型。用少量的线程来服务大量的网络连接和I...阅读全文

博文 2017-03-15 15:00:43 徐学良

Go-数据库连接

GO src中自带了sql包和连接数据库的包。这里以连接MYsql为例子。 sql.Open 就是开启了一个数据库连接处。在执行EXEC 或者 QUERY的时候就会自己去建立连接。因此整个应用程序 只需要初始化一次sql.db指针。然后到处用就oK了。 // dbTest project main.go package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "time" ) func IsErr(err error) { if err != nil { fmt.Printf("程晗错误:%s", err) } } func main() { //初始化数据库信息,此时就是一个数据库连接池 d...阅读全文

博文 2015-11-07 15:00:01 shuanger_

[Go]Log记录

后端系统中的Log是相当重要的,做过高并发服务的同学都会认同这一点。相对而言,调试已经用处不大了,对于这样的项目,我现在也习惯了这种开发方式,有两个原因:1.debug只能在开发环境,到产线环境就不灵了。2.在并行计算下,debug可能无法发现潜在的问题。 有了以前做node.js的经验,放弃debug没有想象中那么可怕,只要我们程序设计合理,结构清晰,日志完整,看到异常信息后基本都可以快速定位问题所在。 做Java的时候有log4j,做.NET程序的时候有log4net, 做Node.js的时候有log4js....上述几个模块用了都不错,因此做Go项目自然选择了Log4go。 话说这个log4go并不完善,而且两年没维护了,白瞎了这么好的名字。比较严重的是程序退出可能有日志没有flush...阅读全文

博文 2014-11-11 17:00:01 abv123456789

使用 golang-plugins 时要避免的事情

我们正计划开源我们的项目。其中有一些关于授权逻辑的代码是我们公司高度定制的,我们需要在提供相同功能的情况下剔除掉这部分代码。并且,使任何人在实现自己的授权逻辑时,不需要重新编译所有代码。 ![img](https://raw.githubusercontent.com/studygolang/gctt-images/master/things_to_avoid_while_using_golang_plugins/1_X2zMAhjAP445suAyfvPUOw.png) 我们的代码库在我所钟爱的 Go 中。在寻找可能的实现方案时,我们发现了 [golang-plugins](https://golang.org/pkg/plugin/) 。使用 *golang-plugins*,你可以通过...阅读全文

博文 2019-01-01 19:58:57 herowk

破解golang

1、安装完后,在应用程序中找到goland,显示包内容 WX20200113-093441@2x.png 2、把jetbrains-agent.jar文件拷到bin目录下 WX20200113-093530@2x.png 3、在goland.vmoptions文件中添加,保存打开goland,输入激活码 -javaagent:jetbrains-agent.jar WX20200113-093609@2x.png goland安装包和破解补丁都在网盘上,有需要的自取 https://pan.baidu.com/s/1mVrLZGHJFrTUeWuinie7dg ps: 1、添加后goland打不开,请卸载掉再次安装; 2、输入校验码后不生效,请把网络断掉再次输入 祝大家好运!!!...阅读全文

博文 2020-01-13 10:32:57 xiaotimel

四川麻将服务器程序nanoserver

四川麻将玩法, 血战到底(三人模式/四人模式)服务器程序, 房卡模式, 支持俱乐部. 基于[`Nano`](https://github.com/lonnng/nano)开发, 本程序主要用于演示如何使用`nano`进行游戏服务器程序开发, 演示客户端下载地址: iOS: [https://fir.im/tios](https://fir.im/tios) Android: [https://fir.im/tand](https://fir.im/tand) 如果要连接自己的服务器, 可以反编译android的包, 然后修改appConfig.lua中的远程服务器地址, 然后重新打包就可以玩了. 首次运行自动创建MySQL数据库表结构 结构化日志 血战三人玩法/四人玩法完整实现...阅读全文

数据库不适合Docker及容器化的7大原因

导读:所有的服务都开始了容器化升级,在一切皆容器的主流思想下,无状态的服务采用容器化已经是大势所趋,常常困扰架构师的一个问题是,数据库是否需要容器化,本文作者 Mikhail Chinkov 提出了自己否定观点,由高可用架构翻译。如果我们观察 2017 年技术行业,容器和 Docker 依然将是最热门的流行语。我们开始在每个领域的 Docker 容器中打包开发的软件。从小型初创公司到巨大的微服务平台都在使用容器技术。从 CI 平台到 Raspberry Pi 。从数据库到……数据库?您确定要将数据库放在容器中吗?不幸的是,这不是虚构的场景。我看到许多快速增长的项目将数据持久化到容器中。并且将计算服务和数据服务放在同一台机器上。笔者希望有经验的人不会用这个解决方案。下面是我的观点,数据库容器化...阅读全文

博文 2017-02-15 03:10:00 Mikhail Chinkov

go语言学习资源

go语言学习资料整理 1.官网 http://golang.org/ 有的电信运营商防火墙过不去,中国程序员的悲哀。 http://tour.golang.org/#1 http://golang.org/doc/ 2.国内几个博客: http://www.biz366.com/golang-book/preface.html http://www.cnblogs.com/zitsing/tag/go/ http://www.cnblogs.com/yjf512/category/385369.html http://www.mikespook.com/learning-go...阅读全文

博文 2014-11-23 17:00:07 hittata

Go Mvc的一个示例

下载 Go Mvc的一个示例,项目后台用户管理部分,包括用户的添加,修改,删除,分页,查询等操作。分享出来供大家参考。 data.sql 是表结构的创建SQL,运行前先创建数据表。DBConfig.xml是数据库连接字符串的设置,只所以独立出来一个文件,主要是方便程序里对文件进行修,力求简单,在程序运行前先设置Mysql连接信息。访问地址为:http://localhost:6080/Admin/AdminUser/Index 下...阅读全文

博文 2015-05-12 21:00:02 王岩0001

golang使用graphviz

graphviz的介绍请参考: http://www.cnblogs.com/ghj1976/p/4539788.html 安装 graphviz 需要在 http://www.graphviz.org/Download_macos.php 下载对应操作系统的版本。 安装完成后,可以用 dot –V 命令查看安装的版本,确认安装 mac 下安装后,会有一个 Graphviz 的应用可以查看 *.gv 的文件, 如下图效果所示: 产生Graphviz 文件 用 Golang 产生Graphviz 文件的封装方法如下: https://github.com/awalterschulze/gographviz 我们使用它的范例代码如下: package main import ( "fmt" "g...阅读全文

博文 2015-11-04 03:00:00 ghj1976

关于golang里停止程序执行与变量打印

1)golang里有没有停止程序执行的语句,类似于php里的die和exit. 2)在beego里,如何直接打印变量输出到浏览器里,而不需要渲染到模板里,类似于php里的 echo $a; die; 如果使用fmt.Printf(),需要在后台进行查看了。 有没有更直接的方法,刚接触学习,需要进行各种调试,来了解它的执行过程和原理, ...阅读全文

用 Go Plugin 构建模块化系统

自从 golang 1.8以后,提供了一个 Plugin 的机制使得 golang能够加载 so 动态链接库文件。 这样可以对外发布动态链接库而不需要把源码共享给对方去进行编译,还可以做到按需加载相应的插件来实现动态开启插件相应的功能。 官方文档在此:https://golang.org/pkg/plugin/ 编写一个 Plugin 基本有以下几步: 1.Plguin 需要有自己的 main package 2.编译的时候,使用 go build -buildmode=plugin file.go 来编译 3.使用 plugin.Open(path string) 来打开.so文件,同一插件只能打开一次,重复打开会报错 4.使用 plugin.LookUp(name string) 来获取...阅读全文

博文 2019-04-14 22:34:43 faunjoe

比特币vs分布式账本vs以太坊vs区块链

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 我们经常被告知,区块链 - 比特币背后的技术 - 不仅将重新布线银行业,还包括社会保障支付,医疗保健甚至数字投票。 到目前为止,这一切都是理论技术行业的讨论。 然而,最近几个月来,来自更广泛的世界的一阵兴趣,以及一些看起来将会形成未来区块链经济的重大事态发展。 最近出现的情况是,中国将使用区块链进行社会保障支付,而澳大利亚则提议使用区块链来运行投票系统。 与此同时,希拉里•克林顿(Hillary Clinton)公开支持使用区块链进行公共服务。 区块链以及与之相关的技术和平台,包括比特币和以太坊 - 将从一个晦涩的小众技术开始成为新型全球公共基础设施的基础? 存储,共享和安全作为存储和共享高完整性数据的一种方式 ...阅读全文

博文 2019-09-17 11:03:11 链客

使用Intellij IDEA在Windwos下搭建golang开发环境 (把屎把尿超详细)

之前用golang的时候都是在Mac OS X和Linux下的, 用gvm安装golang,自动设置好相关环境, 安装个Sublime Text安装GoSublime插件即可. 搭建过程算是相当简单的. 现在还到Windows下的时候, 发现继续用Sublime Text来配置开发环境着实要蛋疼得多. 由此转向了Intellij IDEA. 废话不多说下面是整个安装环境的搭建. 另外其实很多网上的搭建教程过于老旧, 已经不再适用. 一. 首先安装golang 可以自己下载源码进行编译, 也可以直接下载二进制包. 我这里下载的是最新的go1.2 r5 64位版(32位系统的同学要知道自己应该下载32位的)地址在此go1.2rc5.windows-amd64.msi 安装过程比较简单, 直接凶猛...阅读全文

Go编程语言前景怎么样?参加培训好就业吗

Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。不仅可以开发web,可以开发底层,目前知乎就是用golang开发。区块链首选语言就是go,以-太坊,超级账本都是基于go语言,还有go语言版本的btcd. Go的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。Google对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助程序设计师处理琐碎但重要的内存管理问题。Go的速度也非常快,几乎和C或C++程序一...阅读全文

博文 2019-04-03 20:34:42 QFdongdong

golang编写的数据库中间件kingshard

偶然网上看到这个kingshard,自己对golang感兴趣就试玩了一下,可以正常跑成功。 数据库中间件是什么呢?简单的说和数据库类似,不同的是当程序里发送sql给它的时候,它会根据配置对sql进行分析,而后将sql发送到指定的节点(node)上,它的后面是若干数据库运行实例。 当应用发展起来后,随着数据库的压力逐渐变大,通常都要进行分库,分表,主从分离,这些东西在应用程序里实现也可以,但是会造成应用程序过于复杂,后续难以维护。使用中间件,将分库、分表、主从分离逻辑放到中间件上就更好的分离代码。 kingshard整体架构如下: kingshard架构图 其中 client是需要连接数据库的客户端; kingshard就是数据库中间件了; node1和node2就是不同的mysql数据库节点...阅读全文

博文 2015-10-16 21:53:38 陈杰斌

golang学习之debug

先说一下,之前接触的Java,最近有需要接触到golang,所以一般会使用迁移思维,想着debug调试代码,网上搜了很多资料,大家推荐的都是golang的集成工具,类似gbd,delve这样的工具,但是就算golang本身没有debug,IDE肯定也是集成了debug的调试的 在Java编程的时候,使用IDEA的人,应该也会使用GoLang(吐槽一句,编辑器和语言名字一模一样,搜索问题的时候,很容易搜不到啊~),其实GoLang和IDEA是一模一样的,快捷键也基本一样, 见下图: 屏幕快照 2018-07-31 上午11.54.53.png 我想着的是这个地方配置debug,一般的项目不用配置,右键在main.go文件debug选择就可以了。如果项目需要运行的是整个包,不是单个文件;或者项目...阅读全文

博文 2018-07-31 19:34:47 卡萨布兰卡ginger

开放云平台应用开发库和工具集Go Cloud

Go Cloud Project 是 Google 推出的一项计划,允许开发者在任何云提供商上无缝部署云端应用。它通过为存储和数据库等常见用途提供稳定的通用接口来实现此目的。 Go Cloud 是一个可在开放云平台上进行开发的库和工具集,旨在让 Go 语言成为开发构建可移植云端应用程序的首选语言。它提供一组用于访问 Blob 存储、MySQL 数据库和运行时配置的开放式通用云 API ,以及具有内置日志记录、跟踪和运行状况检查的 HTTP 服务器。 Go Cloud 提供通用 API: 非结构化二进制(blob)存储 在运行时更改的变量(配置) 连接 MySQL 数据库 服务器启动和诊断:请求记录、跟踪和运行状况检...阅读全文

搭建go开发环境时,出现GoSublime error: MarGo build failed的问题

在安装问go语言开发工具,Sublime Text Build 3083之后,再安装gocode和margo时,在安装margo那一步卡住了,出现了以下问题: GoSublime error: MarGo build failed | > This is possibly a bug or miss-configuration of your environment. | > For more help, please file an issue with the following build output | > at: https://github.com/DisposaBoy/GoSublime/issues/new | > or alternatively, you may sen...阅读全文

博文 2016-04-10 05:00:01 QUBUBING

Golang调试工具Delve安装及使用

Golang debug 推荐使用 Delve 工具,项目地址:https://github.com/derekparker/delve 一、安装 照着 github 上 delve 项目的安装说明操作,go mod模式下推荐使用第二种方式。 1.拉取最新 delve 项目代码到本地,编译安装。 # cd $GOPATH/src/ # git clone https://github.com/derekparker/delve.git # cd delve/cmd/dlv/ # go build # go install 国内环境go build会报错: go: golang.org/x/crypto@v0.0.0-20180614174826-fd5f17ee7299: unrecogni...阅读全文

博文 2018-12-25 12:34:43 野尘lxw

Go Mod对比Go Vendor

之前写Go的时候都是直接Deb或者更暴力的Go get来安装依赖包,也是因为那时候为了赶项目直接走最直接的方法,现在有点时间了,来研究一下目前大家常使用的Go包管理器。 今天我们要介绍的两种方式是Go Mod和Go Vendor。 1.Go Mod 1.11版本之后开始能支持的一个包的管理,1.12版本正式GA解决的问题是golang不再依赖gopath的设置,下载下来的包可以直接使用。 1.1 存在问题:对使用者不友好 目前已经更新到1.12版本,但是go mod还是不太友好,使用起来不太方便。 开发的时候还是需要go get提前下载包,然后再应用。 只有要打包的时候执行一套命令,类似于下面这样: go mod init ./ go build main.go 或 go build -mo...阅读全文

博文 2019-03-14 03:34:40 Lateautumn_Lin

Go语言开发环境配置教程及使用

传说go语言的最佳开发环境是苹果的XCODE,我测试的结果确实如此。需要用CGO编译带C代码的go程序的朋友,建议首选苹果的XCODE环境。Windows环境下配置CGO编译非常麻烦,因为Go的文档例子大多以UNIX为例子,所以有些C代码在windows下无法编译,需要修改代码。 我用到的go语言版本是最新的发布版本go 1。点此下载go1.1.2最新版 国人翻译的go官方安装文档的链接: http://code.google.com/p/golang-china/wiki/Install 。这个官方安装文档感觉有些过时了,仅供参考。 还有一个《学习Go语言》中文版可以参考:地址:http://www.mikespook.com/learning-go/comment-page-1/#com...阅读全文

博文 2014-10-09 18:00:03 cometwo

golang mysql

我实在受不了哪些只会粘贴别人东西的东西。自己不动手实践就开始放屁!golang访问mysql数据库1)下载mysql驱动https://github.com/go-sql-driver/mysql下载zip包mysql-master.zip2)将mysql-master.zip放到redhat6.4的机器上,解压,获得文件夹mysql-master,将这个目录改名为mysql,并将mysql目录移到/usr/local/go/src/目录下。/usr/local/go目录是我的GOROOT目录。3)安装mysql,为了简单使用root用户在mysql数据库中创建表userinfo用户:root,密码:空;数据库:msyql,表userinfocreate table userinfo (ui...阅读全文

博文 2017-05-24 02:09:33 haolifengwang

golang中sublime text中配置goimports

生态go对于import包无法自动添加或者删除,对于某些用户来说很不适应.在sublime text中利用gosublime+goimports很好的解决了这一问题. 1首先确认sublime text安装了Gosublime(安装方法这里不在赘述); 2下载goimports: go get code.google.com/p/go.tools/cmd/goimports 3配置sublime text,配制方法如下:preferences->package settings->gosublime->setting-user中添加如下内容 { "fmt_cmd": ["goimports"] } 4重启sublime text,即可看到可以自动添加程序中缺少的包或者删除程序中多余的包,而不...阅读全文

博文 2015-06-17 20:17:46 chenbaoke

130套简历免费领取

#### 最新最全的 简历模板,总有一款适合你。关注公众号(程序员的视界)免费领取,或:wx:17326070896 ![微信图片_20181016164456.png](https://static.studygolang.com/181016/d13070498d325a9a5c3ca7397c0f5576.png)![微信图片_20181016164456.png](https://static.studygolang.com/181016/d13070498d325a9a5c3ca7397c0f5576.png)![微信图片_20181016133759.png](https://static.studygolang.com/181016/a8067247a9104fc090c3a...阅读全文

用Go语言绘制Go语言地鼠吉祥物

Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。但Go语言除了擅长处理服务器端任务外,它还可以用来做图。 package main import ( "log" "github.com/fogleman/pt/pt" ) func main() { scene := pt.Scene{} wall := pt.SpecularMaterial(pt.HexColor(0xFCFAE1), 2) scene.Add(pt.NewSphere(pt.Vector{4, 7, 3}, 2, pt.LightMaterial(pt.Color{1, 1, 1}, 1, p...阅读全文

博文 2015-03-05 11:29:45 techug

QOR:基于go语言开发的电商系统、CMS工具包

QOR是首个使用Go语言开发的电商系统和CMS的软件工具开发包(SDK),开源项目,包含一系列的通用功能模块,实现快速集成、灵活配置,让开发电商网站、CMS,像搭积木一样简单快捷。 ## 目前已经上线的模块 * Admin: 快速为您的应用程序生成一个漂亮、可跨平台运行、可配置的管理后台。 * Publish: 分别设置预演和正式服务器,使用Publish,内容管理员就能在正式发布之前预览所更新的内容。 * Transition: 用Transition来体现业务流程和执行业务规则。 * Media Library: 支持上传文件至云端或其他位置;支持图像裁剪和调整尺寸。 * Worker: 运行批处理进程,进行批量数据处理或其他耗时的计算。 * Exchange: 应...阅读全文

golang goland环境安装配置

安装 Go Go语言的优劣,这里就不介绍了,下面直接讲Go 的安装: Go 的官方网站:http://golang.org/(需要FQ软件) 国内下载地址:http://www.golangtc.com/download) 下载对应平台的安装包。注意区分32位还是64位操作系统。 安装包下载完成之后,安装过程很简单,傻瓜式下一步到底就好了。 Go 环境变量 安装go 的时候,安装程序会自动把相关目录写到系统环境。但是如果是zip 的安装,需要自己手动添加。 主要配置以下几个: GOROOT:Go 安装后的根目录(例如:D:\Go),安装过程中会由安装程序自动写入系统环境变量中。 GOBIN:Go 的二进制文件存放目录(%GOROOT%\bin) PATH:需要将 %GOBIN% 加在 PAT...阅读全文

博文 2018-12-27 17:34:58 w85278161

go与python

python是最简洁的语言,没有之一。目前有很多go程序员都是python程序员,因此,对go的评价有一句很典型的话:go写起来像python一样。 用了go一段时间,感受如下: 1、写起来像python一样,但距离python还是有段距离的。尤其是,python提供了idle命令行解释器,这个可以很方便的写一些小例子来验证一些函数如何使用,go这方面就不如。 2、go语言的静态属性导致go不可能像python一样简洁,这如同硬币的两面; 3、go语言语法非常严格,在编译的时候,能够预防很多错误; 4、go语言执行效率远远高于python。这一点很重要。有些pythoner不服,总是说,想要效率的话,你可以pypy啊,你可以使用c扩展啊,等等,但是问题是,如果使用了pypy,或者使用c扩展的...阅读全文

博文 2015-10-14 15:02:42 铁哥

golang手动管理内存

作者:John Graham-Cumming. 原文点击此处。翻译:Lubia Yang 前些天我介绍了我们对Lua的使用,implement our new Web Application Firewall. 另一种在CloudFlare (作者的公司)变得非常流行的语言是Golang。在过去,我写了一篇 how we use Go来介绍类似Railgun的网络服务的编写。 用Golang这样带GC的语言编写长期运行的网络服务有一个很大的挑战,那就是内存管理。 为了理解Golang的内存管理有必要对run-time源码进行深挖。有两个进程区分应用程序不再使用的内存,当它们看起来不会再使用,就把它们归还到操作系统(在Golang源码里称为scavenging )。 这里有一个简单的程序制造了...阅读全文

k8s与健康检查--grpc服务健康检查最佳实践

前言 GRPC正在成为云原生微服务之间通信的通用语言。如果您今天要将gRPC应用程序部署到Kubernetes,您可能想知道配置运行状况检查的最佳方法。在本文中,我们将讨论grpc-health-probe,一种Kubernetes本地健康检查gRPC应用程序的方法。 果您不熟悉,Kubernetes健康检查(liveness and readiness probes)就是让您的应用程序在您睡觉时保持可用的原因。他们检测到没有响应的pod,将它们标记为不健康,并导致这些pod重新启动或重新调度。 kubernetes本身不支持gRPC健康检查。这使得gRPC开发人员在部署到Kubernetes时有以下三种方法: httpGet probe: 不能与gRPC原生使用。您需要重构您的应用程序以同...阅读全文

博文 2019-03-02 11:34:41 iyacontrol

Mac下搭建Go语言开发环境

一、安装Golang的SDK方法一:下载安装包SDK安装包下载地址 :https://golang.org/dl/ 下载图中的两个 1、双击 .tar 文件,就会自动解压成名字为“go”的文件夹;拖拽到你的用户名下,记住路径;我的路径为:/Users/haodaibao/go 2、双击pkg包,顺着指引,即可安装成功。3、验证SDK安装成功在命令行输入go version,获取到go的version,则代表安装成功。我的验证结果如下:go version go1.10.3 darwin/amd64二、配置环境变量 1、打开终端输入cd ~进入用户主目录; 2、输入ls -all命令查看是否存在.bash_profile; 3、存在既使用vim .bash_profile打开文件; 4、输入i...阅读全文

博文 2018-07-10 14:34:48 百事小武

Go by Example 中文版

[gobyexample](https://gobyexample.com/) 应该很多 gopher 都知道。现在有网友翻译成了中文版,可以对照着看看。 Go 是一个被设计用来建立简单,快速和可信赖的软件的开源程序设计语言。 Go by Example 是一个实践性的通过带注释的例子程序去介绍 Go。 [中文版](http://gobyexample.everyx.in/) 查看[第一个例子](http://gobyexample.everyx.in/hello-world/)。以下是例子主题: 你好,世界 值 变量 常量 For循环 if/else 分支 分支结构 数组 切片 关联数组 Range 遍历 函数 多...阅读全文

Golang使用amqp发送消息

1.为什么使用信道(channel)而不使用TCP连接发送AMQP命令? 对操作系统来说频繁的建立和销毁TCP连接开销非常昂贵,而操作系统每秒建立的连接是有上限的,性能瓶颈不可避免,而只建立一条TCP连接无疑是一个很好的方案,在这条连接当中建立多条信道与RabbitMQ进行私密通信,相当于光纤电缆一样,一条电缆有多条光束,信道是没有限制的 2.队列 1)AMQP的命令basic.consume与basic.get 如果需要消息一到达队列就自动接收的话,应该使用basic.consume basic.get会订阅消息,获得单条消息,然后取消订阅,值得注意的是不应该循环basic.get来替代basic.consume,应该理性使用basic.consume实现高吞吐量 消息如果到达无人订阅的队...阅读全文

博文 2016-10-11 08:00:18 fyxichen

专业 Golang HTTP 服务器

> 如何使用 Go 启动新的 Web 项目,使用路由,中间件和让我们加密认证。 Golang 有一个很棒的自带 http 服务器软件包,不用说就是: net/http, 它非常简单,但是功能非常强大。 定义处理路由的函数,端口是 80。 ```go package main import ( "io" "net/http" ) func main() { http.HandleFunc("/", helloWorldHandler) http.ListenAndServe(":80", nil) } func helloWorldHandler(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "Hello world!"...阅读全文

博文 2018-05-18 14:38:22 wentingrohwer

如何用Go实现一款类似滴滴优步的网络约车软件(含源码)

导读:我们经常使用打车软件出行,也经常思考其架构设计。本文作者在所在国家也负责开发一款打车软件,并且开源了其中大部分代码,可以帮助我们更好了解网络约车软件的架构体系。本文由高可用架构翻译。各位读者好,本文将给大家分享我们如何通过内存存储实现地图动画车效果。 我们公司也运营了一个类似 Uber 的软件 Namba Taxi,我们需要在客户端主屏幕上显示动画车。 这篇文章是关于功能如何完整实现的文章,主要目的不是介绍 Go 语言。开始这个故事始于2015年,我们的移动开发人员开发一款软件,工作主题是为出租车司机提供打车服务。 在应用程序中,动画汽车看起来像下面的图中动画那样 [1] 。我们的第一个挑战是缺乏地图跟踪数据。我们每 15 秒获取一次位置数据。 我们不能简单减小上报间隔,因为当司机端程...阅读全文

博文 2017-02-28 03:03:03 Andrew Minkin

Golang工具链概览(一)

我们都知道Golang提供了很多功能丰富而强大的命令行工具。但是这么多工具,每一个到底是做什么用的?本文来粗略的聊聊比较常用的几个工具的作用和用法。 gofmt gofmt是一个代码格式化工具,仅针对代码格式进行整理,保证大家的代码格式统一。 附上gofmt前后的效果: golint golint工具是对代码质量的检查,会给出一些最佳实践指引。看下面的代码: 之行golint之后 main.go:8:5: error var SomeError should have name of the form ErrFoo main.go:8:5: exported var SomeError should have comment or be unexported main.go:16:9: if...阅读全文

博文 2015-09-09 19:54:59 长洪