最近網路上熱烈討論一則傳聞,說Facebook在招募所謂的「全端工程師」(Full Stack Engineer),要求應徵者對開發堆疊的每個方面都有所掌握。那究竟何為 「全端工程師」呢?從字面上來理解,全端工程師必須熟悉開發堆疊的每個層次,或至少熟悉絕大多數並且對所有的軟體技術有天生的熱情和興趣。
對於這樣的開發者,他們非常擅長使用掌握的技術讓自己的生活變得輕鬆,這也正是為什麼Facebook會希望僱用他們,他們用自己的腦子與熱情編碼, 好的產品也自然能在最短的時間呈現。那麼,一個合格的「全端工程師」要具備哪些素質呢?
開發堆疊剖析
1.伺服器,網路以及宿主環境
需要理解哪些模組可能失效以及為什麼,而不能理所當然地認為,只要不斷增加資源就能解決所有問題。
知道如何運用作業系統、雲端儲存、網路資源,並能理解資料冗餘以及可用性是必需的。
了解應用程式的規模是如何對硬體造成限制的。
還有多執行緒和競態條件,這些概念在開發機上往往不會遇到,但是他們在現實的部署環境中卻無所不在。
全端工程師還必須要能夠與Devops很好地協作。他們所設計的系統應該提供有用的錯誤訊息和日 志能力,這樣DevOps就能夠及時獲得這些信息,並採取有價值的行動。
2.資料建模
如果資料模型有缺陷,那麼就常常需要在業務邏輯和更高的層面上使用醜陋的程式碼來彌補那些數據模型沒辦法覆蓋的死角。
知道如何建立合理的範式關係模型,具備完善的外鍵、索引、視圖、查詢表等等。
還要熟悉非關係型資料的存儲,知道非關係型資料庫在哪些方面超越關係型資料庫。
3.業務邏輯
這是系統應用程式價值的關鍵。
掌握SOLID設計能力(單一職責,開放且封閉,Liskov替代性,介面分離,依賴注入)。
熟悉一些常用的框架。
API/Action/MVC
這些關乎外部世界如何與商業邏輯及資料模型互動。
會使用到大量的框架。
有能力寫出清晰、一致、使用簡單的介面。
4.使用者介面
全端工程師需要:a)懂得如何建構易讀的佈局;b)能意識到藝術家和圖形設計師的作用。總之,實現一套好的視覺設計方案特別關鍵。
熟練HTML5/CSS。
從目前的趨勢來看,JavaScript將會是明日之星,最近這一領域碩果累累(NodeJs, backbone, knockout, Angular(自己的加的, 原文沒有))。因此,掌握JavaScript必不可少。
5.使用者體驗
全端工程師應該意識到:使用者只是希望一切運作良好。
一個好的系統是不會讓使用者得腕管綜合症或產生眼睛疲勞的。全端工程師能檢視全局,可以將一個需要8次點擊 3個步驟的過程,簡化為只需要一次點擊。
知道如何向使用者提示錯誤訊息。如果出現故障,真誠道歉。有時一些無意的錯誤訊息,會讓使用者感到莫名奇妙。
理解使用者和市場需求
這層關係到系統架構,但也絕不是一個不能碰的角色(有可能翻譯有誤,原文:but that is too much of a hands off role)。
全端工程師要領悟客戶使用軟體流程中會需要些什麼以及整個市場需要些什麼。
以上是java全端學什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!