小白學前端好點?
學前端還是學后端,這是個好問題,很多人問。在我看來,它可能是個偽命題。
既然題主問的是前后端,那我默認你問的是網站開發的問題。這是我們很長一段時間里對于網站開發工程師的分工。那么我們來看傳統意義上,前后端是如何分工的。
后端工程師負責渲染出基礎的網頁,數據庫中數據的存儲和傳遞。技術上就需要掌握至少一種后端語言(C#, Java, Python, ROR...),以及其對應框架平臺的使用。數據庫操作的使用和操作。算法或或性能的優化可作為超出一般程序員的加分項。 前端工程師負責頁面的美化,以及界面上的簡單交互操作。技術則上需要使用 CSS,JS,jQuery 等。以及一定的審美能力可以兼任設計師的工作。
所以可能會存在一條對立,后端工程師覺得前端工程師邏輯能力不行,代碼寫不好。前端工程師又覺得后端工程師不懂得交互和審美。
可是,現在已經是 2019 年了,如果你還要問我,前端和后端哪個更好一點?或者是前端和后端該學哪個?我只能告訴你,都要學。
隨著前端框架的流行,以及相同功能需要在多個平臺出現的需求。網站的開發越來越偏向于服務化的走向。簡單的說,按照業務需求提供核心 API,不同的平臺(手機 App,微信小程序,網頁)通過調用 API 來調用數據,而邏輯存在于應用本身而非服務器上。也就是 B/S 可能越來越像 C/S,或者說把原來需要寫在服務器上的邏輯代碼寫到瀏覽器端。傳統需要后端工程師寫的邏輯代碼,需要在瀏覽器端完成。
那請你告訴我,一個以前需要在后端寫的邏輯,現在改為在前端寫。把 C# 改成了 JS,.NET 換成了 Angular,他的職責變了嗎?他還是一個后端工程師嗎?他是前端工程師嗎?至少,這已經不是傳統意義上前端應該做的工作。而傳統意義上后端的工作,變成了寫 API。
那如今,前后端又需要做哪些工作呢?(這里說的前端指在瀏覽器部分,后端指服務器部分,非傳統意義的區分。)
后端需要負責數據庫的創建和設計,API 的設計。對,我用了「設計」是因為這里可能更加關心你的 API 的整潔和清晰。驗證是否完整,分層是否清晰合理。沒有業務邏輯,沒有交互,只有正確返回數據和正確返回錯誤信息兩種交互。 前端就需要負責主題邏輯的撰寫,界面交互,數據傳遞(API)。
而當你掌握了一種前端框架的能力以后,你會發現,服務器端的邏輯變得簡單清晰了很多,你很有可能就兼任了。跟傳統的后端程序員的區別,只是把寫代碼的位置,變到了瀏覽器端而已。 而同時,隨著樣式框架如 Bootstrap 的流行,你同時又發現,原來純前端的樣式方面的工作,你只要稍作學習,也完全可以勝任,反正你都在寫前端代碼了,樣式不如一起寫了。 而現在云服務器又那么方便,服務器你也順便管理了吧。
各種框架的流行,讓技術變得越來越沒那么復雜,越來越降低不同技術不同語言的差異性。所以,前后端,只有代碼跑的位置的區別,或者說沒有區別。 而你要做的事情變簡單了嗎?當然不。光技術上你就需要了解 RESTful,至少一種后端語言及框架,至少一種前端框架,至少一種樣式框架,甚至是交互,排版。