摘要:
Array 和其他语言的数组不同。 数组是值类型,赋值和传参会复制整个数组,而不是指针。 数组长度必须是常量,且是类型的组成部分。2[int] 和 3[int] 是不同类型。 支持 ==、!= 操作符,因为内存总是被初始化过。 指针数组 [n]*T、数组指针 *[n]T 初始化 a := [3]in 阅读全文
2018年8月20日 #
摘要:
函数定义 不支持嵌套(nested)、重载(overload)和默认参数(default paramter)。 无需声明原型 支持不定长变参 支持多返回值 支持命令返回值 支持匿名函数和闭包 函数是第一类对象,可以作为参数传递。 // 定义函数类型 type FormatFuncu func(s s 阅读全文
摘要:
保留关键字 语言设计简练,只有 25 个保留关键字。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type 阅读全文
摘要:
类型系统 Go 语言是更好的 C 语言,很多思想来源于 C 语言,毕竟 Go 的设计者就是 C 的设计者在几十年之后再创新高。 变量的声明引入和 JavaScript 一样的关键字 var,不一样的机制,JavaScript 中声明变量时没有类型,Go 语言声明的变量在后面要带上类型。 变量 var 阅读全文
摘要:
[TOC] Git @(24.1 Git)[git] 工作原理 直接记录快照,而非差异比较 Git 只关心文件数据的整体是否发生变化,大多数其他系统则只关心文件内容的具体差异,每次记录有哪些文件作了更新,以及更新了什么内容,每个版本都是每个文件相对于上个版本更新了哪些内容。 Git 并不保存这些前后 阅读全文
摘要:
构建分布式系统是很有挑战性的,这毫无疑问。虽然我们已经解决了很多工程上的问题,我们仍然重复的在构建许多模块。目前,由于我们开始了更高级别的抽象,虚拟机到容器技术,适应新的语言,作用于云计算,都对微服务提出了要求。总有一些事情需要我们不断的去学习,怎样构建高性能的、高容错的系统仍然是下一波的技术浪潮。 阅读全文
摘要:
有很多关于 micro 架构的疑问和微服务的设计模式的问题,今天我们讨论一下这两个话题。 关于Micro Micro 是一个微服务工具箱,它有自己固有的设计模式,但插件化的架构可以让底层的实现很轻易的被替换。 micro 专注于定位微服务构建过程中的最基本的需求,并通过精密的设计来满足这些需求。 查 阅读全文
摘要:
这篇文章我们会讨论基于 NATS 使用 Micro。讨论包括了服务发现,同步通信和异步通信。 NATS是什么? NATS 是一个开源的消息系统,或者说消息队列。NATS 的作者是 Derek Collison, Apcera 的作者。它起源于 VMWare,最开始是一个 ruby 的系统。后来使用 阅读全文
摘要:
Go Micro(3)——开发微服务 这是一个高等级的说明:怎样使用 go-micro 来编写微服务,如果你想学习更多微服务的知识以及Micro的整体架构,参考以前的文章。 什么是 Go Micro? Go Micro 是一个插件化的基础框架,基于此可以构建微服务。Micro 的设计哲学是『可插拔』 阅读全文
摘要:
微服务工具箱 现在你也许听到了这个新现象:微服务。如果你对此不熟悉也有兴趣学习,欢迎参考上一篇文章。 这篇文章我们将讨论 Micro - 一个开源的微服务工具箱,Micro 提供了核心的必须工具来构建和管理微服务。它包含了一系列由 golang 开发的库和工具,同时也通过 Sidecar 特性与其他 阅读全文
摘要:
微服务生态系统 这一篇是对 Go Micro 官方博客介绍微服务的文章翻译。 在后续的文章中,我会写一些在公司使用 Go Micro 开发微服务的实践经验以及对官方博客的翻译。 先讨论一下软件开发的特性。 变化总是在进行中,我们越来越接近一个被技术和商业驱动的社会,维持竞争能力变得越来越困难,如果采 阅读全文