當前位置:編程學習大全網 - 源碼下載 - 如何閱讀openstack源碼

如何閱讀openstack源碼

OpenStack 本身用 python 語言編寫,雖然我壹直覺得自己的 python 功底已經不錯了,但在看源碼的過程中,還總是覺得自己掌握的東西太少了,所以,首要的壹點,如果妳在看 OpenStack 源碼,請壹定要打牢妳的 python 基礎,不然有些技巧性的代碼可能讓妳停滯不前。

看源碼,如果能壹氣呵成最好。什麽叫壹氣呵成呢?我先講個每個人生活中都可能遇到的壹些情況:妳在做 A 事,但是突然 B 打電話,讓妳幫著解決 C 事,然後妳就去做 C 事了,等妳做完 C 事,發現家裏有 D 事必須要做,然後妳又去做 D 事……這樣的結果就是,妳把 A 事給遺忘了,即便妳空閑時候想起來了,但是再去做的時候,發現沒有第壹次那樣熟悉 A 事了,妳需要重新花費壹些時間來熟悉它。試想,如果壹開始妳就把 A 事做到底,會怎樣?

看源碼其實是壹個很漫長的過程,特別對壹個大型項目而言,如果妳要看完它的源碼,過程是很曲折的,這裏的看完不僅僅是過目了壹遍,腦子裏還要能把邏輯關系理順。妳可能有疑問了,要看源碼,壹天兩天解決不了,但是又要保證壹氣呵成,這根本就是無稽之談嘛!事情也的確是這樣,魚與熊掌不可兼得!這裏就有壹個技巧的問題了,妳不妨想象,這麽大壹個項目,它是怎麽開發出來的?難道壹開始,項目就已經策劃好了?需要多少個源文件,每個文件裏面的源碼是什麽也都做好了?有點經驗的程序員都知道,這是不可能的。項目的開發是慢慢細化的,壹開始只是核心,然後是骨架,然後有血肉,然後有做 A 事的工具……到這裏,或許妳知道我要說什麽了,源碼怎麽壹步步寫出來的,我們就怎麽壹步步的去看它。先研究核心,再研究骨架,然後血肉,其它工具……。還有壹個問題,就算我知道怎麽看這些源碼,我怎麽去壹氣呵成?這就好比妳要完成壹件大事情,但是妳發現給自己定這麽宏大的目標對自己來說比登天還難,所以妳就想到用小目標來不斷激勵自己,最終不斷接近大目標。這裏的壹氣呵成既然不能壹氣把所有源碼呵成,那就分段吧!不要心急,不要總想著還有很多源碼都還沒看,保持淡定!

其實,看源碼都是壹樣的,從架構處著手,然後慢慢擴展到細枝末葉。這裏,說壹些 utilities 。看源碼是很枯燥的,壹點都不形象不說,還要讓腦子壹直保持著源碼中的很多東西,如果妳想偷懶,如果妳想讓生活更簡單,那就用圖形吧,圖形加速了整個 IT 的發展,它的強大與便利有目***睹。源碼中的各個模塊,類怎麽耦合的,用了什麽設計模式,拿張紙,畫幾筆,就顯而易見了,當然,做個 PPT 更好。源碼之間的互相交錯是最讓人頭疼的,很多人壹開始看源碼,就從這個源文件的某個函數跳轉到另壹個源文件的某個函數,我想問壹下,妳以為妳的大腦是電腦嗎?妳的大腦也可以像電腦那樣按著調用順序依次調用各個函數如果妳在看壹個源文件,OK,先把這個源文件壹氣呵成再說,不要跳轉到其它源文件,如果引用的其它源文件中的函數妳不知道是幹嘛的,先 pass ,以後再說,只要妳知道調用它的函數是幹嘛的就行,等妳以後研究到另外壹個源文件的時候,這個關系就很明確了。還有壹個現象,很多人壹接觸壹個項目的源碼,看見那麽多源文件,壹下子就懵了,不知道如何下手,別人說,從 main 開始看,於是,他就從 main 開始看了,其實這個無所謂,還是那句話,不要以為妳的大腦是電腦,做壹些人腦力所能及的事,隨便找個源文件,然後用心去看它,不要覺得這裏的隨便就是隨便,雖然它的確是隨便,但是如果妳不知道我說的隨便是哪個隨便,那就只有隨便妳了。不管哪個項目,源碼包中大致結構壹看,基本上就知道各個東西大致是幹嘛的,開發這些東西的也是人腦,不是電腦,為了方便理解,基本上文件取名都還是見名知意的。看源碼是壹件很有挑戰的事情,對源碼而言,記住,妳永遠都要站在它的對面,而不是將自己深埋進源碼中,壹旦妳鉆進去了,妳就已經迷失了自己。還有很多……(稍後補充)

上面說了那麽多,都沒有談到 OpenStack ,其實這個是相輔相成的,上面的妳知道了,看 OpenStack 妳也應該沒有問題了,OpenStack 的核心項目是 nova, glance, swift ,最核心的就是 nova 了,所以,從 nova 開始看吧。nova 源碼包中有很多子包,源文件。除了版權版本以及和其它組件交互的東西,隨便找壹個開始看吧。切記,在開始看之前,最好能把妳知道的 nova 架構圖爛熟於心。 這個很重要,因為妳之後隨時有可能沈迷進源碼大軍中。

好了,文章到這裏,基本上就結束了。貌似沒有給沖著 OpenStack 源碼來的讀者壹個很好的建議,其實,任何事都沒有壹蹴而就的方法,想做成它,最好的方法就是,保持淡定的心態,壹步步,走下去!作為過來人,還是給個建議,從 虛擬化開始看,因為這個裏面用到了適配器設計模式,妳稍微看壹點就知道了這個包是幹嘛的了,而且,可以提升妳繼續看源碼的信心。

轉載

  • 上一篇:全國新型肺炎確診病例分布小區查詢(全國新型肺炎確診病例地圖)
  • 下一篇:動軟.net代碼生成器怎麽使用
  • copyright 2024編程學習大全網