什麼是全棧開發者
純粹基於道德而掌握開發堆疊的每一方面的預期是合理的嗎?可能不是,但Facebook這樣要求。一個Facebook的員工在OSCON告訴我,Facebook只僱傭全棧開發者。那麼全棧開發者是什麼意思呢?
對我來說全棧開發者是對每一層都熟悉的人,如果不真正對所有的軟體技術感興趣不會對它們精通。
好的開發者熟悉整個堆疊,他們是知道如何使生活周邊的事更容易的人。這就是為什麼在辦公室我如此反對偏執的原因,當然,政治及溝通挑戰在大型組織中還是按固有的套路。我認為Facebook所持有的招聘政策是:如果聰明的人用腦用心,就能在更短的時間內構件更好的產品。
全棧的層:
1.伺服器、網路和伺服器環境
-
知道哪裡可能崩了和為什麼會崩,沒有什麼是理所當然的。
-
適當的使用檔案系統,雲端儲存、網路資源,必須具備資料冗餘和可用性的概念。
-
知道應用的伸縮性對硬體的需求。
-
什麼是多執行緒和競爭條件?想想看,在開發機上你可能看不到這些,但是現實環境中它們就是會發生。
-
全棧coder還要能與運維並肩作戰。提供有價值的錯誤資訊和日誌。確保它們是可靠的,因為運維會在你之前看到這些東西。(原文為DevOps)
2.資料建模
-
如果資料模型有缺陷,業務邏輯和上層邏輯就要用奇怪的程式碼(很醜)來彌補資料模型的缺陷。
-
全棧開發者要能夠建立合理的、標準的關係模型,包括外來鍵、索引、檢視、查詢表等。
-
全棧開發者要熟悉非關係型資料儲存(應該指的不止是NoSQL),並且知道它們相對關係型儲存優勢所在。
3,業務邏輯
-
應用提供的核心價值。
-
可靠的物件導向技能。
-
可能會用到的框架。
4,API層、Action 層、MVC
-
理解外部對資料模型和業務邏輯的操作。
-
該層會有很多框架應用。
-
全棧開發者要具備編寫清晰、一致和易用的介面。過高的複雜度讓人厭惡。
5,UI
-
全棧coder:a)知道如何建立可讀的頁面佈局;b)或者明白自己需要幫助設計師。A或B,關鍵是要能有好的視覺設計。
-
掌握HTML5和CSS。
-
JS正在逐步成為語言新銳,Javascript的世界裡已經完成了很多激動人心的工作(node, backbone, knockout...)。
6.使用者體驗
-
全棧coder要知道使用者需要的就是It works!
-
一個好的系統不會廢了使用者的手腕和眼睛。一個全棧coder會發現和審視需要8次點選、3步操作的流程,並最終把它一鍵搞定。
-
提供有價值的錯誤資訊。如果崩潰了,就要向使用者致歉。有時候程式設計師會寫出讓使用者自我感覺很二的錯誤資訊。
7.知道使用者和業務到底要什麼
-
現在我們模糊了架構的界限,但卻可能遠離了實際需求。
-
全棧coder要明確知道使用者使用軟體時的場景,而且要領會業務。
關於這個問題的其它方面:
-
編寫高質量的單元測試能力。順便說一下現如今連JS也可以做單元測試了。
-
持續整合。發掘程式構建中重複、可自動化的流程,在一定程度上自動完成測試、文件和部署。
-
對安全性的敏感,不同的層都可能有自己的脆弱點。
最後:
應用嚴重依賴一個特定的第三方實現(lib、系統、硬體等)是非常糟糕的實踐。全棧開發者要知道了解全面不代表就可以走捷徑。當然在拋棄原型法中,他們可以這麼幹。
在技術起步時很需要全棧開發者的多面技能。然而,在團隊定型後,會越來越需要專注技能。
我不覺得在具備了多語言、多平臺甚至跨行業的職業生涯之前,你可以稱自己為全棧開發者。全棧遠超“高階工程師”,它更接近是多語言的開發者並且能在更高的角度看到之間的關聯。注意在我的列表中只有3-5項涉及到編碼。
原文地址:http://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/
相關文章
- 什麼是全棧工程師?全棧工程師
- Python全棧指什麼?全棧工程師的意義是什麼?Python全棧工程師
- 什麼是全棧資料科學家?全棧資料科學
- 教你成為全棧工程師(FullStackDeveloper)〇-什麼是全棧工程師全棧工程師Developer
- 什麼是全棧式無伺服器? - DEV全棧伺服器dev
- 【全棧React】第2天: 什麼是 JSX?全棧ReactJS
- “全棧開發者”是一種心態 - Maciej Walkowiak全棧Mac
- 全棧開發者路線圖全棧
- 為什麼說全棧工程師是未來?| 長文多圖全棧工程師
- 前端能做什麼?還是後端?全棧?程式設計師的迷茫前端後端全棧程式設計師
- 程式設計師的迷茫:前端能做什麼?還是後端?全棧?程式設計師前端後端全棧
- 為什麼你應該嘗試 “全棧”全棧
- 為什麼你應該嘗試“全棧”全棧
- 什麼是現代資料棧?有什麼特徵?特徵
- 全棧開發者技能要求101全棧
- HTML5培訓分享:HTML5全棧工程師是什麼?HTML全棧工程師
- Sentry 開發者貢獻指南 - 什麼是 Scope, 什麼是 Hub?
- Web全棧工程師應該會什麼Web全棧工程師
- 全棧工程師到底有什麼用全棧工程師
- 什麼是開發者體驗DX? - redmonk
- 為什麼說Typescript是必學語言以及如何學會TS全棧開發TypeScript全棧
- 為什麼開發者總是選昏招
- Struts2筆記07 什麼是值棧筆記
- 談一談全棧,為什麼不建議初學者去做全棧
- 為什麼你應該先成為全棧工程師全棧工程師
- NodeJS 對於 Java 開發者而言是什麼?NodeJSJava
- 開發者的小宇宙,與華為全棧全場景AI同頻擴張全棧AI
- 前端、後端、全棧有什麼區別?幹哪個更有前途?前端後端全棧
- 開發者喜歡的“夜宵”是什麼?劇透開發者的獨特“口味”
- 影片加密播放支援全平臺是什麼意思?加密
- 效能測試 —— 什麼是全鏈路壓測?
- Hacker Noon:開發者真正想要得到的是什麼?
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 什麼是模式? 什麼是框架?模式框架
- 這是什麼這是什麼
- 為什麼 Node 是小菜前端團隊的核心技術棧前端
- JavaScript中執行上下文和執行棧是什麼?JavaScript