Thrift RPC 系列教程(2)——全局變量&全局常量

全局變量,就像不可控的孩子,你放心你的孩子總是消失你的視野范圍內(nèi)嗎?

為啥有全局變量

通常來說,『全局變量』被視為一種不好的編程風(fēng)格,因?yàn)樗鼘?shí)在是不可控,怕它的狀態(tài)不知道在什么時(shí)候就被改變了,根源就是『人們害怕未知』。但是如果是全局常量,則問題不大,反正變來變?nèi)?,還是同一個(gè)東西。

Thrift支持全局常量

Thrift中的常量,其實(shí)就是模塊級(jí)別的常量,語法上,自然是簡(jiǎn)單得不得了:

// 普通基礎(chǔ)類型
const i32 INT32CONSTANT = 9853

// 復(fù)雜容器類型
const map<string,string> MAPCONSTANT = {'hello':'world', 'goodnight':'moon'};
const set<string> NAMES = {"name1", "name2"};
const list<string> NAMES_LIST = ["name1", "name2"];

全局常量有啥用?

如同你使用其他編程語言一樣,全局常量在它們里面有啥用,那么在Thrift中就有啥用。比如我有一個(gè)需求,需要為系統(tǒng)的每個(gè)端口起一個(gè)名字,以統(tǒng)一規(guī)范,統(tǒng)一給每個(gè)微服務(wù)系統(tǒng)使用。那么我們就可以:

const  map<string, i64>  PORTNAME_PORT = {
    "MYSQL_PORT": 8806,
    "REDIS_PORT": 7379,
};

不過,總體而言,『全局XX』帶來了方便,也帶來了問題,沒有什么事情是非得使用『全局』去解決的,所以總體上不是 非常推薦的風(fēng)格。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自:http://blog.csdn.net/kesonyk/article/details/50924489 ...
    晴天哥_王志閱讀 25,345評(píng)論 2 38
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,238評(píng)論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,656評(píng)論 1 32
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,991評(píng)論 2 59
  • 今天周六 上班 早上天氣晴朗 但此刻下起了雨。 其實(shí)我并不怎么會(huì)寫日記,我希望今年起開始養(yǎng)成每天寫一篇日記的習(xí)慣,...
    想做一只斑馬丶閱讀 198評(píng)論 0 0

友情鏈接更多精彩內(nèi)容