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

defer _ golang

Defer is used to ensure that a function call is performed later in a program's execution, usually for purposes of cleanup. defer is often used wheree.g.ensure and finally would be used in other languages. package main import ( "fmt" "os" ) func createFile(p string) *os.File { fmt.Println("creating") f, err := os.Create(p) if err != nil { panic(err)...阅读全文

博文 2015-03-24 03:00:00 jackkiexu

SHA1 Hashes _ golang

SHA1 hashes are frequently used to compute short identities for binary or text blobs. For example, the git revision control system uses SHA1 extensively to identify versioned files and directories. Here's how to compute SHA1 hashes in Go package main import ( "crypto/sha1" "fmt" ) func main() { s := "sha1 this string" h := sha1.New() h.Write([]byte...阅读全文

博文 2015-03-28 03:00:03 jackkiexu

signals _ golang

Sometimes we'd like our Go programs to intelligently handle Unix signals. For example, we might want a server to gracefully shutdown when it receives a SIGTERM, or a command-line tool stop processing input if it receives a SIGINT. Here's how to handle signals in Go with channels package main import ( "fmt" "os" "os/signal" "syscall" ) func main() {...阅读全文

博文 2015-04-03 03:00:00 jackkiexu

channel directions _ golang

When using channels as function parameters, you can specify if a channel is meant to only send or receive values. This specificity increases the type-safety of the program package main import ( "fmt" ) func ping(pings chan<- string, message string) { pings <- message } func pong(pings <-chan string, pongs chan<- string) { msg := <-pings pongs <- ms...阅读全文

博文 2015-03-17 15:00:01 jackkiexu

Timers _ golang

We often want to execute Go code at some point in the future, or repeatedly at some interval. Go's built-in timer and ticker features make both od these easy. We'll look first at timers then tickers package main import ( "fmt" "time" ) func main() { timer1 := time.NewTimer(time.Second * 2) <-timer1.C fmt.Println("Time 1 expired") timer2 := time.New...阅读全文

博文 2015-03-19 03:00:01 jackkiexu

number parsing _ golang

Parsing numbers from strings is a basic but common task in many programs; here's how to do it in Go package main import ( "fmt" "strconv" ) func main() { f, _ := strconv.ParseFloat("1.234", 64) fmt.Println(f) i, _ := strconv.ParseInt("123", 0, 64) fmt.Println(i) d, _ := strconv.ParseInt("0x1c8", 0, 64) fmt.Println(d) u, _ := strconv.ParseUint("789"...阅读全文

博文 2015-03-28 03:00:03 jackkiexu

methods for struct _ golang

Go supports methods defined on struct types package main import ( "fmt" ) type rect struct { width, height int } func (r *rect) area() int { return r.width * r.height } func (r rect) perim() int { return 2*r.width + 2*r.height } func main() { r := rect{width: 10, height: 5} fmt.Println("area : ", r.area()) fmt.Println("perim : ", r.perim()) rp := &...阅读全文

博文 2015-03-19 19:00:01 jackkiexu

Pointers _ golang

Go support pointers, allowing you to pass references to values and records within your program package main import ( "fmt" ) func zeroval(ival int) { ival = 0 } func zeroptr(iptr *int) { *iptr = 0 } func main() { i := 1 fmt.Println("initial : ", i) zeroval(i) fmt.Println("zeroval : ", i) zeroptr(&i) fmt.Println("zeroptr : ", i) fmt.Println("pointer...阅读全文

博文 2015-03-15 10:00:01 jackkiexu

【北京】雍和宫地铁口 快乐迭代 招聘 Go工程师 待遇好

公司简介: 我们是一家北京的开发并运营互联网创新产品的公司。公司团队以技术为主导。在技术方面,倡导全面自动化、拥抱新技术。产品设计方面,倡导极简主义、注重细节。我们有海量用户的操盘经验,曾经把一款娱乐类 App 做到将近 1000 万用户,在苹果 App Store 香港区、台湾区下载量排行第一。公司得到了顶级 VC 的投资。 福利待遇: 满足你期待的薪资15K-30K左右,有年终奖,而且试用期薪资不打折,入职即缴纳五险一金,双休,带薪年假,团建聚餐,节日福利,生日福利,免费体检,免费工作餐,旅游等福利多多… Go 工程师--职位描述: 熟悉 Go 语言 有高负载 Server 实战经验 对计算机技术有发自内心的兴趣 必须有无障碍阅读英文技术文献的能力 联系方式: ...阅读全文

timeouts _ golang

Timeouts are import for programs that connect to external resources or that otherwise need to bound execution time. Implementing timeouts in Go is easy and elegant thanks to channels and select package main import ( "fmt" "time" ) func main() { c1 := make(chan string, 1) go func() { // time.Sleep(time.Second * 2) c1 <- "result 1" }() select { case ...阅读全文

博文 2015-03-17 03:00:00 jackkiexu

Golang高效编写(整理)

这是一篇如何编写高效Golang语言程序的文章。这是从一些开发者的经验总结中整理出来的。根据这篇文章,你可以编写出一篇更高效的Golang程序。 尽量使用直接的类型 interface{}提供了golang中的interface类似于java的interface、PHP的interface或C++的纯虚基类。通过这种方式可以提供更快捷的编码。但是这种方式也带来了一些问题,最大的问题还是性能问题。 // method 1 a.AA() // method 2 v.(InterfaceA).AA() // method 3 switch v.(type) { case InterfaceA: v.(InterfaceA).AA() } 这三组方法性能逐个下降,最好的方式是直接进行类型引用。 指针...阅读全文

goroutines _ golang

A goroutine is a loghtweight thread of execution package main import ( "fmt" ) func f(form string) { for i := 0; i < 3; i++ { fmt.Println(form, ";", i) } } func main() { f("direct") go f("goroutine") go func(msg string) { fmt.Println(msg) }("going") var input string fmt.Scanln(&input) fmt.Println("done") } direct ; 0 direct ; 1 direct ; 2 goroutine...阅读全文

博文 2015-03-16 03:00:01 jackkiexu

5大场景护航企业成长,实例解析阿里云适应性网络架构

企业成长的每个阶段,网络管理员都面临着不同的问题和挑战。公司初创时,等待设备送达度日如年。公司快速成长时,网络性能似乎永远跟不上业务需求,常常碰到“此网页无法打开,请稍后再试”的尴尬。当企业扩张跨越地域和国界时,各地客户体验参差不齐让人备受困扰。今天,我拿一个典型公司作为例子,根据这家公司不同阶段遇到的网络难题,给大家展示一下阿里云如何解决这些问题。X是一家互联网公司,公司的长期愿景是为全球网络游戏玩家提供身临其境的游戏体验。 视频地址:http://cloud.video.taobao.com/play/u/2776704142/p/1/e/6/t/1/50024830079.mp4 场景1:公司初创,产品研发测试 客户故事:X公司成立伊始,10人的核心开发团队小而灵活。公司意识...阅读全文

[深圳] 优畅-ULINE 招聘区块链开发工程师 15-25K

### 技能要求: 1.负责基于区块链(Blockchain)、以太坊(Ethereum)、EOS 的互联网金融产品的设计和研发,含后端协议、基础架构、系统服务及其相关客户端; 2.开发、实现和改进加密协议,设计安全协议和架构; 3.负责研究区块链、以太坊以及EOS的底层协议,运行机制和底层实现等; 4.负责对研发项目进行完善的安全模块设计与开发。 ### 岗位要求: 1.计算机相关专业学历; 2.熟练掌握一门或多门GoLang,Ruby,Python,C++ 等主流区块链系统开发语言,参与各个区块链开发社区并贡献源码者优先; 3.了解一些主流NoSQL数据库的原理与使用,尤其是KV型数据库,包括不限于LevelDB,RocksDB等; 4.熟悉linux操作系统; ...阅读全文

2019年终总结

2019年还是发生挺多事的,一直在想该如何写,拖到现在,这是病,得治。 西南飞东南 2019年初辞去成都的工作,来到了一家能源出行企业,从4年后端开发转变成为了一名“资深测试开发”,口味从无辣不欢到清新寡淡,变化让人惊喜,也带着些淡淡不适。 手机自动化测试 头三个月,从没接触过手机端开发的我接到做自动化测试平台任务,于是自备的锤子、苹果手机派上了用场,从领导的推荐开源项目UICrawler到自己发现的AppCrawler,拿来主义终归是没有找到满意的答案,又开始研究Appium自己写遍历代码,使用阿里的Macaca测试方案,还提了自己pr,研究Fastmonkey、Maxim等第三方解决方案,始终还是不够满意,最后以为Airtest是银弹,结果发现并不满足于自动化的要求,发现目的有一些迷失、...阅读全文

博文 2020-01-04 00:32:42 wu_sphinx

channel synchronization _ golang

we can use channels to sychronize execution across goroutines. Here's an example of using a blocking receive to to wait for a goroutine to finsh package main import ( "fmt" "time" ) func worker(done chan bool) { fmt.Println("working..") time.Sleep(time.Second) fmt.Println("done") done <- true } func main() { done := make(chan bool, 1) go worker(don...阅读全文

博文 2015-03-19 19:00:01 jackkiexu

closing channel _ golang

Closing a channel indicates that no more values will be sent on it. This can be useful to communicate completion to the channel's receivers. package main import ( "fmt" ) func main() { jobs := make(chan int, 5) done := make(chan bool) go func() { for { j, more := <-jobs if more { fmt.Println("received job", j) } else { fmt.Println("received all job...阅读全文

博文 2015-03-19 17:00:00 jackkiexu

functions _ golang

Functions are central in Go. We'll learn about functions with a few different examples package main import ( "fmt" ) func plus(a int, b int) int { return a + b } func plusPlus(a, b, c int) int { return a + b + c } func main() { res := plus(1, 2) fmt.Println("1 + 2 = ", res) res = plusPlus(1, 2, 3) fmt.Println("1 + 2 + 3 = ", res) } 1 + 2 = 3 1 + 2 ...阅读全文

博文 2015-03-15 10:00:01 jackkiexu

零基础自学编程应读书籍

如果你是一个程序员,除了编码之外,你还需要大量的阅读。书籍是知识和智慧的重要来源。但不幸的是,现在很多人已经不愿意看书了。程序员更是罕见地会去读书,最常见的是依靠互联网搜索结果来找寻答案。  技术向前的步伐比人类历史上的任何时候都要走得更快。用不了几个月,就会有新的编程语言和工具问世,弥补现有语言、工具和方法的缺陷。事实上,许多伟人都已经遇到过差不多的问题,并指出了解决这些问题的最佳途径。而这些方法和解决方案都收录在一些超棒的书籍中。  小伙伴们可以从下面列出的书中选择几本来阅读。 《程序员修炼之道》  绝对是书籍中的瑰宝!这不是常规地建议你编码,编码还是编码的编程书。事实上,它并不限定于某种特定的编程语言:在这本书中的智慧适用于所有编程语言。  这本书对许多有趣的领域都提出了真知灼见,如各...阅读全文

博文 2019-01-17 17:49:34 wenpeng231

每年营收翻倍的 AfterShip 是如何体系化做新员工培训(下)

### AfterShip 自 2012 年成立以来,每年业务都可实现 100% 的复合增长。对于这家公司来说,组建团队是一件更重要的事情,并且尤为重视工程师团队文化的建设,他们推崇团队文化多元化及相互包容性,并要求团队每个人都要懂产品以及客户。 因此对于 AfterShip 来说,做好新员工培训成为了一场重要的“战役”。今天,AfterShip CTO & TGO 鲲鹏会会员洪小军,及其 AfterShip 的廖国添将分享每年营收翻倍的全球化 SaaS 公司 AfterShip 是如何体系化地做新员工培训的经验。 快速发展阶段的公司寻求快速、灵活和实用,AfterShip 新员工培训从启动到正式开始培训,前后总共是 2 周时间,期望分享一下在这个过程中的思考和实践。 为了帮助大家更好地了解...阅读全文

博文 2020-03-30 08:54:48 wangxihua916

FreeWheel 寻大数据小伙伴

基础架构部-平台研发组Lead Software Engineer职责描述:1. 公司级大数据平台的架构规划与设计,以提升平台的存储与计算能力,带领团队完成技术解决方案;2. 大数据基础组件Kafka/HBase/YARN/Spark的二次开发与性能优化;3. 为业务部门提供大数据平台的技术架构支持,解决其技术难题与性能瓶颈;4. 调研大数据行业前沿技术方向并运用到实际生产系统;5. 建立高效的研发流程与规范,持续提升平台的研发效率与质量。任职要求:1. 五年以上Hadoop及大数据生态圈产品实践经验,如Kafka/HBase/Presto/YARN/Spark等;2. 深入了解分布式系统、大数据平台、消息队列等高可用高弹性架构;3. 有志于建立大规模低延时数据处理系统,用于解决实际业务问题...阅读全文

20-35W安全渗透工程师-知名安全大厂

岗位职责:1.根据项目需要,实施对授权的主机、网络和web的渗透测试2.能对常见的漏洞原因、原理、可利用性、风险程度等相关分析报告,如sql注入,xss,csrf,命令执行,文件包含,任意文件下载/读取。文件上传,越权/未授权操作等漏洞;3. 对互联网领域的重大安全事件进行跟踪、分析;4. 跟踪最新行业领域技术相关知识输出服务包,对于重点行业客户信息安全技术体系进行深入了解;5.对安全领域的新技术、新方法进行研究6. 负责完成体系内其它部门和领导交代的其它支持工作。其他项:1.熟练掌握各种渗透测试工具并且对其原理有深入了解(Burpsuite、sqlmap、appscan、AWVS、nmap、MSF,cobalt strike等等)2.至少掌握一门开发语言,操作语言不限 C/C++、Gola...阅读全文

博文 2020-04-13 11:32:45 互联网猎头mark

软件开发技术经验总结

众所周知,软件项目成功必要因素很多,泛泛来说,下面几条也缺一不可。 1. 完备调研,项目需求分析完美契合用户或者客户所需所想 2. 开发实施:设计、Coding、测试、部署、运维,每一流程都达到或者超出预期目标 3. 市场推广:销售或市场人员对产品合理推广这篇文章将更多的集中在第二条开发实施这块,做一些常见的技术经验,希望对大家有一些借鉴。设计这块,请参考 “产品开发技术文档模板”这篇文章。Coding泛泛的模块化,SOA等等这些概念,这里不想赘述,这儿更多分享一些实战经验,不限开发语言。 1. 线程安全:Coding简单来说就是逻辑性的调用基本库API /开源库的API 及语言基本组成部分(语法、结构、变量、常量、语句、函数等),给定输入,输出预期输出,因此,编码者应本着对程序负责的态度,...阅读全文

博文 2019-01-31 16:34:44 cli1871

开源经验谈

Bootstrap 古话说得好:“万事开头难”。 开头在本质上是解决 “Bootstrapping”,人们一直使用这个比喻来描述解决启动问题的方法,即一个人试图用自己的鞋带将自己拉起来。比如按下电脑开机按钮后初始化系统被广泛称作自举引导(简称 booting)。 想做好一个开源项目,就先得规划一个好的启动方式。 GitHub 10 多年前做开源项目托管的话基本只有一个选择,那就是 SourceForge。期间也有过一些其他大厂的项目托管服务,比如 Google Code,Sun/Oracle 的 Project Kenai,现在都停服了。目前 GitHub 已然是全球最大的开源项目托管服务商了,促成这样现状的最大原因有这几个方面吧: git 版本控制系统的流行,并做了一些更简单的工作流,比如...阅读全文

博文 2017-08-02 14:32:44 黑客派

FreeWheel招Lead/Senior大数据开发与分析工程师

Lead/Senior Software Engineer【职责描述】-面向客户的数据产品开发,测试,部署、监控,涵盖实时报表和离线报表等不同类型的数据产品;-紧密配合产品经理,理解业务需求,梳理业务流程,针对不同业务需要和应用场景,制定合理的系统架构以及实现方式,可以独立完成技术解决方案;-周期性产品迭代,持续改进现有产品,包括业务流程和系统架构,与基础架构部门配合,解决技术难题与性能瓶颈。【任职要求】-本科及其以上学历,三年以上大数据生态圈工作经验,二年以上数据产品实践经验;熟练掌握数据产品相关设计原理,对数据产品设计、交互、系统架构有深入的见解;-熟悉Spark/MapReduce/HBase/Presto等开源大数据技术,有多种业务场景下的实践经验;-有数据仓库建模、数据平台搭建、E...阅读全文

博文 2019-10-29 18:32:48 aside section._1OhGeD

FreeWheel招Lead/Senior大数据开发与分析工程师

Lead/Senior Software Engineer【职责描述】-面向客户的数据产品开发,测试,部署、监控,涵盖实时报表和离线报表等不同类型的数据产品;-紧密配合产品经理,理解业务需求,梳理业务流程,针对不同业务需要和应用场景,制定合理的系统架构以及实现方式,可以独立完成技术解决方案;-周期性产品迭代,持续改进现有产品,包括业务流程和系统架构,与基础架构部门配合,解决技术难题与性能瓶颈。【任职要求】-本科及其以上学历,三年以上大数据生态圈工作经验,二年以上数据产品实践经验;-熟练掌握数据产品相关设计原理,对数据产品设计、交互、系统架构有深入的见解;-熟悉Spark/MapReduce/HBase/Presto等开源大数据技术,有多种业务场景下的实践经验;-有数据仓库建模、数据平台搭建、...阅读全文

博文 2019-10-29 21:33:01 aside section._1OhGeD

GO 2,我们来了——2018/11/29

Go 2, here we come! 29 November 2018 道法自然,学究天人。论英语与Golang的长天一色,得翻译和技术之并驾齐驱。 背景(Background) At GopherCon 2017, Russ Cox officially started the thought process on the next big version of Go with his talk The Future of Go (blog post). We have called this future language informally Go 2, even though we understand now that it will arrive in incremental ...阅读全文

博文 2018-12-12 16:34:43 天地一小儒

Golang 高效编写(整理)

这是一篇如何编写高效 Golang 语言程序的文章。这是从一些开发者的经验总结中整理出来的。根据这篇文章,你可以编写出一篇更高效的 Golang 程序。 尽量使用直接的类型interface{} 提供了 golang 中的 interface 类似于 java 的 interface、PHP 的 interface 或 C++ 的纯虚基类。通过这种方式可以提供更快捷的编码。但是这种方式也带来了一些问题,最大的问题还是性能问题。 12345678// method 1a.AA()// method 2v.(InterfaceA).AA()// method 3switch v.(type) {case InterfaceA: v.(InterfaceA).AA()} 这三组方法性能逐个下降,最...阅读全文

博文 2020-02-21 10:43:47 ipfans's Blog