加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

年终盘点!2017年超有价值的Golang文章

发布时间:2020-12-16 19:16:20 所属栏目:大数据 来源:网络整理
导读:转自:http://colobu.com/2017/12/28/top-golang-articles-of-2017/ 涵盖了go的方方面面,如果你能静下心来细细品味,相信定能有质的飞跃。 语言规范 Close Channels Gracefully in Golang : 如何优雅地关闭channel? Compile-time assertions in Go : 编译时

转自:http://colobu.com/2017/12/28/top-golang-articles-of-2017/

涵盖了go的方方面面,如果你能静下心来细细品味,相信定能有质的飞跃。

语言规范

  • Close Channels Gracefully in Golang : 如何优雅地关闭channel?
  • Compile-time assertions in Go : 编译时断言
  • Why are slices sometimes altered when passed by value in Go? : Go不是按值传递么,怎么slice传入后被更改了呢?其实map也一样
  • Bit Hacking with Go : Go的位操作
  • Go Range Loop Internals : range内幕
  • Blocks and Scopes in Golang : 代码块和作用域
  • Address Alignments in Go :地址对齐
  • Understand Go pointers in less than 800 words :回顾一下指针的概念
  • Another Introduction to Pointers in Go :另一篇关于指针的介绍
  • There is no pass-by-reference in Go : Go中没有引用传值
  • Why golang garbage-collector not implement Generational and Compact gc? : 为什么不使用分代或者压缩的垃圾回收器?
  • Modern garbage collection : Go的垃圾回收器
  • Language Mechanics On Stacks And Pointers : William Kennedy写的系列, 一共四篇, 深入底层
  • Structures : Go struct介绍
  • Go调度详解 : 调度概览
  • 也谈goroutine调度器 : 也谈谈Go的调度器
  • 了解 Go 1.9 的类型别名 : Go 1.9中的类型别名
  • Golang Internals Part 2 Nice benefits of named return values : 返回值采用命名方式的好处
  • Go Interface 源码剖析 : interface源代码
  • Survey of Rounding Implementations in Go : 四舍五入不简单
  • Golang 热更新研究笔记 : 热更新笔记
  • go empty interface :空接口
  • 理解 go interface 的 5 个关键点 : 接口关键点
  • Go汇编实战的坑 : 赞,国人给golang提patch
  • golang语言编译的二进制可执行文件为什么比 C 语言大 :深入分析
  • init functions in Go :init函数不简单
  • Efficient Bit Manipulation in Go 1.9 : 有效的位操作
  • Learn Go constants?—?A visual guide :可视化系列
  • Go cheatsheet :小抄
  • defer in go : 还有第二部分 part2
  • Using named return variables to capture panics in Go : 返回panic的错误
  • Go Reflection Creating Objects from Types :基本类型, part2 其它类型,

测试

  • Go advanced testing tips & tricks : Go测试提示和技巧
  • 5 simple tips and tricks for writing unit tests in #golang :写测试的5个技巧
  • 5 Advanced Testing Techniques in Go : 5个测试的高级技术

调试和性能调优

  • Profiling and optimizing Go web applications : 优化web程序,使用profiler
  • go tool trace : trace工具介绍的很少,这是其中一篇
  • Debugging Go core dumps :使用core dump调试
  • Benchmarking Go programs : 测试和pprof,第二部分
  • GO APP MONITORING EXPVAR PROMETHEUS AND STATSD : 监控实践
  • 一个内部API系统的性能优化 : 国内用户的优化实践
  • Profiler labels in Go :不常用但是有用的技巧
  • diagnostics : 官方的介绍更准确,诊断。
  • Go’s work-stealing scheduler :rakyll的介绍
  • 3倍性能的go程序优化实践 : 国内的优化实践
  • Seven steps to 100x faster : 100倍的性能提升
  • A Million WebSockets and Go : 百万websocket连接和性能提升经验
  • Golang 与系统调用 : 根据演讲整理
  • Performance comparison of regular expression engines :正则表达式库的性能比较
  • Allocation Efficiency in High-Performance Go Services :有效的内存分配
  • 使用 bcc/BPF 分析 go 程序 : Brendan Gregg的文章
  • Your pprof is showing : pprof,不想多说了
  • Using the Go tracer to speed up fractal making :go tracer
  • Profiling Go : 很好profile总结
  • The new pprof user interface : go 1.10中已包含新界面
  • High Performance Go :Dave Cheney在QComSF 2017上的演讲
  • Go Profiler Internals :所谓的profile内幕
  • Optimizing GoLang for High Performance with ARM64 Assembly : 针对ARM64的优化

标准库

  • Plugins in Go 1.8 : 对Go 1.8增加的plugin包的速览
  • TCP/IP Networking : 网络编程入门
  • Linux Netlink and Go?—?Part 1 netlink :访问linux netlink,还有第二篇和第三篇
  • Port Forwarding with Go : 端口转发
  • Writing Modular Go Programs with Plugins : 插件
  • Advanced command execution in Go with os/exec :学习os/exec
  • expvar in action :知道这个标准包吗,用过吗?
  • Golang 互斥锁内部实现 : Go的锁实现
  • Go unsafe 包之内存布局 &version=12020810&nettype=WIFI&fontScale=100&pass_ticket=Dip3QhAoFuCXmvNUJBCqwg2%2FTrorNO8SzZpbc%2FtgnD4%3D): unsafe的一些函数
  • Go 1.9 sync.Map揭秘 : sync.Map的实现揭秘
  • Basic AST Traversal in Go : ast,做工具和代码分析的都需要
  • A Go Programmer’s Guide to Syscalls :Liz Rice的演讲
  • Pitfalls of context values and how to avoid or mitigate them in Go : Context的陷阱以及如何避免它
  • The 30 Most Popular Go String Functions : 最常用的strings的30个方法
  • Serving HTTPS : 应用https
  • How To Trust Extra CA Certs In Your Go App : 使用外部的CA
  • GOLANG中time.After释放的问题 : time.After使用的时候注意事项
  • The new kid in town?—?Go’s sync.Map :sync.Map的性能
  • The ultimate guide to writing a Go tool : Go工具开发终极手册,gomodifytags的作者
  • Streaming IO in Go : io
  • Things to know about HTTP in Go : Go HTTP
  • Important interfaces that every Go developer should know : 重要接口
  • Go Walkthrough fmt : fmt详解
  • Context API explained :context详解
  • Basic AST Manipulation in Go :还是ast
  • In-depth introduction to bufio.Scanner in Golang :深入介绍bufio.Scanner
  • Go Slice vs Maps :性能比较
  • Introduction to bufio package in Golang : bufio介绍
  • TCP Socket Implementation On Golang : 从外部推断内部实现
  • Understanding Go programs with go/parser : 带你学习go/parser
  • unsafe.Pointer and system calls :理解 unsafe.Pointer和系统调用
  • Using Go Templates :使用模板

编程模式

  • Functional Options Pattern in Go : 介绍了参数以函数子的方式实现,更出名的是
  • Rob Pike : 介绍了参数以函数子的方式实现,更出名的是
  • Dave Cheney : 介绍了参数以函数子的方式实现,更出名的是
  • A Story of a Fat Go Binary : 使用gofat给Go程序瘦身
  • a size profiler for binaries :瘦身瘦身,google出品
  • How to ship production-grade Go :开发产品级的程序
  • Go programming language secure coding practices guide :安全代码指南
  • Error handling patterns in Go : Go的错误处理总是让人困惑
  • Alternative Patterns for Method Overloading in Go : Go的方法重载的可选实现
  • Go without package scoped variables : 不推荐包级别的变量,但是怎么做呢
  • Don’t defer Close() on writable files : defer会忽略错误
  • Go Patterns : Go设计模式
  • Golang Concurrency Tricks :channel和goroutine技巧
  • go make 和 new 的区别 : 区别
  • Context isn’t for cancellation : Context目的不是为了cancel
  • Inject build-time variables with Golang :
  • go advices : Go建议清单
  • Error handling in Upspin : Rob Pike的实践
  • Dynamic JSON in Go : 使用*json.RawMessageinterface{}

开发技巧

  • Adding custom data to Go binaries at compile time : 编译时给二进制文件加点料
  • Go Quickstart Tips for Experienced Programmers : 给经验丰富的程序员的一些Go的小贴士
  • Gracefully terminate a program in Go :优雅滴关闭程序
  • Golang 中使用 JSON 的小技巧 : JSON使用的小技巧
  • How to find out which Go version built your binary : debug发现Go版本
  • Generating good unique ids in Go :产生唯一的ID
  • Fencing off Go Applied - A Practical Look at a Go Research Paper : 使用 dingo-hunter 和 Gong 编译时检查死锁和channel
  • Go Tooling in Action : Go开发时的一些工具介绍
  • How to use conditional compilation with the go build tool :条件编译
  • Strace in 60 lines of Go : 实现strace
  • 3 ways to iterate in Go :三种方式遍历
  • RustGo Calling Rust From Go with Little Overhead :高效的从Go调用Rust
  • Version Constraints and Go :指定的Go版本才能编译
  • 6 Go Tips You Should (probably not) Use : 6个Go小技巧,但是你不应该在代码中使用, :)
  • 15 Lessons in Golang :15个经验教训
  • Using functional options instead of method chaining in Go : 使用函数式参数,而不是链式操作
  • 合理配置GOMAXPROCS提升一倍以上的性能 : 对于I/O密集型的程序,建议设置GOMAXPROCS大一些
  • Lint your #golang code like a mad man! : 像牛人一样编写代码
  • Rate Limiting Service Calls in Go :限流
  • Sending HTML email using Go :发送html邮件
  • Go Assembly 示例 : Go使用汇编的例子
  • go web examples :web开发例子
  • Handling CORS In A Golang Web Application :CORS处理
  • Understanding Go panic output : 理解Go的panic输出
  • Go语言中实现基于 event-loop 网络处理 :不同的思路
  • Generating Go structs from JSON :5个json to gostruct的工具
  • go语言死循环分析 :当然不是go的bug,看看go的
  • 讨论 :当然不是go的bug,看看go的
  • Access unexported fields in golang/reflect : 访问unexported的字段
  • Why is port a string and not an integer :
  • golang How the select worked when multiple channel involved :使用伪随机
  • How to reuse request body of *http.Request : request.Body读完就不能再多了,如何重用?

面试题

  • golang 面试题 : 诺唯总结的11个面试题, 解答
  • Golang精编100题 : 选择题和填空题,试试看

第三方库

  • Infinite Sets in Go : 把set实现玩出花
  • awesome-go-storage : 100多个Go语言实现的存储引擎,强不强大?
  • Learn Web Programming in Go by Examples : 类似gobyexamples,这次奉上的是关于web开发的
  • Visualizing Concurrency in Go :可视化goroutine
  • Network Protocol Breakdown Ethernet and Go : 学习底层网络协议处理
  • 再谈谈获取 goroutine id 的方法 : goroutine ID的获得,hacker方式
  • Listen gRPC and HTTP requests on the same port : grpc和http共用端口
  • gRPC-Go performance Improvements : gRPC近期的性能优化
  • Building Blockchain in Go :使用Go编写区块链程序系列
  • Minimal Perfect Hash Functions :完美的hash函数,极小

应用

  • 今日头条Go建千亿级微服务的实践 : 今日头条的微服务

版本新特性

  • 5 things to watch in Go programming in 2017 : G0 1.8新的特性介绍
  • Go 1.8 : 2016最后一天写的,也算做2017年的文章吧
  • The State of Go - February 2017 : 2017对Go的综评,来自Go团队
  • What is new in Go 1.8 : what’s new?
  • Logging interfaces and allocation : Go 1.9中的一点优化
  • HTTP/2 Server Push : http2 push功能
  • The State of Go - May 2017 : The State of Go系列
  • What’s new in Google’s Go 1.9 : what’s new
  • Toward Go 2 : 目标Go2
  • Go 1.9中值得关注的几个变化 : what’s new in go 1.9
  • improve timers scalability on multi-CPU systems : go 1.10提升timer性能
  • Go 1.10 Release Notes : go 1.10先睹为快
  • Golang 1.10 前瞻 : 新特性

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读