Developer Weekly 4

Top 10 games from the JS13K 2020 competition

nb is a command line note-taking, bookmarking, archiving, and knowledge base application

Muta is a versatile, high-performance blockchain framework designed to make building blockchains simple and flexible. Blockchain developers can quickly build their own blockchain based on Muta, eliminating the tedious work of building the underlying network and consensus mechanism from scratch and focusing on business functionality.

A Java DSL for reading JSON documents.


A channel-based ring buffer in Go

Paradigms of Artificial Intelligence Programming

Developer Weekly 2

Releasing a high-performance, lightweight, non-blocking and event-loop networking library written in pure Go

Benchmark for implementation of servers that support 1m connections


Kubernetes Handbook——Kubernetes 中文指南/云原生应用架构实践手册

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括 容器、服务网格、微服务、不可变基础设施 和 声明式 API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。——CNCF(云原生计算基金会)。

Awesome Cloud Native


101 Tips For Being A Great Programmer (& Human)

When to use the different log levels?

Trace – Only when I would be “tracing” the code and trying to find one part of a function specifically.

Debug – Information that is diagnostically helpful to people more than just developers (IT, sysadmins, etc.).

Info – Generally useful information to log (service start/stop, configuration assumptions, etc). Info I want to always have available but usually don’t care about
under normal circumstances. This is my out-of-the-box config level.

Warn – Anything that can potentially cause application oddities, but for which I am automatically recovering. (Such as switching from a primary to backup server, retrying an operation, missing secondary data, etc.)

Error – Any error which is fatal to the operation, but not the service or application (can’t open a required file, missing data, etc.). These errors will force user (administrator, or direct user) intervention. These are usually reserved (in my apps) for incorrect connection strings, missing services, etc.

Fatal – Any error that is forcing a shutdown of the service or application to prevent data loss (or further data loss). I reserve these only for the most heinous errors and situations where there is guaranteed to have been data corruption or loss.

Developer Weekly 1


软件工程也是工程,因此传统工程制图的一些基本理论,在软件行业同样适用。但另一方面,软件与实体制造业之间还是有着本质区别,所以在制图方面的需求和方式也大相径庭,无法直接套用。作为软件行业的从业者,你可以完全不懂工程制图,但你不得不懂架构制图 —— 这是任何程序员职业生涯的的必修课。


正式版http2规格标准叫做RFC 7540,发布于2015年5月15日:




A collection of resources on wait-free and lock-free programming.

Go race detector


线上程序发现处理速度变慢,内存占用变大,后面排查发现 build的时候指定了-race 参数,导致处理速度和内存变大。


The cost of race detection varies by program, but for a typical program, memory usage may increase by 5-10x and execution time by 2-20x.

The race detector currently allocates an extra 8 bytes per defer and recover statement. Those extra allocations are not recovered until the goroutine exits. This means that if you have a long-running goroutine that is periodically issuing defer and recover calls, the program memory usage may grow without bound. These memory allocations will not show up in the output of runtime.ReadMemStats or runtime/pprof.


Golang: Concurrency is Hard; So What Can We Do About It?
SRE: Debugging: Simple Memory Leaks in Go
Does the Go race detector catch all data race bugs?
Race-free doesn’t mean deterministic