1_S7VjOUzpgIORXUIOa17UKg.jpeg
凡事得有個順序與標杆,作為開發人員更不例外
可能你正處在其中的某一個階段
宏觀的審視自身的技能樹,更是查漏補缺的一個好方法
送給努力奮鬥的大家
1_WQviQNNE2cnhVAiQpIXkQg.png
讓我們分解並解釋下面部分中的每一步。
在我們開始之前,雖然我們沒有在上面的路線圖中列出HTML / CSS的知識,但建議您至少獲得一些理解並知道如何編寫一些基本的HTML / CSS。
第1步 - 學習語言
選擇一種語言有很多選擇。我已經將它們分成幾類,以便您更容易決定。對於剛剛進入後端開發的初學者,我建議您選擇任何指令碼語言,因為它們有很多需求,它可以讓您快速上手。如果您有一些前端知識,您可能會發現Node.js更容易,而且有一個很大的就業市場。
如果您已經在進行後端開發並且知道一些指令碼語言,我建議您不要選擇其他指令碼語言並從“功能”或“多範例”部分中選擇一些內容。例如,如果您已經在使用PHP或Node.js,請不要使用Python或Ruby,而是嘗試使用Erlang或Golang。它肯定有助於擴充您的思維,並開闢新的視野。
第2步 - 練習你所學到的知識
沒有比練習更好的學習方法。一旦您選擇了語言並對概念有了基本的瞭解,就可以使用它們。儘可能多地製作小型應用程式。這裡有一些想法可以協助您入門
實現一些您在bash中使用的命令,例如嘗試實現其功能 ls
編寫一個命令,為您提供JSON格式的目錄結構,例如jsonify dir-name,為您提供一個內部結構的JSON檔案dir-name
編寫一個從上一步讀取JSON的命令,並建立目錄結構
想想你每天做的一些任務,並嘗試自動化
第3步 - 學習包管理器
一旦理解了語言的基礎知識並製作了一些應用程式範例,就可以學習如何將包管理器用於您選擇的語言。封裝管理員可協助您在應用程式中使用外部庫,並分發庫以供其他人使用。
如果您選擇PHP,您將需要學習Composer,Node.js有NPM或Yarn,Python有Pip,Ruby有RubyGems。無論您的選擇是什麼,請繼續學習如何使用其包管理器。
第4步 - 標準和最佳實務
每種語言都有自己的標準和最佳做法。根據您選擇的語言研究它們。例如,PHP具有PHP-FIG和PSR。使用Node.js,有許多不同的社區驅動指南,其他語言也是如此。
第5步 - 安全
請務必閱讀有關安全性的最佳做法。閱讀OWASP指南並瞭解不同的安全問題以及如何使用您選擇的語言來避免它們。
第6步 - 練習
現在您已瞭解語言,標準和最佳實務的基礎知識,安全性以及如何使用包管理器。現在繼續建立一個包並將其分發給其他人使用,並確保遵循您迄今為止學到的標準和最佳實務。例如,如果您選擇了PHP,您將在Packagist上發布它,如果您選擇了Node.js,您將在Npm註冊表中釋放它,依此類推。
完成後,在Github上搜尋一些項目並在某些項目中開啟一些pull請求。一些想法:
1. 重構並實施您學到的最佳實務2. 查看未解決的問題並嘗試解決3. 添加任何其他功能
第7步 - 瞭解測試
有幾種不同的測試類型可供測試。瞭解這些類型的用途。但是現在瞭解如何在應用程式中編寫單元測試和整合測試。此外,瞭解不同的測試術語,如類比,存根等
第8步 - 實用
對於練習,請繼續為您迄今為止所做的實際任務編寫單元測試,尤其是您在步驟6中所做的工作。
還要學習並計算您編寫的測試的覆蓋範圍。
第9步 - 瞭解關聯式資料庫
瞭解如何在關聯式資料庫中儲存資料。在您選擇要學習的工具之前,請先瞭解不同的資料庫術語,例如鍵,索引,正常化,元組等。
這裡有幾種選擇。但是,如果你學習一個,其他人應該相當容易。你想要學習的是MySQL,MariaDB(大部分是相同的,是MySQL的分支)和PostgreSQL。選擇MySQL開始。
第10步 - 實用時間
是時候把你學到的所有東西都用到了。
使用您迄今為止學到的所有內容建立一個簡單的應用程式。只需選擇任何想法,可能會建立一個簡單的部落格應用程式並在其中實現以下功能
1. 使用者帳戶 - 註冊和登入2. 註冊使用者可以建立部落格文章3. 使用者應該能夠查看他建立的所有部落格文章4. 他們應該能夠刪除他們的部落格文章5. 確保使用者只能看到他的個人部落格文章,而不能看到其他人的博文6. 編寫應用程式的單元/整合測試
您應該為查詢應用索引。分析查詢以確保使用索引
第11步 - 學習架構
根據項目和您選擇的語言,您可能需要也可能不需要架構。每種語言都有幾種不同的選擇,請繼續查看您所選語言的可用選項,並選擇相關語言。
如果您選擇了PHP,我會建議您使用Laravel或Symfony,對於微架構,請使用Lumen或Slim。如果你選擇了Node.js,有幾個不同的選項,但突出的是Express.js
第12步 - 實用時間
對於此步驟的實際操作,請轉換您在步驟10中建立的應用程式,以使用您選擇的架構。還要確保移植包括測試在內的所有內容。
第13步 - 學習NoSQL資料庫
首先要瞭解它們是什麼,它們與關聯式資料庫的區別以及為什麼需要它們。有幾種不同的選擇,研究有點看,並比較它們的功能和差異。您可以選擇的一些常見選項是MongoDB,Cassandra,RethinkDB和Couchbase。如果你必須選擇一個,請使用MongoDB。
第14步 - 緩衝
瞭解如何在應用程式中實現應用程式級緩衝。瞭解如何使用Redis或Memcached並在步驟12中構建的應用程式中實現緩衝。
第15步 - 建立RESTful API
瞭解REST並學習如何製作RESTful API,並確保從Roy Fielding的原始論文中閱讀有關REST的部分。如果他們說REST僅適用於HTTP API,請確保您能夠與某人抗爭。
第16步 - 瞭解不同的Auth方法
瞭解不同的身分識別驗證和授權方法。你應該知道它們是什麼,它們是如何不同的,何時更喜歡一個而不是另一個
1. OAuth - 開放式身分識別驗證2. 基本認證3. 令牌認證4. JWT - JSON Web令牌5. OpenID的
第17步 - 訊息代理
瞭解訊息代理並瞭解何時以及為何使用它們。有多種選擇,但突出的是RabbitMQ和Kafka。如果您想選擇一個,請瞭解如何使用RabbitMQ。
第18步 - 搜尋引擎
隨著應用程式的增長,對關聯式資料庫或NoSQL資料庫的簡單查詢不會削減它,你將不得不求助於搜尋引擎。有多種選擇,每種選擇都有自己的差異。
第19步 - 學習如何使用Docker
無論是複製與生產相同的環境,還是保持作業系統清潔或加快編碼,測試或部署,Docker都可以為您的開發提供極大的便利。我將留下答案“你將如何協助我”進行搜尋。在此步驟中,繼續學習如何使用Docker。
第20步 - 瞭解Web伺服器
如果你已經走到這一步,你可能不得不在之前的步驟中解決伺服器問題。此步驟主要是找出不同Web伺服器之間的差異,瞭解限制和不同的可用配置選項以及如何最好地利用這些限制來編寫應用程式。
第21步 - 瞭解如何使用Web通訊端
雖然不是必需的,但在您的工具帶中獲得這些知識是有益的。瞭解如何使用Web通訊端編寫即時Web應用程式,並使用它進行一些應用程式範例。您可以在上面的部落格應用程式中使用它來實現部落格文章列表的即時更新。
第22步 - 學習GraphQL
瞭解如何使用GraphQL建立API。瞭解它與REST的不同之處以及它為何被稱為REST 2.0。
第23步 - 查看圖形資料庫
圖模型表示處理資料關係的一種非常靈活的方式,圖形資料庫提供快速有效儲存,檢索和查詢。瞭解如何使用Neo4j或OrientDB。
第24步 - 繼續探索
一旦你開始學習和練習,你肯定會遇到我們未在本路線圖中介紹的內容。只要保持開放的心態和健康的胃口,學習新事物。
記住,關鍵是儘可能多地練習。它在開始時會顯得更加可怕,你可能覺得自己沒有抓住任何東西,但這是正常的,隨著時間的推移,你會覺得自己變得更好。
免費介面服務-------->http://100boot.cn/
免費小程式教程-------->http://100boot.cn/
歡迎關注IT實戰聯盟
326255-f67b0f0dd5fe5874.jpg
參考連結
原文地址---Modern Backend Developer in 2018