Go Core - Entity
|Word Count:0|Reading Time:1mins
Author: zhongmingmao
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

2022-05-15
Go Core - Array + Slice

2022-05-15
Go Core - List + Ring

2022-04-16
Go Engineering - Specification - Design Method
Go 项目 Go 项目是一个偏工程化的概念,包含 Go 应用 Go 应用 代码结构按层拆分 最大的问题:相同功能可能在不同层被使用,而这些功能又分散在不同的层中,容易造成循环引用 12345678910├── controllers│ ├── billing│ ├── order│ └── user├── models│ ├── billing.go│ ├── order.go│ └── user.go└── views └── layouts 按功能拆分 Go 项目最常用的拆分方法 不同模块,功能单一,可以实现高内聚低耦合的设计哲学 所有功能只实现一遍,引用逻辑清晰,大大减少循环引用的概率 12345pkg├── billing├── order│ └── order.go└── user 代码规范编码规范 Uber Go 语言编码规范 静态代码检查工具:golangci-lint 最佳实践 Effective Go Go Code Review Comments Style guideline for Go packages 代码质量编写...

2022-05-03
Go Engineering - Foundation - CLI
CLI Cobra 很好地集成了 Pflag 和 Viper 工具包 用途 Pflag 命令行参数解析 Viper 配置文件解析 Cobra 命令行框架 Pflag Pflag 通过创建 Flag 和 FlagSet 来使用,使用 Pflag 的开源项目:Kubernetes、Istio、Helm、Docker、Etcd Flag 一个命令行参数会被解析成一个 Flag 类型的变量 1234567891011121314// A Flag represents the state of a flag.type Flag struct { Name string // name as it appears on command line Shorthand string // one-letter abbreviated flag Usage string // help message ...

2022-10-02
Cloud Native Foundation - Go Feature
函数Main 函数 每个 Go 程序都应该有个main package main package 里的 main 函数是 Go 程序的入口 Init 函数 init 函数会在包初始化时运行,仅运行一次 谨慎使用 样例:A 依次依赖 B 和 C ,但 B 也会依赖 C,初始化顺序:C -> B -> A 返回值 支持多值返回 支持命名返回值:被视为定义在函数顶部的变量 调用者可以忽略部分返回值 回调函数 函数作为参数传入其它函数,并在其它函数内部调用执行 12345678910111213141516func main() { DoOperation(1, increase) DoOperation(1, decrease)}func DoOperation(x int, f func(a, b int)) { f(x, 1)}func increase(a, b int) { fmt.Println(a + b)}func decrease(a, b int) { fmt.Pr...

2022-04-16
Go Engineering - Foundation - API - RESTful
概述 REST:Representational state transfer REST 只是一种软件架构风格,是一组架构约束条件和原则,而不是技术框架 REST 有一系列规范,满足这些规范的 API 均可称为 RESTful API REST 规范把所有内容都视为资源,对资源的操作对应 HTTP 协议提供的 GET、POST、PUT 和 DELETE 方法 由于 REST 与 HTTP 协议相辅相成,因此 HTTP 协议已经成为 RESTful API 的事实标准 特点 以资源为中心,一切都可以抽象成资源,所有行为都是对资源的 CRUD 资源对应着面向对象范式里面的对象 资源使用 URI 标识,每个资源实例都有一个唯一的 URI 标识 资源是有状态的,使用 JSON/XML 等在 HTTP Body 里表征资源的状态 客户端通过 HTTP Method 对资源进行操作,实现 REST 无状态:每个 RESTful API 请求都包含了所有足够完成本次操作的信息,服务器无需保持 Session 无状态对于服务端的弹性扩容是很重要的 设计原则 RESTful API 的核心是规...
Announcement
Things are always unexpected!






