Thrift RPC 系列教程(2)——全局变量&全局常量
全局变量,就像不可控的孩子,你放心你的孩子总是消失你的视野范围内吗?
为啥有全局变量
通常来说,『全局变量』被视为一种不好的编程风格,因为它实在是不可控,怕它的状态不知道在什么时候就被改变了,根源就是『人们害怕未知』。但是如果是全局常量,则问题不大,反正变来变去,还是同一个东西。
Thrift支持全局常量
Thrift中的常量,其实就是模块级别的常量,语法上,自然是简单得不得了:
// 普通基础类型 const i32 INT32CONSTANT = 9853 // 复杂容器类型 const map<string,string> MAPCONSTANT = {'hello':'world', 'goodnight':'moon'}; const set<string> NAMES = {"name1", "name2"}; const list<string> NAMES_LIST = ["name1", "name2"];
全局常量有啥用?
如同你使用其他编程语言一样,全局常量在它们里面有啥用,那么在Thrift中就有啥用。比如我有一个需求,需要为系统的每个端口起一个名字,以统一规范,统一给每个微服务系统使用。那么我们就可以:
const map<string, i64> PORTNAME_PORT = { "MYSQL_PORT": 8806, "REDIS_PORT": 7379, };
不过,总体而言,『全局XX』带来了方便,也带来了问题,没有什么事情是非得使用『全局』去解决的,所以总体上不是 非常推荐的风格。
相关推荐
Runtimeclass 2020-10-20
Martian 2020-10-13
jerry00 2020-06-11
infoscienceliu 2020-02-01
风之翊 2019-12-29
XiaoqiangNan 2020-01-08
jerry00 2020-01-08
Ggaomiss 2019-12-14
程序媛菜鸟 2019-11-19
jerry00 2019-11-19
lvwenyuan 2019-11-18
infoscienceliu 2019-11-17
hyclq 2015-05-17
XiaoqiangNan 2015-08-18
infoscienceliu 2019-11-09
Martian 2019-11-08
XiaoqiangNan 2019-11-04
AReallyMan 2019-07-13