分类: Go

28 篇文章

Protocol Buffers的扩展工具:Buf
解决的问题 API 设计通常不一致 依赖管理通常是事后才想到的 不强制执行向前和向后兼容性 proto文件分发是一个困难的、未解决的过程 工具生态系统是有限的 Buf Schema Registry proto文件的托管平台,方便proto文件的分发 buf CLI 一种新开发的高性能 Protobuf 编译器。 强制执行良好的 API 设计选择和…
强大的序列化工具:Protocol Buffers
概述 Protocol Buffers 为结构化数据的序列化向前兼容,向后兼容,提供了语言中立、平台无关、可扩展机制的途径。类似JSON,但比JSON更小、更快。 通过.proto文件来定义,生成接口代码、特定语言的运行库,以及数据的序列化格式。 解决了什么问题 网络包的序列化格式 ,高达几兆大小的结构化数据,适用于网络传输和长期的数据存储。面对变…
thumbnail
Kubernetes的client-go库
前言 client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。 RESTClient 最基础的,封装了指定资源URL访问Kubernetes API的…
Google的 DI 框架 Wire
前言 以下内容来自 Wire 官方文档,花了一天把英文的 readme 啃了遍,发现存在几个问题: 记住的不多 后面遇到问题需要再来看readme,但是个人英语阅读效率太低,又要花很多时间 将来复习时,去看英文文档,没有中文的直观。 所以在这里记录以下。 介绍 Wire是一个代码生成工具,使用依赖注入自动连接组件。组件之间的依赖关系在Wire中表示…
《代码整洁之道》笔记(10-12章节)
类 类的组织 标准的Java约定,类结构定义如下: 公共静态变量 私有静态变量 私有实体变量 公共函数 私有函数 类应该短小 不应有太多全责。 单一权责原则 Single Responsiblility:类或模块应该有且只有一条加以修改的理由。 职责越清晰,被复用的可能性就越大。 内聚 类应该只有少数实体变量,方法操作的实体变量越多,内聚性越强。 …
《代码整洁之道》笔记(7-9章节)
错误处理 使用异常而非返回码 多个条件分支记录错误信息,可以封装进一个方法,在记录异常信息的地方抛出异常,并给出相应信息。在该方法外部捕获,记录异常信息。异常处理和正常业务流程隔离。 缩小异常类型,反例:全部使用Excception。 使用未检异常 代价:违反开闭原则。该方法调用链路上的方法签名都得修改。 给出异常发生的环境说明 应创建信息充分的错…
《代码整洁之道》笔记(4-6章节)
注释 什么也不会比陈旧,提供错误信息的注释更有破坏性。 若编程语言有足够的表达力,就根本不需要注释。 注释的恰当用法时弥补我们在用代码表达意图时遭遇的失败。 如果你发现自己需要写注释,就再想想看是否有方法翻盘。 个人认为注释还是要写,算是对代码的中文翻译,因为我们的英语水平,命名习惯各不相同。 注释掉的代码 其他人不敢删除注释掉的代码。他们会想,代…
《代码整洁之道》笔记(1-3章节)
序言:这是一本很多前辈推荐的书,阅读这本书后,我最大的感想就是:特别实在。书中时不时的出现一个句子,戳中你的内心。例如序言中的: 那堆“可以运行”的乱麻程序,就在我们的眼皮底下慢慢腐败。 对于软件而言,百分之八十或更多的工作量集中在我们美其名曰“维护”的事情上:其实就是修修补补。 习艺之要有二:知和行。你应当习得有关原则、模式和实践的知识,穷尽应知…