最近讀了一下kafka的源碼,真的是很蛋疼,原本準備寫一篇長的關於消息隊列的文章,結果看到某團的技術團隊有一篇文章了,並且消息隊列的東西基本上寫全了,就不湊熱鬧了。golang
做爲一個以前作底層的服務器後端人員,對造輪子這事仍是比較有吸引力的,雖說如今幾乎全部的東西都有成熟的開源實現,可是造輪子總有一種魅力,勾引着咱們去創造本身的輪子,這個系列就叫輪子系列吧。算法
首先,看看這個,想必你們對下面這種簡歷看得比較多了吧?sql
精通JAVA,Python,熟練掌握C++ 精通Redis,Memcached,Mysql 精通Nginx配置,模塊開發 精通Kafka,ActiveMQ 等消息隊列 精通多線程,多進程,IO複用編程數據庫
這裏面每一個都是輪子,若是都是精通,那能精通這些輪子得多強大,至少我hold不住這麼多東西。可是,這並不妨礙愛學習的咱們來了解和製造這些輪子。編程
咱們這裏造輪子並非真的是爲了造輪子,如今的輪子很是多也很是好用,不到萬不得已,徹底沒有必要去造本身的輪子,咱們造輪子,只是爲了瞭解輪子的構造,知道爲何這東西會成爲輪子,還有就是這個輪子是怎麼造出來的,在造輪子的過程當中,用到的知識基本上會涵蓋整個後端須要涉及到的知識,因此本身造輪子或者瞭解輪子仍是頗有必要的。後端
提及後端的輪子們,你們均可以說出一大串來,咱們大體來數一數啊。緩存
恩,感受上差很少也就這些了吧?和上面的簡歷出現的東西差很少能對上了吧?後端的輪子們,排得上號的也就是這些個方面了吧,能夠作一個技能樹
出來,精通
了上面這些輪子和輪子的使用,基本上後端的工做就遊刃有餘了,剩下的就是一些業務邏輯了,哦,固然,放心,你精通
不了所有的,但瞭解
甚至熟悉
仍是能作到的,好了,接下來的一段時間,讓咱們一塊兒來點亮這棵技能樹吧。服務器
這裏沒有寫數據庫這個東西,一是我認爲他不是輪子了,他比輪子複雜多了,屬於像操做系統同樣的基礎結構了,二是這系列文章都是會對應代碼的,
數據庫我寫不出來
,這纔是關鍵緣由。微信
接下來的文章更新不會很頻繁了,我會按照上面這個技能樹,一個技能一個技能的點亮這個技能樹,有些我瞭解得多的就說詳細點,有些瞭解不深的就少說點,反正都會點出來,每一個技能樹都會配上最最最
基礎的代碼實現這個輪子,固然這些代碼是不能用在生產環境拉。 最後,我會使用實現的輪子們,打造一個簡單的推薦引擎
,也算物有所用了。網絡
恩。。。代碼尚未寫一行,因此這個系列文章更新會比較慢。望耐心:) 另外,不要對代碼抱有很大的但願,都只會是最最基礎的測試代碼,不能用在生產環境,好比http服務器的話,不會實現整個http服務,可能只會實現後面會用到的GET方法,
請把關注點聚焦到每篇文章上
既然要造輪子,那首先仍是要有點基礎技術才行,也就是先要知道哪些東西是輪子的輪轂,哪些東西是輪子的胎了,代碼說到底就是數據結構和算法了,因此不管什麼輪子也逃不開這兩個東西,除了這個還須要一些操做系統和網絡相關的知識,要實現上面的那些個輪子,須要用到哪些知識呢?咱們撿最基礎的和最經常使用的說說,後面的文章會一一說到這些東西。
好了,大約上面這一些知識就差不太多了,畢竟只是一個最簡的實現,別看每一個也就一句話,要真正瞭解這些也不是一件簡單的事情,更別說精通了,因此看到那種全屏精通
的簡歷,確定是扯淡的,找準一個你瞭解的領域,一頓虐吧。
除了輪子的輪轂,那是支撐整個輪子的,還有一些外圍的基礎技術,構成了輪子的輪胎,這部分東西就是一些編程上的技術了,都包括:
這裏也就簡單的三行,要都瞭解而且精通也很不容易,因此這些東西我也不可能講得很好,確定有不正確的地方,歡迎你們指正出來,共同進步哈:)
造輪子的材料選golang
,有時候可能會直接使用C
,由於啊,Java不怎麼會,其餘語言來造輪子也不太常見。
本篇就是開了個頭,後面咱們一個一個來講。
若是你以爲不錯,歡迎轉發給更多人看到,也歡迎關注個人公衆號,主要聊聊搜索,推薦,廣告技術,還有瞎扯。。文章會在這裏首先發出來:)掃描或者搜索微信號XJJ267或者搜索中文西加加語言就行