這些知識七個(gè)月讓我從程序員成為了架構(gòu)師

成為架構(gòu)師是絕大部分程序員的夢想,當(dāng)然不敢說絕對,因?yàn)橐徊糠殖绦騿T想轉(zhuǎn)行搬磚還有一部分想往管理層發(fā)展莲绰∨趺可是像我們這樣有這良好的職業(yè)操守的程序員怎么可能三心二意呢观堂,自己選的編程跪著也要把代碼敲完。想要成為架構(gòu)師當(dāng)然首先的知道架構(gòu)師需要知道哪些知識呀忧,先來看看活在網(wǎng)上的大牛是怎么說的:

某平臺的一位大牛給大家的建議:

1. 通信協(xié)議

各個(gè)子系統(tǒng)之間要進(jìn)行通信师痕,必須要選擇一種或多種通信協(xié)議,現(xiàn)代比較常見的都是基于HTTP的協(xié)議而账。更早期胰坟,為了追求性能,有過一些基于TCP協(xié)議的實(shí)現(xiàn)泞辐。建議還了解下CORBA等RPC方式笔横。了解更多協(xié)議對于學(xué)習(xí)安全也有很大幫助竞滓,比如MySQL和PostgreSQL的協(xié)議都有安全的設(shè)計(jì)。

2. 序列化

系統(tǒng)之間通過網(wǎng)絡(luò)傳輸吹缔,或者存儲到文件時(shí)虽界,肯定只有一種格式,就是字符串涛菠。要將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)與字符串之間進(jìn)行轉(zhuǎn)換莉御,就需要用到序列化。簡單的序列化如JSON和XML俗冻,稍微復(fù)雜些的有protobuf礁叔、thrift等。需要了解所有這些序列化方式之間的優(yōu)勢和劣勢迄薄。比如JSON和XML只能用于傳遞數(shù)據(jù)琅关,而protobuf與thrift還可以用來做RPC協(xié)議。至少要確保每種序列化方式都自己嘗試過hello world讥蔽。

3. 數(shù)據(jù)庫

要形成自己的數(shù)據(jù)庫選取風(fēng)格涣易,就需要先對自己常用的數(shù)據(jù)庫有足夠深入的了解。對于關(guān)系式數(shù)據(jù)庫冶伞,除了一般的Create新症、Query、Delete响禽、Update操作外徒爹。還需要能自行建立索引,數(shù)據(jù)庫的平行擴(kuò)展芋类,了解如何進(jìn)行性能調(diào)試隆嗅。以及了解常見查詢操作的性能級別,常見的查詢性能瓶頸點(diǎn)侯繁。一個(gè)較好的例子是 "SELECT COUNT(*) FROM table WHERE dt_create-86400>NOW();" 胖喳。

4. 存儲

存儲分為幾種類型。NAS等各家產(chǎn)品有所不同贮竟,大多是通過NFS來訪問的丽焊,這個(gè)不必多講。問題是NAS的價(jià)格很高坝锰,而且在去IOE的趨勢中很多人也不愿意再用粹懒。所以經(jīng)常會有基于文件系統(tǒng)建立小規(guī)模存儲的需求重付。要關(guān)注的點(diǎn)主要就是每個(gè)目錄下的文件數(shù)不應(yīng)該太多顷级,當(dāng)一個(gè)目錄下文件數(shù)(實(shí)際是inode數(shù)量,包括文件和目錄)超過1000時(shí)确垫,性能就很差了弓颈。所以建議的做法是將一個(gè)系統(tǒng)中要存儲的對象ID做16進(jìn)制帽芽,隨后每2位16進(jìn)制做成一級目錄。這樣可以確保每個(gè)目錄下的文件數(shù)不會超過256個(gè)∠杓剑現(xiàn)代云計(jì)算导街,如Amazon S3已經(jīng)把存儲的問題解決的很好了,如果可能纤子,盡量用好搬瑰。

5. 應(yīng)用框架

此事在各個(gè)語言之間各有選擇,多注意了解自己關(guān)注方向的所有框架的優(yōu)勢和劣勢控硼。至少當(dāng)有個(gè)毛頭孩子問你為什么不選擇某個(gè)最新的框架時(shí)泽论,要有自己的觀點(diǎn)來給出明確的答復(fù)。對于常見的框架卡乾,十分推薦自己重新實(shí)現(xiàn)一個(gè)來當(dāng)作鍛煉翼悴。實(shí)現(xiàn)一個(gè)WEB框架,他用了不到200行代碼就實(shí)現(xiàn)了幔妨。

6. 接口

主要是指接口協(xié)議鹦赎,或者RPC協(xié)議。系統(tǒng)之間進(jìn)行RPC調(diào)用很常見误堡,注意選擇個(gè)自己能熟練使用的古话,并且有所深入研究。并了解其常見的限制锁施。RESTful API就是個(gè)比較常見的選擇煞额,但是性能并不好。要自己對性能等參數(shù)有個(gè)量化的了解沾谜,而不是簡單的一句好或不好膊毁。短連接接口在三次握手時(shí)是串行操作,要了解其為何耗時(shí)基跑。

除了要在如上的各種不可或缺的組成部分中有所了解婚温,還要能清楚的知道一些常用系統(tǒng)模塊的原理,并能夠很深入的玩起來媳否。幾個(gè)值得注意的:

1. HTTP服務(wù)器:常見的無非是nginx栅螟、apache,自己要能進(jìn)行基本配置篱竭,包括靜態(tài)文件力图、fastcgi轉(zhuǎn)發(fā)等

2. 關(guān)系式數(shù)據(jù)庫:常見的如mysql、postgresql掺逼、sqlite吃媒,自己要對每一種都有深入的了解。自己要做一遍常見操作的性能測試,并能牢記于心赘那。比如sqlite雖然并不需要走網(wǎng)絡(luò)刑桑,但是實(shí)際查詢性能是很差的。我2008年就發(fā)現(xiàn)其 "<"和">"共同作用的查詢的例子比走網(wǎng)絡(luò)的mysql還慢了幾十倍募舟。

3. NoSQL數(shù)據(jù)庫:memcache祠斧、redis、mongodb等拱礁,近幾年有很多琢锋,挨個(gè)了解下其實(shí)現(xiàn)原理,以及各種常用操作的性能呢灶。當(dāng)有需要時(shí)吩蔑,要隨時(shí)能拿得出手來用。

4. 云計(jì)算平臺:幾種常見的云計(jì)算平臺的應(yīng)用方式要有了解填抬,如Google的資源方式烛芬,和Amazon的VPS方式,每種云計(jì)算平臺往往還會提供一大堆的附加服務(wù)飒责,比如可靠數(shù)據(jù)庫赘娄,存儲,緩存等宏蛉,也要分別有所了解遣臼。

5. 加密/簽名技術(shù):常見如truecrypt、openssl拾并、gnu pg揍堰、sha1、md5嗅义、scrypt等屏歹,了解各種加密/簽名技術(shù)的安全性,字長等之碗,并都能自己做過hello world蝙眶。

一些網(wǎng)上常見的系統(tǒng)服務(wù)形式的架構(gòu)設(shè)計(jì)也要仔細(xì)了解清楚。一般此類系統(tǒng)的開發(fā)人員褪那,往往會通過個(gè)人博客幽纷,或者一些活動的PPT中進(jìn)行講解。仔細(xì)找找會有不少收獲博敬。值得關(guān)注的常見系統(tǒng)架構(gòu)

1. 博客/論壇:博客和論壇有很多友浸,并且各個(gè)網(wǎng)站也都很常用,了解下其原理偏窝,最好自己寫個(gè)練習(xí)下收恢。

2. 微博:Twitter/weibo等武学,涉及到大量的聯(lián)表查詢,需要用多種辦法來優(yōu)化查詢性能派诬。

3. 云計(jì)算:云計(jì)算的幾個(gè)常見平臺的服務(wù)提供方式劳淆,如Google和Amazon的链沼,如果精力夠用最好了解下OpenStack等搭建私有云的方式默赂,總的來說,這是未來的大方向括勺。

4. 視頻播放:在網(wǎng)頁上播放視頻的技術(shù)缆八,包括基于Flash和HTML5的,各種瀏覽器對視頻的兼容性等疾捍,了解通過ffmpeg將一個(gè)視頻轉(zhuǎn)換為標(biāo)準(zhǔn)mp4(HTML5可以播放的)的方式和參數(shù)

5. CDN:了解應(yīng)用CDN的方式奈辰,包括拆分靜態(tài)文件的域名,靜態(tài)文件版本化乱豆,Cookie拆分等相關(guān)技術(shù)

6. OAuth:與其他網(wǎng)站聯(lián)合認(rèn)證的方式奖恰,有多種,分別了解宛裕。

常見的架構(gòu)設(shè)計(jì)陷阱:

1. 用戶認(rèn)證:一開始就應(yīng)該花大精力設(shè)計(jì)好用戶認(rèn)證系統(tǒng)瑟啃,包括不要明文存儲密碼,包括嚴(yán)格限制Cookie和Session的使用揩尸,包括用戶認(rèn)證信息的緩存等蛹屿。如果需要設(shè)計(jì)一個(gè)長期運(yùn)行的大系統(tǒng),強(qiáng)烈建議使用簽名來保證Cookie的不可偽造岩榆,同時(shí)常見信息直接存儲Cookie错负,這樣可以避免每次Request都訪問數(shù)據(jù)庫。

2. 靜態(tài)文件存儲:如果一開始就將靜態(tài)文件與主站內(nèi)容混雜在一起勇边,未來就是個(gè)災(zāi)難犹撒,具體參考CDN的應(yīng)用方式。

以上的知識看起來比較雜亂無章粒褒,就算知道這些知識我該如何的去學(xué)習(xí)去得到這些個(gè)知識點(diǎn)的方法油航;

下面的一個(gè)課程體系為你總結(jié)了所有的知識點(diǎn),而所有的知識七個(gè)月可以學(xué)完怀浆,我知道你可能工作了兩三年不知道該往那個(gè)方向發(fā)展谊囚,想要提升自己也一直沒有門路,想要跳槽也沒有牢固的知識执赡,要加薪卻始終不敢跟老板提镰踏;那么請你用心看完這個(gè)體系圖;


想學(xué)習(xí)交流HashMap,nginx沙合、dubbo奠伪、Spring MVC,分布式、高性能高可用、redis绊率、jvm谨敛、多線程、netty滤否、kafka脸狸、的對于課程有興趣加群:561614305 同時(shí)也可以免費(fèi)獲得下面分享的視頻資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市藐俺,隨后出現(xiàn)的幾起案子炊甲,更是在濱河造成了極大的恐慌,老刑警劉巖欲芹,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卿啡,死亡現(xiàn)場離奇詭異,居然都是意外死亡菱父,警方通過查閱死者的電腦和手機(jī)颈娜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浙宜,“玉大人官辽,你說我怎么就攤上這事“鹉危” “怎么了野崇?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長亩钟。 經(jīng)常有香客問我乓梨,道長,這世上最難降的妖魔是什么清酥? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任扶镀,我火速辦了婚禮,結(jié)果婚禮上焰轻,老公的妹妹穿的比我還像新娘臭觉。我一直安慰自己,他們只是感情好辱志,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布蝠筑。 她就那樣靜靜地躺著,像睡著了一般揩懒。 火紅的嫁衣襯著肌膚如雪什乙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天已球,我揣著相機(jī)與錄音臣镣,去河邊找鬼辅愿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛忆某,可吹牛的內(nèi)容都是我干的点待。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼弃舒,長吁一口氣:“原來是場噩夢啊……” “哼癞埠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起棒坏,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤燕差,失蹤者是張志新(化名)和其女友劉穎遭笋,沒想到半個(gè)月后坝冕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓦呼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年喂窟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恋拍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片类垦。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖笔宿,靈堂內(nèi)的尸體忽然破棺而出质和,到底是詐尸還是另有隱情稳摄,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布饲宿,位于F島的核電站厦酬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘫想。R本人自食惡果不足惜仗阅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望国夜。 院中可真熱鬧减噪,春花似錦、人聲如沸车吹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窄驹。三九已至朝卒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間馒吴,已是汗流浹背扎运。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工瑟曲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人豪治。 一個(gè)月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓洞拨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親负拟。 傳聞我的和親對象是個(gè)殘疾皇子烦衣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容