如何成為合格的web前端程式設計師?只要學會這幾點!
做了那麼多年Web程式設計,仔細想想, 其實本質上就那點事兒, 你抓住了幾個重點問題, 學起來一點都不難。
1. 理解瀏覽器/伺服器結構
(B/S)B/S 是從 90年代的客戶端/伺服器端發展而來, 共同點都是由一個(或一組)伺服器來服務多個客戶端。
差別在於
首先,C/S結構的客戶端可能是由不同語言編寫的,例如VB,Delphi, PowerBuilder等, B/S結構中瀏覽器成為了一個通用的客戶端, 程式以Web的方式呈現,不需要安裝,伺服器端的升級就意味著所有客戶端的升級,這和C/S相比是個翻天覆地的變化。
其次,B/S的訪問協議也標準化為HTTP(s) ,而不是原來各種各樣的私有協議。
最後,B/S結構中的伺服器面向全球使用者訪問,而不像C/S那樣僅僅是區域網, 所以壓力更大, 挑戰更大。
2. Web頁面是怎麼組成的?
簡單來說就是HTML + CSS + Javascript , 我們看到的Web介面就是由這三者組成。
HTML負責結構, CSS負責展現, 而Javascript負責行為。
我們說的前端開發也主要是做這一塊, 對於前端工程師,需要能理解DOM 模型,以及如何透過javascript(例如JQuery等框架)來操作DOM模型。
3. 瀏覽器和伺服器是怎麼打交道的?
當然是HTTP ! HTTP說穿了就是瀏覽器和伺服器聊天是的一種約定, 這個約定確保雙方互相理解。
完整的HTTP是非常複雜的,《HTTP權威指南》一書厚達700多頁。
其實我們最常用, 也是最重要的也就那麼幾點:
(1) GET 和 POST
GET從伺服器端獲取資料, POST 向伺服器端傳送資料(由此引出圖片上傳問題)
(2) HTTP是個沒有狀態的協議,需要透過額外的機制來維持狀態(例如登入狀態), 常用的方法就是cookie。
(3) 理解HTTP 狀態碼
(4) 理解 同步 vs 非同步(由此引出AJAX,以及JQuery等框架)
4. URL 和 程式碼的對映
理解url 和 程式碼之間的關聯, 例如 這樣的url 是怎麼和後端的業務程式碼關聯起來的?
這樣的規則是在哪裡定義的? 用程式碼、註解還是配置檔案?
後端的業務程式碼該如何組織? 相信現在不會有人把業務邏輯都寫到Servlet當中了, 所以需要很多MVC 框架像Struts , SpringMVC 來組織程式碼,讓系統清晰易懂。
5. 資料的驗證、轉換和繫結
如何保證瀏覽器發過來的資料是符合要求的?
例如不能為空、不超過8個字元、兩個密碼必須相等…. , 出錯了得給出錯誤提示。
瀏覽器發過來的資料都是形如username=liuxin&password=123456這樣簡單的文字, 但是後臺程式卻有著豐富的資料型別,什麼String, Date ,Integer等等。 所以需要把文字變成指定語言的型別。
型別轉換以後, 後端的業務程式碼怎麼才能有效的使用呢?
最簡單的就是弄一個key : value 這個樣的Map 出來, 業務程式碼直接用map.get(key) 即可。
高階一點的可以把頁面發來的資料直接繫結到物件的屬性上, 並且支援陣列,巢狀等複雜的結構。
例如user.name=liuxin&user.password=123456 可以繫結到一個叫User的物件, 其中有兩個屬性userName和password。
6. Web安全
如何防止駭客利用SQL 注入,跨站指令碼攻擊, 跨站請求偽造等手段來攻擊系統?
7. 資料庫訪問
這一塊是比較麻煩的, 畢竟物件導向(OO)世界和關係(Relational)資料庫之間存在著天然的鴻溝。
對於簡單的應用, 直接寫點JDBC就夠用了,只需要掌握Connection, Statement , Resultset這三個基礎。
複雜點的需要用O/R Mapping 框架來搞定,例如 Hibernate, MyBatis ,還有RoR的ActiveRecord。
這其中比較棘手的就是表之間的關聯, 就是所謂的一對多, 一對一, 多對多這樣的關係, 如何在物件導向的世界裡描述。
擴充套件開去,還需要處理連線池, 事務,鎖 等各種煩人問題。
8. 用什麼技術來生成Web頁面?
這裡說的Web頁面就是第2點中的頁面,包括HTML, CSS, Javascript。
能不能直接用Servlet的PrintWriter 直接輸出HTML ? 當然可以,只是以後就沒有人看懂了。
現在用來建立Web頁面的技術多如牛毛:例如 JSP, Velocity, Freemaker, Groovy 等等, 他們都有一個共同點: 模板技術。
說白了就是有一個HTML的模板, 裡邊可以嵌入程式碼, 這個模板在執行時(例如在Tomcat當中)就可以根據輸入的不同而生成不同內容的Web介面了。
無論哪種模板,都需要面對一個重要問題:如何展示從業務邏輯層傳送來的資料? 這一步驟其實和第5步中的資料繫結有密切關係。因為這一步需要確定諸如user.name , user.password這樣的欄位名稱。
9. 如何把物件變成XML或者JSON字串?
由於AJAX以及手機端的存在,對於一個URL的請求, 他們要求的返回值通常不是HTML頁面, 而是XML或者JSON資料, 此時需要有框架把物件轉化成相應的字串。
搞定了Web這些基礎的東西,在公司裡做一個Web程式設計師應該不在話下了, 接下來需要學習的就是像高併發,快取,搜尋,分散式等高階的內容了。
自己是從事了五年的前端工程師,不少人私下問我,2019年前端該怎麼學,方法有沒有?
沒錯,年初我花了一個多月的時間整理出來的學習資料,希望能幫助你快速學習前端,拿高薪offer!
這裡推薦一下我的前端學習交流群:731771211,裡面都是學習前端的從最基礎的HTML+CSS+JS【炫酷特效,遊戲,外掛封裝,設計模式】到移動端HTML5的專案實戰的學習資料都有整理,送給每一位前端小夥伴。2019最新技術,與企業需求同步。好友都在裡面學習交流,每天都會有大牛定時講解前端技術!
點選:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901074/viewspace-2636155/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一個合格的web前端程式設計師要學會哪些技能?Web前端程式設計師
- 如何成為一名合格的(Java)程式設計師Java程式設計師
- 搞懂了這幾點,你就學會了Web程式設計Web程式設計
- (轉載)如何成為一個真正合格的程式設計師?程式設計師
- 只要學會這五步!就可以成為萬中無一的前端工程師前端工程師
- Web前端怎麼學?如何成為Web前端工程師?Web前端工程師
- 職場10年之如何成為一名合格的程式設計師(上)程式設計師
- 傳說中,只要學會這五步!就可以成為萬中無一的前端工程師前端工程師
- 我這幾年程式設計師生涯的一點體會(轉)程式設計師
- 想要成為一個合格的Java程式設計師, 你必須要做到這些!Java程式設計師
- 來自阿里的P7高階程式設計師教你如何成為一名合格的Java程式設計師阿里程式設計師Java
- 從web前端到全棧,這類程式設計師為何這麼吃香?Web前端全棧程式設計師
- 如何成為10倍速的程式設計師程式設計師
- 如何成為偉大的程式設計師?程式設計師
- 好程式設計師:web前端解答為什麼要學JavaScript程式設計師Web前端JavaScript
- 初學Java,如何成為年薪50萬的程式設計師?Java程式設計師
- 成為合格的資料分析師,這幾項能力你具備了嗎?
- 《演講之禪》助你成長為一名合格程式設計師程式設計師
- web前端程式設計師真的這麼值錢嗎?Web前端程式設計師
- 如何成為真正專業的程式設計師程式設計師
- 如何成為一個糟糕的程式設計師程式設計師
- 如何成為一個卓越的程式設計師程式設計師
- 如何解決硬碟韌體區損壞?只要學會這幾步硬碟
- 為什麼我不想成為Web前端程式設計師Web前端程式設計師
- 好程式設計師web前端分享前端學習路線自學如何找到工作程式設計師Web前端
- 前端修煉の道 | 如何成為一名合格前端開發工程師?前端工程師
- 半路學程式設計,可以成為大牛程式設計師嗎?程式設計師
- 如何成為高階java程式設計師Java程式設計師
- 如何成為一個程式設計師高手程式設計師
- 成為一名程式設計師要做的幾件事情程式設計師
- Web程式設計想要徹底搞懂,這幾點需清楚!Web程式設計
- 好程式設計師web前端分享應該怎樣學好web前端?程式設計師Web前端
- 如何成為有程式碼潔癖的程式設計師?程式設計師
- 如何成為一個合格的資料架構師?架構
- 如何成為更好的Java程式設計師?- javarevisitedJava程式設計師
- 如何成為一名成功的程式設計師程式設計師
- 成為偉大程式設計師的 10 個要點程式設計師
- 成為優秀程式設計師的10點建議程式設計師