全棧開發者技能要求101
資料庫/資料來源
需要清楚SQL和NOSQL區別,這是你進行架構選擇的首要決定,你需要知道每種型別的區別和優缺點。至少你應該知道兩種資料庫的實現,比如MySQL和Oracle,需要掌握SQL語句,以及不同資料庫的方言。
在NoSQL這裡應該瞭解類似 MongoDB 和 ArangoDB之類資料庫,對JSON之類語法和SQL風格的語法熟悉掌握,比如下面兩種查詢都是基於同樣資料結構和同樣使用者意圖:
// BSON
sample.bar.find({}, { foo: 1 }).limit(2)
// AQL
FOR row IN bar
LIMIT 2
RETURN { foo: row.foo }
此外,需要了解 DB normalization,對資料庫進行normalize能夠獲得更好檢視和擴充套件性,也能導致更小的資料和更好效能。除了normalization,每個DB都有特殊最佳化方式,比如FLOAT和DECIMAL不同會影響效能等等。
伺服器/資料處理
首先詢問自己的問題是:我的應用是如何工作的?使用許多靜態內容?還是得動態產生內容?需要實時通訊嗎?這些問題的答案會幫助你決定是需要Apache/Nginx Node.JS, Java, Go, Erlang, Python等伺服器,如果你的站點有很多靜態內容並不需要實時通訊,你應該儘量簡單化,一個簡單的HTML前處理器,比如PHP 或 embedded JS 或 Mustache JS 就足夠了,也許還會需要快取,比如Varnish。
編寫你自己的應用有很多苦難,需要你從眾多語言中挑選,建立網路監聽器,編寫協議分析器,這些都是在你完成應用邏輯之後都需要做的,除了瞭解JSON和XML資料格式,還應該瞭解RESTful, RPC和會話,這些都是有關資料通訊或儲存的方式,會話中儲存的是使用者是否登入的狀態,狀態作為變化資料的另外一種代稱,是儲存資訊的唯一配置。
安全也是應該關注的地方,可以容易透過OWASP ASVS checklist實現。
設定好介面和通訊後,需要考慮最佳化效能,快取是你應該考慮的事情;第二個提升效能辦法是壓縮資料,能夠提升傳輸速度,最經常使用壓縮演算法是gzip,更小的blob資料比如小於256位元組會在壓縮時變得更大點。
網路/資料傳輸
雖然只需要透過很簡單的HTTP程式碼就可以實現客戶端瀏覽器和伺服器之間的資料通訊,TCP/UDP等底層協議都被隱藏起來,但是為了提高效能、安全和流量,還是需要了解TCP基礎知識,然後是HTTP協議,有許多頭部資訊和實現都必須詳細瞭解。
在這些協議之上,通用的資料結構如XML和JSON應該知道如何使用。
客戶端/資料表現
HTML CSS和Javascript是必須掌握。
語義HTML能夠支援盲人閱讀器或其他機器讀取你的HTML,此外,可訪問性也是很重要的,建立互動性使用者體驗。icroformat提供傳輸資訊給使用者的標準方式,能夠增強UX使用者體驗。
CSS也需要了解normalization,HTML5Boilerplate是一個預設的CSS模板;你要知道響應式設計responsive design;小螢幕手機上client hints是有用的。考慮使用Bootstrap之類框架,能夠進行增加規則,同時防止大框架造成的過載,移除不用規則,最小化使用它。
確定你需要JS框架才加入它們,如果你希望AJAX呼叫,VanillaJS就夠用。JQuery、Angular和React都是現代常用框架。
通用程式設計
不管你使用JS或PHP或Ruby等,需要知道點如何建立堅固架構。
易於維護,易於開發,有效能hot-path,沒有洩漏,有資源生態經濟系統。
至少需要了解程式設計模式在心。同時試圖更深理解你的標準庫包是如何工作的,搞點黑技術。
相關文章
- 全棧開發者路線圖全棧
- 什麼是全棧開發者全棧
- 全棧工程師技能圖譜全棧工程師
- 軟體測試全棧工程師技能樹全棧工程師
- 成為全棧程式設計師的技能表 - dev全棧程式設計師dev
- “全棧開發者”是一種心態 - Maciej Walkowiak全棧Mac
- 開發者的小宇宙,與華為全棧全場景AI同頻擴張全棧AI
- PHP全棧工程師必備技能select2的使用PHP全棧工程師
- “全棧”:從AI開發者到AI工業家的首席關鍵詞全棧AI
- 全棧創業全棧創業
- 全棧式JavaScript全棧JavaScript
- java全棧工程師:從java後端到全棧,高階電商全棧系統大課Java全棧工程師後端
- 快速創業之全棧技術棧創業全棧
- 全棧技能與平衡藝術:首枚面向物聯網AI晶片UniOne背後的故事全棧AI晶片
- 重新定義全棧全棧
- 小鋼聊全棧全棧
- 從前端到全棧前端全棧
- 全棧化與效率全棧
- Cloudflare Pages 全棧化Cloud全棧
- “全棧”? 別逗了全棧
- SAAS對軟體測試人員的技能要求
- 全全全棧測試開發學習路線全棧
- FEer到全棧開發全棧
- 全棧技術導圖全棧
- 全棧必備:DevOps全棧dev
- 從專業領域到程式碼世界:一位全科醫生到全棧開發者的HarmonyOS跨界之旅全棧
- 教你成為全棧工程師(FullStackDeveloper)〇-什麼是全棧工程師全棧工程師Developer
- 全棧測試實戰:用Jest測試Vue+Koa全棧應用全棧Vue
- 機器學習面試準備大全 – 技能要求、面試例題詳解機器學習面試
- 機器學習面試準備大全 - 技能要求、面試例題詳解機器學習面試
- UI設計師要求高嗎?需要掌握什麼技能?UI
- React開發者必備的技能清單React
- 開發者是如何提升技能水平的
- 100 個容器技術相關技能棧
- Python全棧指什麼?全棧工程師的意義是什麼?Python全棧工程師
- 所謂全棧 - 《Web全棧工程師的自我修養》讀書筆記全棧Web工程師筆記
- 企業對前端開發人員有哪些要求?硬核技能+輔助要求缺一不可前端
- 全棧開發自學路線全棧