Topic

go

A collection of 6 issues

序列化与反序列化

常见的序列化方式有: JDK(不支持跨语言)、JSON、XML、Hessian、Kryo(不支持跨语言)、Thrift、Protostuff、FST(不支持跨语言) 技术选型关键点: 协议是否支持跨平台,序列化的速度(时间开销,系统性能),序列化出来的大小(空间开销,减轻网络、磁盘压力)。 典型的序列化和反序列化过程往往需要如下组件: * IDL(Interface description language)文件:参与通讯的各方需要对通讯的内容需要做相关的约定(Specifications)。为了建立一个与语言和平台无关的约定,这个约定需要采用与具体开发语言、平台无关的语言来进行描述。这种语言被称为接口描述语言(IDL),采用IDL撰写的协议约定称之为IDL文件。 * IDL Compiler:IDL文件中约定的内容为了在各语言和平台可见,需要有一个编译器,将IDL文件转换成各语言对应的动态库。 * Stub/Skeleton Lib:负责序列化和反序列化的工作代码。Stub是一段部署在分布式系统客户端的代码,一方面接收应用层的参数,并对其序列化后通过底层协议栈
3 min read

Golang编解码JSON与HTTP请求

本文基于实际工作加之诸多前辈的博文结晶拼合而来,由以下部分组成: 1. 概念 2. 解码 2.1 解析到结构体 2.2 解析到interface 2.3 SimpleJSON 3. 编码 4. json.NewEncoder与json.NewDecoder 5. HTTP请求 文里的例子可以直接在the go playground里跑,已测试。https://play.golang.org/ 概念 JSON语法 先来明确一下JSON语法: 1. JSON语法是JavaScript语法的子集。JSON语法是JavaScript对象表示法语法的子集。 * 数据在名称/值对中 * 数据由逗号分隔 * 大括号保存对象 * 中括号保存数组 2. JSON data is written as name/value
13 min read

面向对象的三个基本特征和五种设计原则(转载)

面向对象的三个基本特征是:封装、继承、多态。 封装/Encapsulation 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承/Inheritance 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:
11 min read

Subscribe to 隅

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe