博客
golang 介绍
06/07/2018
Go 语言是最近几年成长起来的语言。具有并发编程设计优势,不仅在云开发上有着很重要地位,还在云原生生态里占有重要地位。 Go 语法简单,容易上手,同时社区生态也比较活跃,是一门值得学习的后端语言。有一些成熟的后端框架;go 拥有容易开发,更加简洁,所以把 go 作为高级语言入门也是非常不错的。目前在市场上,主要是服务端开发、中间件、游戏,区块链,云原生等方向上发展。 golang(go)是一种过程编程语言,可用于快速机器代码编译。它是一种静态类型的编译语言。它提供了并发机制,可以轻松开发多核和联网的机器级程序。它是快速,动态类型和解释语言;它提供对接口和类型嵌入的支持。 golang的特点 语法简洁 Go语言简单易学,学习曲线平缓,Go 语言被称为“互联网时代的C语言”。Go语言的风格类似于C语言。其语法在C语言的基础上进行了大幅的简化 代码风格统一 Go语言提供了一套格式化工具——gofmt,Go 团队构建了一个名为 gopls 的服务,它实现了语言服务器协议LSP,这样就保证了不同开发者提交的代码都是统一的格式。 执行性能好 Go语言是一门编译型的语言,我们编写好的代码直接编译成服务器可以执行的二进制可执行文件。 开发效率高 Go语言虽然是一门编译型的语言,但是它内置了垃圾回收机制,降低了开发者的心智负担,使其拥有像Python、PHP等解释性语言的一样的开发效率。真正实现了开发效率和执行效率的完美结合。 天生支持并发 Go于2009年发布,当时多核处理器已经上市。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。 golang的优势 学习曲线容易 Go语言语法简单,类C语法。直来直去的,学习曲线很低,上手非常快、高性能的应用。在国内大家都追求快。 效率:快速的编译时间,开发效率和运行效率高 自由高效:组合的思想、无侵入式的接口 Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持。Go语言支持当前所有的编程范式,包括过程式编程、面向对象编程、面向接口编程、函数式编程。程序员们可以各取所需、自由组合、想怎么玩就怎么玩。 强大的标准库 Go内置了大量的库,特别是网络库非常强大。内置强大的工具,Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难。 部署方便:二进制文件,部署简单 简单的并发 并行和异步编程几乎无痛点。Go 语言的...
golang log 日志
05/07/2018
日志 前言 日志服务是应用程序里不可缺少的一个模块, 在golang里也有不少比较优秀的日志服务框架,比如很多项目都是用的Zap,就是比较常用的golang的日志框架,己的项目里都是使用那个自己封装的log4go的日志包, 注意这里并没有从框架的模式上去进行实现, 所以我这里也称之为一个简洁的golang的日志包。 为什么需要日志 调试开发 程序运行日志 用户行为日志 不同的目的决定了日志输出的格式、频率。作为开发人员,调试开发阶段打印日志目的是输出尽可能全的信息(如上下文,变量值...),辅助开发测试,因此日志格式要易读,打印频率要高。而在程序运行时,日志格式倾向于结构化(便于分析与搜索),而且为了性能和聚焦于关键信息(如error ),打印频率更偏低。 以下介绍几种日志 log4go zap logrus ...
Go 项目目录
04/07/2018
Go 项目目录 一个小型项目用不到很多目录。对于小型项目,可以考虑先包含 cmd、pkg、internal 3 个目录,其他目录后面按需创建 项目目录样例 . ├── api │ └── api.go ├── changelog.md ├── cmd │ └── main.go ├── configs │ ...