Web全棧工程師應該會什么
一個Web開發(fā)過程有三層架構(gòu):
- 表示層:表示層也被稱為網(wǎng)站的前端部分。它處理網(wǎng)站的用戶界面相關(guān)問題。
- 業(yè)務邏輯層:業(yè)務邏輯層也被稱為網(wǎng)站的后端層,負責數(shù)據(jù)驗證和動態(tài)處理。
- 數(shù)據(jù)庫層:最后是數(shù)據(jù)訪問層,利用API為網(wǎng)站提供數(shù)據(jù)。
以上三層共同稱為全棧web開發(fā)。以前,每當需要開發(fā)一個網(wǎng)站時,前端開發(fā)人員和后端開發(fā)人員分別被聘用?,F(xiàn)在,隨著移動應用程序和網(wǎng)站的全棧開發(fā),時代已經(jīng)發(fā)生了變化。首先,你需要學習全棧開發(fā)項目,然后把整個項目分配給一個能夠處理網(wǎng)站前端和后端開發(fā)的人。
LAMP全棧代表LINUX-APACHE-MYSQL-Perl / PHP。全棧開發(fā)人員對所有四個LAMP棧有深入的了解,現(xiàn)在Linux已經(jīng)過時了。這是MEAN Stack開發(fā)者(MongoDB,Express.JS,Angular.JS,Node JS)的時代。今天一個完整的全棧開發(fā)者能夠處理完整的MEAN全棧。
更新發(fā)展
- MongoDB的數(shù)據(jù)庫
- Express.js為web框架
- AngularJS為前端框架
- 服務器平臺的 Node.js
能力
- 有設(shè)計和開發(fā)移動應用程序和網(wǎng)站的知識;
- 能夠與團隊合作,能夠與程序員,產(chǎn)品開發(fā)人員和其他員工合作創(chuàng)建和發(fā)布新項目;
- 識別和修復應用程序或網(wǎng)站的問題;
- 開發(fā)新項目的測試程序;
- 管理項目的所有開發(fā)階段。
技能
前端
- CSS預處理器,如Sass或LESS;
- 像AngularJS,React或者Ember等JavaScript框架,或者像Grunt,Gulp和Bower的基于JS的構(gòu)建工具;
- Web基礎(chǔ)知識,如HTML,JavaScript和CSS;
- AJAX;
- 前端(CSS)框架(如Foundation或Bootstrap);
- jQuery或Backbone.js的庫;
后端
CRUD(創(chuàng)建,讀取,更新,刪除);
數(shù)據(jù)庫技術(shù),如MySQL,Oracle,PostgreSQL和MongoDB;
API設(shè)計和開發(fā);
RESTful服務;
Web基礎(chǔ)知識,如HTML,JavaScript和CSS;
與Express.js,Ruby on Rails,CakePHP等服務器端語言相關(guān)的框架;
Web服務器技術(shù),如:Node.js,J2EE,Apache,Nginx,ISS等;
服務器端語言,如:PHP,Python,Ruby,Java,JavaScript和.Net。
- 面試全棧開發(fā)者常遇到的問題
1.多線程與select有什么區(qū)別?
2.確定SQL連接類型。
3.什么是REST?
4.什么是CORS,JSONP?
5.什么是地圖縮小?
6.什么是字符編碼?
7.你如何測試你的代碼?
8.詳細說明虛擬方法表。
9.列出擴展數(shù)據(jù)庫的方法?
10.線程和進程有什么區(qū)別?