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

[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热加载配置实践

前言 生产环境上所输出的日志级别较高不利于定位,会碰到这样一种场景,我们改配置修改日志级别,再重启,以期望定位问题,然而问题重启后不浮现了,所以热加载配置有必要添进去。 实践 直接上代码: package main import ( "encoding/json" "fmt" "io/ioutil" "os" "os/signal" "syscall" "time" ) type Config struct { Mode string `json:"Mode"` } var ( config *Config ) func loadConfig() { f, err := ioutil.ReadFile("config.json") if err != nil { fmt.Println("[...阅读全文

博文 2015-11-25 11:00:03 chenwenhao0304

go源码阅读笔记(math.3)

go源码阅读笔记(math.3) dim.go package math // Dim returns the maximum of x-y or 0. // // Special cases are: // Dim(+Inf, +Inf) = NaN // Dim(-Inf, -Inf) = NaN // Dim(x, NaN) = Dim(NaN, x) = NaN func Dim(x, y float64) float64 func dim(x, y float64) float64 { return max(x-y, 0) } func dim(x, y float64) float64 ,返回x-y与0的较大者 这里我们可以看出,调用的函数max()进行了各种异常判断,所以在di...阅读全文

博文 2016-03-18 16:00:03 qq_15437667

go源码阅读笔记(math.1)

go源码阅读笔记(math.1) abs.go func Abs(x float64) float64 package math // Abs returns the absolute value of x. // // Special cases are: // Abs(±Inf) = +Inf // Abs(NaN) = NaN func Abs(x float64) float64 { // TODO: once golang.org/issue/13095 is fixed, change this to: // return Float64frombits(Float64bits(x) &^ (1 << 63)) // But for now, this generates bet...阅读全文

博文 2016-03-16 00:00:00 qq_15437667

云存储公司(上海)招聘Go语言资深服务器端开发工程师!

职位要求: - 在架构师的协助下,实现系统功能 - 负责产品化组的服务端开发工作 - Review代码,并提出修改意见 - 为功能编写单元测试 - 工作积极主动,擅于思考问题,能够主动沟通与解决问题 - 精通和熟悉主流语言的至少一门C/C++/Java/C#/Python/PHP/Go/Ruby/Erlang等 - 熟悉Linux工作环境,熟悉至少一种数据库编程 - 熟悉HTTP协议,了解Web安全 - 外语文档阅读能力 - 熟悉Go语言优先 - 有管理经验或架构经验优先 - 参与过开源项目优先 地点是在上海地铁二号线金科路附近,公司为知名云存储公司,如果有兴趣详细沟通可以通过以下联系方式了解具体详情 - QQ 314820246 - 手机 159019...阅读全文

最佳日志实践(v2.0)

----- 0. 缘起 ----- 大约在三年前,我曾经写过一篇 最佳日志实践 ( http://link.zhihu.com/?target=http%3A//blog.jobbole.com/56574/ ) ,还被码农周刊选为那年的 最受欢迎技术干货 ( http://link.zhihu.com/?target=http%3A//oiolong.github.io/linux/2015/01/04/manong-2014-collection.html ) 之一。当时我任职于网易杭州研究院的存储平台组,主要做网易对象存储(NOS)的开发和部分运维工作。由于网易云音乐,易信等几个重要产品陆续上线,业务压力剧增,我们的系统在前前后后大约半年的时间里,出现了大大小小各种事故。通过不断总结事...阅读全文

博文 2017-07-11 02:07:36 王健

golang不定参数

1.有时候想一个函数中传入的参数很可能是不定的,除了可以使用: func funcname(...interface{}){ } 2.也可以将许多参数放进一个数组中,然后作为参数传入函数(或许会觉得这样有点多此一举,但是很可能存在历史遗留问题): func funcname(args []interface{}){ fmt.Print(args...) //args...是将一个数组按顺序变成不定参数传入,这个还真的挺好用的 } $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2015-11-30 15:00:42 vrinux

本站主题和资源等页面改版完成

经过紧张的开发,本站主题和资源等页面改版完成。 1.内容支持 @ 用户,可以拉他来帮忙解决问题,会给他发系统消息,如 @Unknown 2.支持 emoji 表情. :smile: :clap: :plus1: 3.支持上传图片…… 4.其他更多功能…… 注意:如果列表页样式有点乱,请执行 ctrl+f5 强制刷新一下...阅读全文

golang新版本对于cgo支持的一个坑

文件test.h如下 #ifndef _TEST_H #define _TEST_H #ifdef __cplusplus extern "C" { #endif extern void myTest(); #ifdef __cplusplus } #endif #endif 文件test.cc如下 #include "_cgo_export.h" extern "C" { void myTest() { test(); } } 文件test.go如下 package test /* #include "test.h" */ import "C" import () func Test() { C.myTest() } //export test func test() { println(...阅读全文

博文 2015-06-17 20:17:42 HopingWhite

erlang对比golang,如何选择?

我最早使用的语言是Java和Python, 并且一直都对Python充满好感, 我喜欢这种很朴实和高效率的感觉, 但我却最后没有采用Python,原因其实也很简单, 我就是不喜欢缩进语法, 就跟很多人换工作仅仅是为了屏幕更大一点一样, 另外就是有了同样很棒的可选方案, 这就是Ruby, 所以我最终采用了Ruby作为主力编程语言, 同样也为不能使用Python而有一点小遗憾,毕竟Python的健壮性比Ruby好很多,只不过Ruby也一直在进步, 所以这一点无伤大雅 我们都知道,无论是Python还是Ruby,甚至Java, 都是在解决业务层的问题, 属于应用型语言, 以解决业务逻辑为主, 但还有一个领域是系统领域,偏网络层和底层操作,在这一块我一直在寻找一种优雅的方案, C++被我首先给淘汰掉...阅读全文

博文 2016-06-07 17:00:02 jiang314

Erlang和Golang的几点粗浅的比较

我最早使用的语言是Java和Python, 并且一直都对Python充满好感, 我喜欢这种很朴实和高效率的感觉, 但我却最后没有采用Python,原因其实也很简单, 我就是不喜欢缩进语法, 就跟很多人换工作仅仅是为了屏幕更大一点一样, 另外就是有了同样很棒的可选方案, 这就是Ruby, 所以我最终采用了Ruby作为主力编程语言, 同样也为不能使用Python而有一点小遗憾,毕竟Python的健壮性比Ruby好很多,只不过Ruby也一直在进步, 所以这一点无伤大雅 我们都知道,无论是Python还是Ruby,甚至Java, 都是在解决业务层的问题, 属于应用型语言, 以解决业务逻辑为主, 但还有一个领域是系统领域,偏网络层和底层操作,在这一块我一直在寻找一种优雅的方案, C++被我首先给淘汰掉...阅读全文

博文 2014-10-10 07:00:01 educast

老虞学GoLang笔记-变量声明与初始化

变量声明 官方DOC: http://golang.org//spec#Variable_declarations Go中使用全新的关键字var来声明变量。var我们并不陌生,在Javascript 和C#中均有出现。不同的是Go和C#中变量属于强类型,在声明变量后就不允许改变其数据类型。 声明变量有多种形态: var a int //声明一个int类型的变量 var b struct { //声明一个结构体 name string } var a = 8 //声明变量的同时赋值,编译器自动推导其数据类型 var a int = 8 //声明变量的同时赋值 var { //批量声明变量,简洁 a int b string } 变量初始化 变量的初始化工作可以在声明变量时进行初始化,也可以先声...阅读全文

博文 2015-07-21 15:00:01 Gopher老虞

用go run命令启动main package中的多个文件

通常在main package中只有一个main.go文件,里面有程序的入口函数main()。 使用 go run main.go 就可以跑起程序了。 但是如果main.go文件比较长,希望将main.go拆分多个文件,比如在main package下,有a.go , b.go和main.go。 这个时候再用 go run main.go就会报错。 使用 go run *.go 可以解决问题。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2017-01-06 15:00:03 bdss58

老虞学GoLang笔记-变量声明与初始化

变量声明 官方DOC: http://golang.org//spec#Variable_declarations Go中使用全新的关键字var来声明变量。var我们并不陌生,在Javascript 和C#中均有出现。不同的是Go和C#中变量属于强类型,在声明变量后就不允许改变其数据类型。 声明变量有多种形态: var a int //声明一个int类型的变量 var b struct { //声明一个结构体 name string } var a = 8 //声明变量的同时赋值,编译器自动推导其数据类型 var a int = 8 //声明变量的同时赋值 var { //批量声明变量,简洁 a int b string } 变量初始化 变量的初始化工作可以在声明变量时进行初始化,也可以先声...阅读全文

博文 2015-07-21 15:00:02 Gopher老虞

Go语言 北京UTC+8 时间问题

go语言(golang)时间问题: 获取系统当前时间(2017-06-05 16:22:30.628247233 +0800 CST): curNow := time.Now().Local() 得出的结果有时会出现:2017-06-05 8:22:30.628247233 +0800 CST,与当前系统时间相差8小时 解决问题: 只要在 init中 或者 相关时间调用函数的代码使用之前加入如下代码: 方案一、 timelocal = time.FixedZone("CST", 3600*8) time.Local = timelocal 方案二、 timelocal = time.LoadLocation("Asia/Chongqing") time.Local = timelocal 之...阅读全文

博文 2017-06-05 09:03:22 koalaone

golang根据配置的时间和时区计算定时任务是否到了刷新时间

起因 思路 细化 遗留问题 起因 很多时候我们会碰到这样的需求,每天某个时候需要定时执行某个任务,比如定时发邮件、定时发推送消息等,而这个定时是针对当地时间的,比如每天中午12点发推送消息给玩家提醒可以上线领金币啦。 然而,中国的12点和越南的12点就不是同一个12点,所以需要通过时区计算是否到了该执行任务的时候。 思路 先来看一下如何根据时区计算约定的时间。假设现在需要晚上20点,执行任务,时区为西3时区。首先生成一个格林威治时间的20点 utcTime := time.Now().UTC() targetTime :=time.Date(utcTime.Year(),utcTime.Month(),utcTime.Day(), 20, 0, 0, 0, utcTime.Location(...阅读全文

博文 2016-11-04 14:00:04 changjixiong

基于 niping 的 SAP 网络分布式监控平台SAPNetworkMonitor

**Sap Network Monitor** 工具分为**Server**和**Monitor**两个部分. **Server**主要负责Monitor的监控和数据收集、统计、展现,它是一个Web服务,以直观简介的界面,让管理人员进行监控和快速的定位问题。它只需要部署一台就可以了,推荐部署在Linux系统上,数据库推荐使用PostgreSQL,也可以用Mysql **Monitor**实际上是代替SAP管理人员,在SAP的客户端机器或网络内执行niping命令,来对目标路由进行时延、稳定性、超时等测试,它与Server按频率进行心跳,并从Server端接收任务指令,在本地执行任务并返回结果。它可以安装在多个需要进行niping -c 监测的SAP客户机上。Monitor用Golang语...阅读全文

开源项目 2017-07-20 04:00:12 网友

招聘Golang工程师 兼职 薪资面议 可远程操作

岗位职责: 1.能够熟练使用golang进行服务端项目开发,能够维护已有golang项目代码,理解项目代码的业务逻辑,并能够修复已有代码BUG。 2.能够熟练地进行linux服务器运维管理,如监控、分析日志、定位问题等等。 任职要求: 1) 3年以上后台软件开发工作经验; 2) 掌握Linux环境下的开发技能(shell的基本命令); 3) 专业基础扎实,了解常用数据结构和算法的优缺点 4) 具备Http协议,TCP/IP协议,Socket网络编程知识; 5) 熟悉SQL Server、MongoDB、Memcached等数据库应用开发经验;emcached等数据库应用开发经验; 有以下经验者优先: 1)有热门开源代码分析经验; 2)其他语言掌握:Java/C#/...阅读全文

Minieye研发部招聘 Golang开发工程师

RT 诚招golang研发工程师,学历工作经历要求不限,重点是具备用golang语言解决问题的能力! 可推荐,成功入职,送ipx到ip8不等的奖品!!!更多信息请了解www.minieye.cc,或微信 ![834DAE65-A914-4DEB-B2C5-2FA48DB70F29.png](https://static.studygolang.com/180404/678d23337dee9e4043a53690c93e1adb.png) ![WechatIMG21.png](https://static.studygolang.com/180404/4e700d213c22f710d9c6a386fa4ffadd.png...阅读全文

运维架构服务监控Open-Falcon

摘要:监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。一、 介绍监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的...阅读全文

博文 2017-10-12 08:38:14 肆虐的悲傷

大数据分析师工作累吗?

在大数据时代的背景下,出现了另一类程序员—大数据开发工程师,他们因为掌握着前沿的大数据相关技术,深受企业重视,找工作容易收入也非常高,但作为IT行业的又一分类,是否加班牵动了无数转行者的心! 对于大数据开发工作是否加班的这个问题,不能一概而论,需根据公司的实际情况而定,有些公司有加班的氛围,即使非IT岗,也会有加班的情况,这样的公司大数据开发肯定会加班无疑的;有些公司不鼓励加班,会根据大数据开发流程制定合理的项目进度,只要具备相应的技能,快速的解决问题,相信这种情况是不会加班的。 仅凭是否加班去选择工作岗位是一件十分可笑的事情,确实有些岗位具有很高的加班概率,但并不是一定就会加班,而且选择岗位最好是根据个人爱好和目前的实际情况进行选择,相信这样选择的工作才会更持久,工作更舒心! ...阅读全文

golang 中mgo的使用问题

mgo中remove后还可以find到 ``` err := cCourseSelector.Remove(bson.M{"courseno":courseno,"queuenum":num}) fmt.Println(err) err = cCourseSelector.Find(bson.M{"courseno":courseno,"queuenum":num}).One(&a) ``` 得到的第一个和第二个err都是nil,然后我拿到的a也是存在的(不是空的).这不就说明了这删除操作没有成功么? 如果是因为延迟的存在的话我又在Remove后面加上了Sleep,休眠了5秒。返回的答案和上面一样.mongodb和go都是 初学者,学习了不足半...阅读全文

yum安装golang,没有发现资源。缺少EPEL

(epel是社区强烈打造的免费开源发行软件包版本库,系统包含大概有1万多个软件包)【CentOS6.5】安装nginx报错:No package nginx available. Error: Nothing to do今天在给centos6.5安装nginx时候,提示报错No package nginx available. Error: Nothing to do,后来百度一下,说缺少EPEL(epel是社区强烈打造的免费开源发行软件包版本库,系统包含大概有1万多个软件包)版本寻找地址:http://fedoraproject.org/wiki/EPEL我需要的是centos6.5 64位(适用于6.x),我直接找到源后wget下载到当前目录:wget http://dl.fedorap...阅读全文

博文 2018-11-08 00:34:42 城市自由人

D语言在国内的发展问题

D语言是一个非常不错的编译型语言,也就是所谓的系统级编程语言,有非常强大的编译时机制,更有强大的性能,简洁的语法就像 C#、JAVA、PHP 一样容易使用。国内的主要问题是没有一个D语言官网的中文社区,让一些喜欢D语言和使用D语言的开发者不能聚集在一起探讨问题,当然 HuntLabs 已经准备了两个域名打算做中文社区,是 dlangchina.com 和 dlang.org.cn 目前还没有选定最终使用哪个。当年 PHP 火了是因为 discuz,那是 BBS 时代的产物,后来有公司为了自我炒作把 golang 带起来了,也就是国内的技术社区完全靠炒作就可以把不行的东西变成行,反而让 dlang 和 rust 这些有实力的语言不能很好的得到推广应用。D语言最大的问题还是缺少服务端框架生态,目...阅读全文

博文 2018-07-09 17:34:55 邹佳庆

APP测试之做好功能交接

项目中出现人员变动时,你一定遇到过被动的接受别人的项目或者功能模块,而在交接过程中,不可避免的会出现功能细节和测试注意点的遗漏,那么当这些功能出现问题或者变动时,你要如何保证项目质量呢?我们又是否有方法最大程度的避免交接遗漏呢?   下面,小编就分享一些项目中的经验给大家~    功能交接过程   1)交接前: a.     阅读相关文档(需求、流程图以及交接人的总结文档),确保在正式交接前对该功能有整体了解; b.     罗列自己的疑问,明确功能难点; c.      查看bug列表,明确易出问题的环节;   2)交接中: a.     解除疑问; b.     抓住重点和逻辑复杂的模块,尽量细致的提问和了解; c.      依据bug列表,在APP测试过程...阅读全文

go语言安装与设置

windows下安装: 包下载路径:http://golangtc.com/download 使用前需要dos执行 set GOROOT= set GOOS=mingw set GOARCH=386 set PATH=/bin 编译执行test.go文件需要执行 8g test.go //编译生成test.8 8l test.8 //连接生成8.exe 8 //执行8.exe example: package main import “fmt” func main() { fmt.Print(“Hello, World\n”) } 中文支持需要保证go文件采用utf-8格式存放,且没有BOM字符 1、dos执行chcp 65001 //修改代码页为utf-8,否则无法通过编译 2、修改dos...阅读全文

博文 2016-04-26 21:00:05 xueyingqi

[北京] [搜狐] [创新研究院] 诚邀 Go 开发工程师 加入

*工作职责: * 0. 负责搜狐快站微服务模块的设计、开发和维护 *职位要求:* 0. 扎实的计算机基础,良好的数据结构和算法知识 1. 扎实的 Go 语言编程基础,良好的编程习惯 2. 深入理解 Go 并发编程 ,1 年以上 Go 语言开发经验 3. 优秀的分析问题和解决问题能力 简历请停靠 >>:[chengliu@sohu-inc.com](mailto:chengliu@sohu-inc.com) ...阅读全文

盒测试之做好功能交接

项目中出现人员变动时,你一定遇到过被动的接受别人的项目或者功能模块,而在交接过程中,APP测试便可能出现不可避免的会出现功能细节和测试注意点的遗漏,那么当这些功能出现问题或者变动时,你要如何保证项目质量呢?我们又是否有方法最大程度的避免交接遗漏呢? 下面,TestBird就分享一些项目中的经验给大家~  功能交接过程  1)交接前: a.     阅读相关文档(需求、流程图以及交接人的总结文档),确保在正式交接前对该功能有整体了解; b.     罗列自己的疑问,明确功能难点; c.      查看bug列表,明确易出问题的环节; 2)交接中: a.     解除疑问; b.     抓住重点和逻辑复杂的模块,尽量细致的提问和了解; c. ...阅读全文

秒拍招聘 Golang 高级服务端开发工程师,工作地点:北京·望京, 15 薪

简历请发送至 zhuLiang (AT) yiXia.com ,不是HR,技术直招! 1、基本功扎实;熟练掌握常见的数据结构和算法。 2、有 C/C++ 经验者可加分; 3、有丰富的工作经验,能够独立主导要求对自己做的项目有自己深入的理解,并能持续的关注和优化自己做的项目; 4、精通 MySQL 应用开发,熟悉数据库原理和常用性能优化技术,以及 NoSQL 原理、使用场景以及限制; 5、熟悉常用的互联网技术,包括但不限于 RPC、MQ、缓存技术、调用策略等; 6、参与过大型复杂分布式互联网系统的设计、架构者优先; 7、有较强的逻辑思维能力,善于分析、归纳、解决问...阅读全文

高速成长的创业公司,诚邀互联网产品大牛,GO研发大牛 坐标:深圳

岗位职责: 负责公司产品后台服务的架构搭建和编码实现; 负责公司后台性能优化,与产品协作提升产品数据; 高级工程师带领团队完成工作,并负责技术攻关. 技术分享; 岗位要求: 1.熟悉golang或c++开发,3年以上实际项目经验; 2.精通linux/unix网络编程. 多线程编程; 3.逻辑思维能力强,有较强的分析定位问题的能力; 4.掌握mysql. redis或其他数据库,能够独立设计数据库表格并优化数据库语句; 加分项: 熟悉Python 有高并发. 数据集群. 海量数据处理研发经验 Spider. 搜索. 推荐系统. 自然语言处理. 机器学习等相关经验。 联系方式: daihuijian@xbonline.ne...阅读全文

erlang对比golang,如何选择?

我最早使用的语言是Java和Python, 并且一直都对Python充满好感, 我喜欢这种很朴实和高效率的感觉, 但我却最后没有采用Python,原因其实也很简单, 我就是不喜欢缩进语法, 就跟很多人换工作仅仅是为了屏幕更大一点一样, 另外就是有了同样很棒的可选方案, 这就是Ruby, 所以我最终采用了Ruby作为主力编程语言, 同样也为不能使用Python而有一点小遗憾,毕竟Python的健壮性比Ruby好很多,只不过Ruby也一直在进步, 所以这一点无伤大雅 我们都知道,无论是Python还是Ruby,甚至Java, 都是在解决业务层的问题, 属于应用型语言, 以解决业务逻辑为主, 但还有一个领域是系统领域,偏网络层和底层操作,在这一块我一直在寻找一种优雅的方案, C++被我首先给淘汰掉...阅读全文

博文 2016-09-05 01:00:03 jiang314

golang项目访问https的问题

一个golang的项目,使用了腾讯云的短信服务,腾讯云的短信服务URL是https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=xxxxx&random=xxxx,在开发平台,可以正常使用。编译后部署到生产平台,短信发不出来了。为了定位问题,找了一台干净的测试机,部署后也发不出短信,因此判断生产平台的云服务器没有问题。 在测试机上,经过调试,终于定位错误信息:x509: failed to load system roots and no roots provided 搜索错误信息,首先找到这篇《go语言在不支持cgo的情况下访问https链接》,看完内容后直觉这个解决方法不对,太不优美了。接着看到《go语言获取https报错x509: fa...阅读全文

博文 2017-10-20 13:03:16 ankexun