摘要:現在開始創建一個包并分發給其他人使用,并確保遵循你迄今為止學到的標準和最佳實踐。第步實踐對于練習,繼續編寫單元測試,以完成目前為止所做的實際任務,特別是你在步驟中所做的練習。
今天的Web開發與幾年前完全不同,有很多不同的東西可以很容易地阻止任何人進入Web開發。這是我們決定制作這些循序漸進的視覺指南的原因之一,這些指南展示了更大的圖景,并讓任何人清楚了解他們在網頁開發中扮演的角色。
這是我們決定制作這些循序漸進的視覺指南的原因之一,這些指南展示了更大的圖景,并讓任何人清楚了解他們在網頁開發中扮演的角色。
毫不遲疑,讓我們開始吧。你可以在下面的圖片中找到詳細的路線圖,但是我也將在下面的描述中解釋每一步。
下圖如果看著不清楚,可以看這里 -> 原圖地址
我們來分解它,并解釋下面部分中的每一步。
在我們開始之前,雖然我們沒有在上面的路線圖中列出 HTML/CSS 的知識,但建議您至少了解一些基本的 HTML/CSS 并了解如何編寫基本的 HTML/CSS。
第1步 - 學習一門語言談到選擇語言有很多選擇。我已經將它們分成幾類,以便你更容易做出決定。對于剛開始進入后端開發的初學者,我建議你選擇任何腳本語言,因為它們有很多需求,它可以讓你快速起步。如果你有一些前端知識,你可能會發現Node.js更容易,再加上有一個很大的就業市場。
如果你已經在做后端開發并且知道一些腳本語言,我建議你不要選擇另一種腳本語言,并從“功能”或“多參數”部分中選擇一些。
例如,如果你已經在使用PHP或Node.js,請不要使用Python或Ruby,而應嘗試使用Erlang或Golang。它肯定會幫助你延伸思維,并開啟你的思想到新的視野。
沒有比實踐更好的學習方式。一旦你選擇了你的語言,并且對這些概念有了基本的了解,就可以使用它們。盡你所能制作盡可能多的小應用程序。盡你所能制作盡可能多的小應用程序:
在bash中實現一些你自己使用的命令嘗試實現 ls 的功能
編寫一個命令,為你提供JSON格式的目錄結構,例如 jsonify dir-name 給你一個帶有 dir-name 內結構的JSON文件
編寫一個從上面的步驟讀取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請求。對此的一些想法:
重構并實施你學到的最佳實踐
查看未解決的問題并嘗試解決
添加任何附加功能
第7步 - 了解測試測試有幾種不同的測試類型。了解這些類型它們的目的是什么。了解如何在應用程序中編寫單元測試和集成測試。另外,了解不同的測試術語,如 mocks, stubs 等。
第8步 - 實踐對于練習,繼續編寫單元測試,以完成目前為止所做的實際任務,特別是你在步驟6中所做的練習。
還要學習和計算你編寫的測試的覆蓋率。
第9步 - 了解關系數據庫了解如何將數據保存在關系數據庫中。在你選擇要學習的工具之前,請先了解不同的數據庫術語,例如鍵,索引,規范化等。
這里有幾個選項。但是,如果你學習一個,其他的應該相當容易。你想學習的是MySQL,MariaDB(大部分是相同的,是MySQL的分支)和PostgreSQL。選擇MySQL開始。
第十步 - 實踐時間現在是時候把你所學到的一切都用到這里去了。
使用你迄今為止學到的所有內容創建一個簡單的應用程序。可以選擇任何想法??,也許創建一個簡單的博客應用程序,并實現其中的以下功能。
用戶帳戶 - 注冊和登錄
注冊用戶可以創建博客文章
用戶應該能夠查看他創建的所有博客文章
他們應該能夠刪除他們的博客文章
確保用戶只能看到他的個人博客帖子,而不能看到他人
編寫應用程序的單元/集成測試
你應該為查詢應用索引。分析查詢以確保正在使用索引
第11步 - 了解一個框架根據你選擇的項目和語言,你可能需要也可能不需要框架。每種語言都有幾個不同的選項,繼續看看你選擇的語言有哪些選項可供選擇,然后選擇相關的一個。
如果你選擇了PHP,我會建議你使用 Laravel或Symfony,如果是為框架的話,使用Lumen或Slim。如果你選擇Node.js,有幾種不同的選擇,但突出的是Express.js。
第12步 - 實踐時間為了實現此步驟,請將你在 步驟10 中創建的應用程序轉換為使用你選擇的框架。還要確保移植包括測試在內的所有內容。
第13步 - 學習NoSQL數據庫首先了解它們是什么,它們與關系數據庫有何不同以及為什么它們是需要的。有幾種不同的選擇,研究一點看看,并比較它們的特點和差異。你可以選擇的一些常用選項是Rdeis,MongoDB,Cassandra,RethinkDB和Couchbase。如果你必須選擇一個,請使用Redis。
第14步 - 緩存了解如何在你的應用程序中實施應用程序級緩存。了解如何使用Redis或Memcached并在你在 步驟12 中創建的應用程序中實施緩存。
第15步 - 創建RESTful API了解REST并學習如何制作RESTful API,并確保從 Roy Fielding 的原始文章中閱讀關于REST的部分。如果他們說REST僅適用于HTTP API,請確保你能夠與其他人對戰。
第16步 - 了解不同的身份驗證方法了解不同的身份驗證和授權方法。你應該知道他們是什么,他們有什么不同以及什么時候偏好某一個
OAuth - 開放認證
基本認證
令牌認證
JWT - JSON Web令牌
OpenID
第17步 - 消息代理了解消息代理并了解何時以及為何使用它們。有多種選擇,但突出的是 RabbitMQ 和 Kafka。現在學習如何使用RabbitMQ,如果你想選擇一個。
第18步 - 搜索引擎隨著應用程序的增長,對關系數據庫或NoSQL數據庫的簡單查詢不會將其切斷,你將不得不求助于搜索引擎。有多種選擇,每種選擇都有自己的差異。比如 Solr, Sphinx, ElasticSearch,Xapian等。
第19步 - 了解如何使用Docker無論你是在復制與生產環境相同的環境,還是保持操作系統清潔或加快你的編碼,測試或部署,Docker都可以在開發過程中大大方便你的工作。在這一步中,繼續學習如何使用Docker。
第20步 - 關于Web服務器的知識如果你已經走到這么遠,你可能不得不在前面的步驟中使用服務器。這一步主要是找出不同Web服務器之間的差異,了解限制和不同的可用配置選項,以及如何最好地利用這些限制編寫應用程序。
第21步 - 了解如何使用Web Sockets雖然不是必需的,但在工具帶中有這些知識是有益的。學習如何使用 Web sockets 編寫實時Web應用程序并使用它創建一些示例應用程序。你可以在上面制作的博客應用程序中使用它來實現博客文章列表中的實時更新。
第22步 - 學習GraphQL學習如何使用GraphQL制作API。了解它與REST的不同之處,以及它為什么被稱為 REST 2.0。
第23步 - 研究Graph數據庫Graph 模型代表了一種處理數據中關系的非常靈活的方式,圖數據庫為其提供了快速高效的存儲,檢索和查詢。學習如何使用 Neo4j或 OrientDB。
第24步 - 保持探索一旦你開始學習和練習,你一定會遇到我們在這個路線圖中沒有涉及的東西。只要保持開放的心態和對新事物的健康渴望。
記住關鍵是要盡可能多地練習。它在開始時看起來更加可怕,你可能會覺得你并沒有抓住任何東西,但這是正常的,隨著時間的推移,你會覺得自己越來越好。
好了,就這么多。感謝閱讀。
更多PHP知識,請前往PHPCasts
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30743.html
摘要:確定新的包命名規則為了盡可能避免包的誤植域名現象,將不會再允許使用相似的包命名不過會進一步鼓勵開發者使用自己的命名空間來發布包。本文是對其幾十年來技術之路的回顧與展望,也是一代技術人的青春回憶。 showImg(https://segmentfault.com/img/remote/1460000012846628); 前端每周清單專注前端領域內容,以對外文資料的搜集為主,幫助開發者了...
摘要:年,和前端開發者與應用程序前端開發者之間產生了巨大的分歧。開發最常見的解決方案有手機和平板的原生應用程序桌面應用程序桌面應用程序原生技術最后,前端開發者可以從瀏覽器開發中學習到,編寫代碼不需要考慮瀏覽器引擎的限制。 前端開發者手冊2019 Cody Lindley 編著 原文地址 本手冊由Frontend Masters贊助,通過深入現代化的前端工程課程來提高你的技能。 下載:PDF ...
摘要:年,和前端開發者與應用程序前端開發者之間產生了巨大的分歧。開發最常見的解決方案有手機和平板的原生應用程序桌面應用程序桌面應用程序原生技術最后,前端開發者可以從瀏覽器開發中學習到,編寫代碼不需要考慮瀏覽器引擎的限制。 前端開發者手冊2019 Cody Lindley 編著 原文地址 本手冊由Frontend Masters贊助,通過深入現代化的前端工程課程來提高你的技能。 下載:PDF ...
摘要:年,和前端開發者與應用程序前端開發者之間產生了巨大的分歧。開發最常見的解決方案有手機和平板的原生應用程序桌面應用程序桌面應用程序原生技術最后,前端開發者可以從瀏覽器開發中學習到,編寫代碼不需要考慮瀏覽器引擎的限制。 前端開發者手冊2019 Cody Lindley 編著 原文地址 本手冊由Frontend Masters贊助,通過深入現代化的前端工程課程來提高你的技能。 下載:PDF ...
閱讀 1438·2021-09-28 09:44
閱讀 2501·2021-09-28 09:36
閱讀 1144·2021-09-08 09:35
閱讀 1982·2019-08-29 13:50
閱讀 810·2019-08-29 13:29
閱讀 1130·2019-08-29 13:15
閱讀 1724·2019-08-29 13:00
閱讀 2988·2019-08-26 16:16