现代程序离不开数据存储,现阶段很热的所谓大数据处理、云盘等,更是以存储为依托。有数据存储,自然需要进行数据交换,已达到数据共享等目的。
关系型数据库发展了很长一段时间,SQL/SQL-like 已经很成熟,使用也很广泛,Go 语言标准库提供了对 SQL/SQL-like 数据库的操作的标准接口,即 database/sql 包。
在数据交换方面,有很多成熟的协议可以使用,常用的有:JSON、XML等,似乎 Java 社区更喜欢 XML,而目前似乎使用更多的是 JSON。在交换协议选择方面,考虑的主要这几个方面因素:性能、跨语言(通用性)、传输量等。因此,对于性能要求高的场景,会使用 protobuf、msgpack 之类的协议。由于 JSON 和 XML 使用很广泛,Go 语言提供了解析它们的标准库;同时,为了方便 Go 程序直接数据交换,Go 专门提供了 gob 这种交换协议。