3分钟搞懂前后端开发的区别
上周末見了好多開發的年輕朋友,問了我一個問題:“前后端的區別和要求是什么?”分不清前后端開發的區別和要求,一種是因為前后端都了解,號稱“全棧工程師”,但又什么都不是很精通;另一種是前端的不理解后端,后端的不理解前端。那前后端的區別到底在哪里呢?
一、前后端開發崗位的區別
1、對于初學者來說
(1)前端:入門簡單,先易后難,能看到自己做出來的展示界面,有成就感;
(2)后端:入門難,深入更難,枯燥乏味,沒有太大成就感,看一堆業務邏輯代碼。
2、對于程序員來說
在實際的開發過程中,這個階段對前后端的要求還是蠻低的,尤其是后端,新員工經過培訓之后都可以參與到后端開發中,這些都是比較淺的技術層面,沒有太高的技術門檻,唯一需要做的是先編碼成為熟練工種。
(1)前端開發人員精通HTML、CSS和JS,能熟練使用JQuery,并能熟練應用于頁面布局、頁面樣式和屏幕分辨率自適應以及交互效果的開發等工作;
(2)后端開發人員熟練使用一門編程語言(比如:Java、C#、Python、C++等)和懂一些設計模式,會編寫SQL語句并懂數據庫設計。
3、對于工程師來說
(1)對于有了一定經驗的前端軟件工程師來說,這個階段需要懂Node.js、Vue.js、React.js等前端框架,涉及到前端開發架構和開發效率(比如:組件、模版和驗證/解析方法封裝等等)等一系列問題。
(2)對于有了一定經驗的后端軟件工程師來說,這個階段需要懂Spring/MVC、iBatis等框架,涉及到數據結構、設計模式、后端開發架構和開發效率(比如:業務功能和方法封裝等等)等一系列問題。
4、對于技術經理或者架構師來說
這個階段編程已經不是主要工作了,但必須具備上面的技能,還需要具備架構能力,跟開發者已經不在一個level上了,主要區別在于技術領導力,本文只探討前后端開發,就不再往下延伸了。
二、前端和后端開發內容的區別
1、運行環境不同
(1)Web前端代碼主要在客戶端(PC、手機、pad)運行;
(2)Web后端的代碼主要在服務端運行,服務器可以在提供服務廠家的數據中心,也可以在云端。
2、與用戶緊密關系不同
(1)前端重用戶體驗,主要是考慮怎樣能讓用戶覺得用起來更舒服,考慮界面布局、交互效果、大數據量頁面加載速度等等,主要是偏向用戶看得見的部分,客戶端(pc、手機、pad)上瀏覽web頁面,處理各個瀏覽器平臺的兼容和對界面的渲染差異,對UI庫的依賴較強;
(2)后端更多是考慮業務邏輯、數據庫表結構設計、數據的事務操作、跨平臺API設計、負載均衡、應用和服務部署等等,更多的是考慮用戶看不到的部分,保證業務邏輯處理數據的嚴謹,保證用戶訪問數據吞吐的性能。
3、需求變更帶來的影響不同
(1)前端主要怕系統原型的頻繁變更,布局樣式、交互效果的需求變更;
(2)后端主要怕業務邏輯變更,或者當使用規模增大之后對穩定性帶來的影響。
4、前后端通吃的全棧工程師
作為一個前端開發人員,如果它懂得后端,那他可能會很容易理解為什么要通過多個后端接口獲取數據后,才能組裝上它所需要的數據?
而作為一個后端開發人員,如果它懂得前端,那他可能會很容易理解為什么后端接口都設計得如此完整,而前端還要求我再定義一個接口來返回一部分的數據呢?
這兩種情況下如果大家相互理解,如果全棧工程師就不需要大量溝通提高了開發效率;而為了解決這個問題,很多開發架構分離出數據操作的職責給ViewModel,它是由MVC框架演變為MVP和MVVM框架而來的,在MVP框架中View 與 Model 不發生聯系,由后端實現通過 Presenter 傳遞;而MVVM框架中ViewModel 只關心數據和業務的處理,不關心 View 如何處理數據,在這種情況下,View 和 Model 都可以獨立出來,由前端實現雙向數據綁定。
三、前后端開發業務應用的區別
很多開發者跟我交流,大多數開發人員認為:做后端開發天生是有優越感的。因為與前端相比,后端更加接近業務本質,數據結構基本上都是后端來設計的,對公司的業務后臺開發也更加了解,所以在很多人眼中或者潛意識里:后端比前端要重要。這也是很多人選擇做后臺開發的原因。然而事實真的如此嗎?
如果非得下個結論的話,就從軟件項目和軟件產品兩個維度說一下側重點:
如果是做項目的思路:初期以功能為主,更側重后端開發,后期功能穩定后更側重前端開發,做得好可以把項目軟件提升檔次;
如果做產品的思路:更多的是采用MVP(minimum viable product,最小化可行產品)不斷迭代的開發方式,而MVP方式更注重在前端界面等涉及到用戶體驗方面的模塊開發,當然相對應的后端功能開發也必須跟上。
總體來說,不管是前端還是后端,大家都是為了把項目或者產品做好,通過項目或者產品實現其用戶或社會價值,都是朝著這樣一個共同的目標努力。
想學好任何一門技術,還要看自己對這門技術的興趣度,如果是想從事軟件開發又不喜歡的朋友,真得想好了是不是要保護自己的發際線位置和頭發的顏色。
總結
以上是生活随笔為你收集整理的3分钟搞懂前后端开发的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 服务发现技术是如何演进出来的?
 - 下一篇: 基于 Kubernetes 的微服务部署