當前位置:首頁 » 網頁前端 » 阿里前端代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

阿里前端代碼

發布時間: 2022-08-28 09:35:22

『壹』 前端開發需要學習什麼語言比較好啊

近幾年,前端的發展還是非常好的,市場需求大,加上學習起來也相對簡單,有眾多人選擇並學習。web前端學成之後的就業崗位還是非常多的,網頁製作,小程序開發等等,都是web前端可以做的。

學習的內容包括:

①計算機基礎以及PS基礎

②前端開發基礎(HTML5開發、JavaScript基礎到高級、jQuery網頁特效、Bootstrap框架)

③移動開發

④前端高級開發(ECMAScript6、Veu.js框架開發、webpack、前端頁面優化、React框架開發、AngularJS 2.0框架開發等)

⑤小程序開發

⑥全棧開發(MySQL資料庫、Python編程語言、Django框架等)

⑦就業拓展(網站SEO與前端安全技術)

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。

祝你學有所成,望採納。

『貳』 阿里巴巴web前端開發面試題

第一部分:用CSS實現布局


讓我們一起來做一個頁面


首先,我們需要一個布局。


請使用CSS控制3個div,實現如下圖的布局。

第二部分:用javascript優化布局


由於我們的用戶群喜歡放大看頁面


於是我們給上一題的布局做一次優化。


當滑鼠略過某個區塊的時候,該區塊會放大25%,


並且其他的區塊仍然固定不動。

提示:


也許,我們其他的布局也會用到這個放大的效果哦。


可以使用任何開源代碼,包括曾經你自己寫的。


關鍵字:


javascript、封裝、復用


第三部分:處理緊急情況


好了,我們的頁面完成了。


於是我們將頁面發布上網。


突然,晴天霹靂,頁面無法訪問了,這時候,你會怎麼做?


第一題個人實現:


___
______body,_iv{margin:0;padding:0;}
______.fl{float:_eft;_isplay:_nline;}
______.bc_C{background-color:#CCC;}
______.h120{height:120px;}
______.h250{height:250px;}
______.w120{width:120px;}
______.w220{width:220px;}
______.t130{top:130px;}
______.pa{position:_bsolute;}
______.mr10{margin-right:10px;}
______.mb10{margin-bottom:10px;}
___
___
______

『叄』 前端開發的難點到底在什麼地方

  • 不同級別的前端面臨的難點各不相同,不可一概而論;

  • 業務開發的前端難點在於對業務的理解和把控能力;

  • 平台開發的前端難點在於產品化的把控和推進能力。

  • 觀點1:不同級別的前端面臨的難點各不相同,不可一概而論。

    其他回答有說 CSS 難,有說 CSS 不難的,每個人水平不同,這樣爭論毫無意義。我剛學前端時覺得 JS/CSS/瀏覽器兼容問題都很難,現在覺得也就那樣,因為前端路子廣,辦法總比問題多。後來覺得要評估好需求,把控好項目質量比較難,很多時候我們是在幹事,在解決問題,不是只埋頭寫代碼,時間一長你會發現前端工作中,技術問題往往比較好解決,反而資源+協作問題比較麻煩。現在對我來說比較難的是快速產品化的能力,如何從無到有去做出一些有價值的東西。

    舉一個簡單粗暴的例子吧:阿里前端很多,P5/P6 一大把,但是 P8/P9 的非常少,為什麼?進階的難點在哪裡?

    前端開發的難點跟前端進階的難點是非常相似的。阿里對每個前端層級都有一個標准,這也從側面回答了這個問題,比如對 P5 來說,難點可能是寫好業務代碼,保證其靈活性和可維護性,能解決各種適配問題;對 P6 來說則需要獨擋一面,能獨立 owner 需求,而 P7 則需要在某方面技術有深入理解,等等。

    能提出這個問題首先得恭喜題主,說明題主在當前階段遇到瓶頸了,需要向下一個 level 出擊了。

    觀點2:業務開發的前端難點在於對業務的理解和把控能力。

    業務邏輯開發本身並不是難點,誰都可以寫。但是對於你自己負責的這塊業務,後續業務的發展方向和潛力,你有去了解過嗎?當業務方提需求過來時你是只負責執行還是和業務方一起探討更合理的方案?你有沒有給自己負責的產品提過一些建議?做過一些改善措施?如果前端只是作為一個執行者,作為一種被調度的資源,那麼即使最終項目取得了好的成績,跟你有多大關系?你自己會有多大的成就感?

    另外一個很重要的點:就是對業務的把控能力。業務方總是會催著上線,開發時間不斷被壓縮該怎麼辦?進度不如預期怎麼辦?開發遇到瓶頸怎麼辦?發布新功能翻車了怎麼辦?

    我見過有默默加班保證進度的,也有跟需求方重新談延期的,有發布出問題手足無措的,也有自己默默修復的,有遇到瓶頸一籌莫展的,也有及時跟老闆溝通,跟業務方撕逼的… 如何優雅的處理這些問題,有時候比寫代碼更難。為什麼有的人業務代碼邏輯混亂,寫的一團糟?我不相信是智力問題,反倒更相信是對項目本身沒有把控好,本來排了5天工作量的需求被業務方壓到了3天,你還能保證寫出健壯而不失風度的代碼?

    觀點3:平台開發的前端難點在於產品化的把控和推進能力。

    做業務時有人給你提需求,幫你出交互視覺稿,你只要負責寫頁面就行了。但是在支付寶前端,很多內部平台和技術產品都是技術自己主導,你需要自己發現問題,出方案,設計資料庫,自己出頁面,這是一個從無到有的創造的過程。並且要保證你做的東西是真正解決問題的,而不是做一些自己覺得很牛逼實際上並沒有解決用戶痛點的東西,用我老闆的話說就是對產品的把控能力,不要跑偏了。前端是最容易做出產品化東西的工程師了,因為後端不會做 UI,UI 不會寫代碼,唯前端兼顧,這是最大優勢。

    再一個就是對產品的推進能力了,你做的東西可能需要各種資源?如何爭取?可能牽扯到多方利益?如何權衡?東西做出來了如何推廣?如何在用戶的一片罵聲中奮勇前進?

    印象中很多平台型產品,剛開始投入使用時都是一片罵聲,各種問題,說實話負責這些產品的程序員壓力是相當大的,天天被罵還得徹夜幫別人解決問題,還得不斷優化系統,你說難不難?

    以上三點就是本文所展現的理念,希望能對大家有幫助。

『肆』 如何評價淘寶 UED 的 Midway Framework 前後端分離

【賀師俊的回答(17票)】:
瀉葯。
1. 這系列文章寫得很好。
【注意,熟悉我的同志應該知道,我極少給出「很好」的評價。】
2. 這系列文章以及其背後的實踐重新樹立了淘寶系前端工程水準的領先地位。
【在此之前的一段時間內,至少從外部來看,淘寶已經落後於狼系和企鵝系了。】
3. 這系列文章及其背後的實踐也證明了nodejs對於前端來說不僅在工具鏈而且在架構層面的意義。
【注意,這系列文章中的思路其實並不新鮮,但是在淘寶這樣規模而且業已非常成熟的產品中實施這樣的轉變,我認為是具有標志意義的。】
4. 具體細節上仍有許多改善空間,如此系列的第4篇《前後端分離的思考與實踐(四)》在防禦XSS時還是存在一些傳統問題。這方面在參加杭JS的時候,我跟淘寶的herman同學有過溝通,具體就不在本問題展開了。因為這是局部問題,對整體架構影響不大。
5. 注意,以上評價的都是架構,或者說是思路。實施效果是不是好,我相信他們自己的說法。但Midway框架本身因為沒有看到具體文檔和代碼,而且其開發的目的首要是滿足淘寶的需求,因此其本身或其具體組件是否在普遍意義上適用和優秀,無法作出判斷。
【徐飛的回答(19票)】:
早上看到賀老出馬,也忍不住寫了一篇來談一下蘇寧這樣的公司對這方面的考慮。
近兩年來,我一直在思考如何改進前端體系的開發模式,這裡面最基礎的一點就是前後端的分離。談到前後端分離,也有一個誤區,認為僅僅是以瀏覽器作分界,把這兩部分的代碼分離出來。但其實是,做這件事情的本意,是要解決開發模式的問題,也就是要分離前後端開發人員的職責。
針對不同類型的Web產品,這個分離方式是有所不同的。對於Web應用,因為它跟服務端的交互基本就是AJAX或者WebSocket介面,所以這個分離是天然的,整個前端基本都是靜態HTML模板,JavaScript模塊,以及CSS和相關靜態資源,但是對於網購產品這樣的形態,它的做法就不一樣。
## 展示佔主要部分的產品
網購產品的展示需求很重要,圖片等資源載入非常多,但相對的操作卻很少,基本只有搜索商品,加購物車,結算這樣的環節。傳統這樣的產品,多半是這么個工作流程:
交互出高保真圖,前端去切圖,生成靜態HTML加展示效果,然後,注意,他不是自己接著往下做,而是交給另外一群開發人員,把它轉換成服務端模板,比如freemarker或者velocity之類,或者是smarty,為什麼要這么做呢?因為這類產品講究一個首屏優化,是首屏而不是首頁,這就意味著對於首屏來說,經過的環節應當盡可能少,比如說,就不能先載入客戶端模板,再AJAX一個數據,然後去渲染一下。這么做的性能肯定是不如服務端把HTML生成好,然後一次請求載入的。
這個過程肯定是有一些問題的,比如說,如果開發人員B在套模板的過程中,發現原先的靜態HTML部分有問題,應該怎麼辦?大家知道,一個對HTML和CSS都很熟悉,同時又可以寫業務邏輯的前端開發人員是很稀缺的,所以,多數情況下,這兩邊的技能是不同的,如果是簡單的頁面問題,這個開發人員可能自己也就解決了,如果他解決不了,怎麼辦?
如果B自己不改,把他已經搞成服務端模板的代碼返回給前端人員A,A也沒法下手,因為已經是服務端模板,A手裡沒有環境,改了之後不知道對不對,不能預覽。那麼,B把問題告訴A,A修改他的原始版本,然後再拿給B又怎樣呢?這時候B又麻煩了,他要對比兩次修改的部分,把自己前一陣的修改合並進去。
所以,不管怎麼搞,這裡面都很折騰。
Midway這個產品,他想要解決什麼問題呢?既然說前端人員沒法預覽模板的原因是,後端在使用服務端模板,那麼,我能不能找一種兩邊都可用的模板,你能在服務端渲染,我也能在客戶端預覽?服務端跟瀏覽器端同時都能運行的語言是什麼?只有JavaScript。
所以,大家就往nodejs裡面去發掘了,一個普通的JavaScript模板庫,它在瀏覽器端也可以渲染,在nodejs端也可以輸出成HTML,這時候,那些原來負責整合模板和邏輯的人員改用nodejs,是不是就解決這問題了?
想像一下這個場景多麼美好:前端來決定某個模板是服務端渲染還是客戶端渲染,當首屏的時候,就在nodejs裡面生成HTML,不是首屏的時候,就AJAX過來在瀏覽器端渲染展示。
從技術方案上看,這么做很好了,工程上又帶來另外一些問題,那就是對熟練JavaScript開發人員的需求量大增。對阿里這樣的公司來說,前端有大幾百人,別的公司只能仰望,所以他當然可以放手一搞,但對我們蘇寧這樣,前端人數不大的,就麻煩了。如果我們也引入這樣的方案,就面臨把很大一部分Java開發人員轉化成JavaScript開發人員這么一個問題,這個事情短期內肯定是無法解決的,所以反過來會增加前端這邊的壓力。所以暫時還用不了阿里這樣的方案,只能努力先提高人員水平再看情況。
服務端引入nodejs還有別的優勢,比如說請求合並等等,這個也可以用其他方式變通解決,比如加一個專門的跟現有後端同構的Web伺服器,在那邊干這些事。
## 展示和業務邏輯較均衡的產品
對於另外一些場景,也有類似的問題,比如支付產品,展示相對沒那麼重,但是又算不上Web應用,它面臨另外一種情況的前後端分離。這種場景下,前端的出靜態HTML和DOM操作類的JavaScript,業務開發人員負責寫後端,還有另外一部分業務邏輯的JS。
這里的問題是什麼呢?是jQuery式代碼造成的協作問題。比如說:
$(".okBtn").click(function() { $.ajax(url, data) .success(function(result) { $("someArea").html(_.template("tpl", result)); });});
因為前端人員的稀缺,所以他不可能幫你把業務邏輯寫出來,所以說,這裡面$.ajax往裡的部分,要業務人員自己寫。然後,數據得到之後,又要去處理界面部分。
很多場景下,處理界面遠不是這么搞個模板放上去就完事的,所以業務開發人員感到很煩悶,為了這么一點小問題,反復去找前端的人來搞,很麻煩,自己搞又特別花時間,所以都很苦悶。
這同樣是一種前後端的分離,只是這個分界線不在瀏覽器,而在於:是否寫業務邏輯。對付這種場景,解決辦法就是加強JavaScript代碼的規劃。現在流行那麼多在前端做MV*的框架,不考慮Angular這類太重量級的,來看看Backbone這樣的,它到底解決了什麼問題?
很多人說,Backbone雖然小,但根本不解決問題。這句話有一定道理,但前提條件是你自己的JavaScript代碼分層已經做得很好了。如果做得不好,它就可以協助你解決分層的問題。
剛才那段代碼,它的問題在哪裡呢,在於職責不清晰。一個函數只能做一件事,這是共識,但由於回調等方式,所以不經意就破壞了函數的單一性、完整性。我們試試來拆開它。
對於一個後端開發人員來說,他為什麼常常害怕寫前端代碼?是因為JavaScript語言嗎?其實不是,我們用來寫業務邏輯的時候,只會使用JavaScript一個很小的子集,對於這個子集來說,它並不存在多大的學習困難,最麻煩的地方在於DOM、BOM等東西,對於一個後端開發人員來說,如果要求他在掌握服務端代碼編寫的同時,還要去學這些,那真是有些不容易,所以,我們來給他省點事。
現在我們的出發點是,把這段代碼拆給兩個不同的人寫,一個人操作DOM,另外一個人只寫邏輯,絕對不操作DOM。前面這個代碼拆給前端維護,後面這個拆給業務開發人員。
最老圡的方式:

a.js
$(".okBtn").click(function() { b1(data);});function a1(result) { $("someArea").html(_.template("tpl", result));}
b.js
function b1(data) { $.ajax(url, data) .success(a1);}
現在大家是不是相安無事了?
如果這么做的話,AB雙方要做很多約定,也就是說,這個過程仍然是一個螺旋鏈。比如說,A先寫點擊事件的綁定,然後想起來這里要調用一個請求,就去找B寫b1方法。B在寫b1的時候,又想到他要調用一個界面展示方法a1,然後又來找A寫,來回也挺折騰。
況且,有這么一天,A在另外一個地方也想調用b1了,但是由於b1的回調已經寫死了,比較蠢的辦法就是在a1裡面再判斷,這是什麼東西點擊造成的,然後分別調用不同的回調。如果情況復雜,那這個代碼寫出來真是沒法看。
如下:
a.js
var type = 0;$(".okBtn").click(function() { type = 1; b1(data);});$(".okBtn1").click(function() { type = 2; b1(data);});function a1(result) { if (type1) { $("someArea").html(_.template("tpl", result)); } else if (type2) { // ... } type = 0;}
b.js
function b1(data) { $.ajax(url, data) .success(a1);}
稍微好一些的辦法是,在b1中,直接返回這個請求的promise,這樣可以由調用方決定到底該干什麼。
如下:
a.js
$(".okBtn").click(function() { b1(data).success(function(result) { $("someArea").html(_.template("tpl", result)); });});$(".okBtn1").click(function() { b1(data).success(function(result) { // ... });});
b.js
function b1(data) { return $.ajax(url, data);}
如果要對返回數據作統一處理,也可以很容易地在b1中,用promise重新封裝了返回出來,只不過這樣在a.js裡面,直接調用的就不是success,而是then了。
注意到這樣的代碼還有問題,比如說大量的全局函數,不模塊化,容易沖突。此外,沒有一個地方可以緩存一些共享數據,比如說這么一個場景:
界面上兩個塊M和N,其中,M初始載入並載入數據,N在初始的時候不載入,而是在某個按鈕點擊的時候載入,而M和N中各有一個列表,數據來源於同一個服務端請求。
現在就有個問題,當N載入的時候,它的數據怎麼來?比較老土的方式,肯定是載入N的時候,同時也再去請求一下數據,然後渲染到N上。
從一個角度看,如果說不重新請求,N的這個數據應當從哪裡來?從另外一個角度看,如果重新請求了,發現數據跟之前的產生了變更,是否要同步給M,怎麼同步給它?
我們看看類似Backbone這樣的框架,它能提供怎樣的機制呢?或者如果我們不用它,怎麼自己把這個分層封裝得更好一些?
首先,是建立一個數據模型,在它上面添加數據的緩存:
define("model", [], function() { var Model = { data: null, queryData : function(param, fromCache) { var defer = q.defer(); if (fromCache || this.data) { defer.resolve(this.data); } else { var self = this; this.ajax(url, param).success(function(result){ self.data = result; defer.resolve(result); }); } return defer.promise; } }; return Model;});
這么一來,我們在模型上作了數據的緩存,如果調用的時候加fromCache參數,就從緩存讀取,否則就請求新的。為了在兩種情況下,調用方介面能保持一致,把整個函數封裝成promise,以便接著調用。這里的模型定義成單例了,假定是全局唯一的,可以根據需要調整成可實例化的。
這個時候,視圖層就要封裝DOM和事件的關聯關系:
define("view", ["model"], function(Model) { function View(element) { this.element = element; this.element.selector(".okBtn").click(function() { var self = this; var fromCache = true; Model.queryData({}, false).then(function(result) { self.renderData(result); }); }); } View.prototype = { renderData: function(data) { this.element.selector("someArea").html(_.template("tpl", result)); } };});
這個時候,多個視圖實例的情況下,數據也能夠較好地利用。
這樣,前端寫這個View,後端寫Model,可以作這么個分工。
這個只是很簡陋的方式,在復雜場景下還有很多不足,在這里先不展開了。更復雜的場景也就是類似Web應用那種方式,稍後專門寫一篇來展開。
## 小結
我們再來回顧前後端分離所要解決的問題,是分離前端和業務開發人員的職責,這個方案怎麼定,是應當隨著團隊狀況來確定的。比如阿里前端厲害,人多勢眾,他的前端就要往後推,去佔領中間層。我們蘇寧這樣的公司,前端比較薄弱,只能在很多場景下,讓出中間層,否則戰線鋪太廣只能處處被動。
同一個中途島,在不同的形勢下,占還是不佔,是很考驗前端架構師的一個問題。
對阿里的這種實踐,我們會持續圍觀,尋找並創造合適的出手時機。
【rank的回答(4票)】:
簡單說下自己的看法。

前端不再繼續「單純」在 kissy 上下功夫,而可以考慮向後的延伸架構是一種前端的進步,這種前端架構將重定義阿里的前端工程師工作,很多互聯網公司比阿里先行一步。

這個思路與與最早阿里很多前端沒有碰後端(例如模板)有很大的關系,用 NodeJS 作中間層能解決現面臨的問題,是一種不限於解決當前問題的長遠解決方案。

具體是否能解決和解決得好,在於細節,不在新,而在過渡。如,如何過渡目前 NodeJS 與原來的數據交互,如何灰度過渡,工作量等。

平台化與介面化思路(後端數據介面以 Services 存在)讓 amazon 收益非淺,現在後端平台化介面化在大公司趨勢明顯。
平台化需要更多更快的應用層開發選型,NodeJS 是不錯的一種。NodeJS 雖然還是有些問題,但從信息面與我們自己的應用經驗來看,已有慢慢成為後端 WebApplication 的一種很好的選型方案的趨勢。

總的來說,是個趨勢。
【Hex的回答(1票)】:
我認為這就是所謂的大前端開發模式。模式確實是好模式,但是真正實踐起來,和後端工程師的溝通和協調也會遇到很多問題。
我做過的幾個項目都是採用這種大前端的開發模式,前端基於Transformers框架+CodeIgniter組成大前端,這樣確實可以很好的隔離前後端,項目可維護性大大提高。
【鄧欣欣的回答(1票)】:
上周去杭州玩了下,和之前的阿里同事做了些技術交流,發現這一年,阿里的前端在流程改進上下了很大功夫; 題主所說的中途島應該是 UDC 團隊做的,應該說思路不是很新鮮,國外有 ebay 向 nodejs 的轉型案例,國內之前也有網路音樂移動端的案例;
但對阿里前端來說,意義確是很重大,解決了合作流程中的一個很大問題:之前阿里的前端是只寫靜態 demo,寫完給開發套模板,開發不太懂 html,漏寫個標簽,然後找前端調試,一來一去很折騰,是個必須干但又是個沒啥技術含量的事; 中途島可以很好的解決這類蛋疼事,但是請不要認為前端就因此會後端了,無非是之前瀏覽器用 ajax 請求介面,現在咱用 node http去請求唄,框架做得牛逼點,統一適配出前端的ajax 介面也不是不可能呀~~,想想嘛,為啥要用 node 呢? 牛逼直接寫 java 啊。。哈哈哈~
其他的 F2E 團隊也做些很不錯的流程改進工具,同樣不是很新鮮,但對阿里前端都是比較有意義的工具:
def: 項目構建與發布工具,與阿里的 gitlab, scm 整合,各種 腳手架,build,combo,發布,一條命令搞定,確實很方便;
dip:數據介面平台,定義業務線前後端數據格式的一個內部公共平台,基於 json-schema,好像也可以給你提供 mock 介面;
uitest:前端持續集成平台;之前這東西我是邊做邊吐槽的,似乎剛上線,類似 jenkis 這些,提交或者發布代碼時,先幫你跑一次測試用例;目前通用測試庫比較少。
Trace:好像是叫這個名字吧,監控平台,這個比較早就有了,用來監控各個業務線頁面的運行狀況並搜集各種用戶數據,如解析度,UA
我看來 def 和 dip 對阿里前端的作用會更大些,uitest 估計作用一般,阿里前端是不注重代碼質量的,測試用例也僅在幾個重要的直接影響交易的業務線會寫。
【許文敏的回答(0票)】:
確實不錯,從職責上來區分前後端分離才是王道,nodejs將成為前端工程師的基礎技能
【獵人豆豆的回答(0票)】:
不要把簡單的問題搞復雜,對於淘寶這樣規模的公司,有些牽一發而動全身的改動,最好是在權衡風險和收益後再決定,我們是技術的使用者,而不要被技術牽著鼻子走.
【羅正燁的回答(2票)】:
前面前端的大牛們都說了,我換個角度聊聊。
這么講吧,阿里的前端為什麼比其它公司走的遠,是因為他們有很多前端,還有很多不用寫大量業務邏輯的前端大牛。大牛的作用,就是折騰。阿里的前端工程師水平在自身領域實踐上已經跟得上後端。
但這個架構所謂的分離,其實是把很多原來前端不需要做的事攬到了自己的手上,增加前端架構師的KPI,讓前端做了更多的事,周報好寫。因為nodejs和前端都是js,所以學習成本並不算高,但是對一個技術人員的要求是比原來更高了。
但是,他們團隊有很多HC,有很多錢。。所以像我這種一個產品線只有一二個前端的,要是這么玩兒,招人跟不上不說,然後還可以把自己累死。
所以技術選型和架構這種事,還是要根據自己團隊的能力和招人啊。

『伍』 前端開發好學嗎

WEB前端是最容易入門的編程崗位,初級前端技術很容易掌握,高級前端需要一步步學習和工作經驗的積累。web前端是一個做有關網頁的一個概述,是一個網頁view層的總得稱呼。前端開發,簡單來說,就是把平面效果圖轉換成網頁,把靜態轉換成動態。它的工作包括了:切圖、寫樣式、做滑鼠效果和圖片切換效果等。而優秀的前端開發可以保障實現這些效果的同時,即不能影響網站的打開速度、瀏覽器兼容性還有搜索引擎的收錄,還可以讓用戶體驗更加舒適,使網站在訪問中顯得更精細、更用心。訪客使用起來更簡便。
前端的崗位很多,要注意選擇自己的技術方向,需要精通流行的幾個框架開發。前端是入門簡單,深入難,所以要往高級前端發展還需要不斷學習新技術。
前端開發需要學習的技術
1 掌握基本web前端開發技術:HTML、CSS、JavaScript、DOM、BOM、AJAX等,而且要了解它們在不同瀏覽器上的兼容情況、渲染原理和存在的Bug
2 必須掌握網站性能優化、SEO和伺服器端開發技術的基礎知識
3 必須學會運用各種web前端開發與測試工具進行輔助開發
4 除了掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等
5 未來web前端開發工程師還要研究HTML5、web視覺設計、網站配色、網站交互設計模式等相關技術

在互聯網行業,前端有WEB前端、HTML前端等,隨著互聯網技術發展,就業方向也有很多。web前端的就業方向有web架構師、web前端工程師、HTML前端開發工程師、網頁設計師等等。
HTML前端開發
與Web前端開發不同的是,使用HTML5不僅僅可以開發前端,還有網頁游戲,手機APP,使用瀏覽器進行3D渲染等一系列建立在HTML5標准與搭載其標准瀏覽器上的開發,而未來可能會有更多的功能分支並入HTML5標准。web前端工程師
這個方向是目前從事Web前端開發的主要就業方向
Web架構師
薪資普遍比較高,技術要求高,掌握多種技能,包括:後端技術、DBA、Platform等等,甚至包括網站優化SEO技術。
數據方向
數據研發這個是在Web開發的基礎上用數據附能,懂可視化的一定是有前端能力的,懂hadoop的一定java玩的溜,屬於Web開發的拓展方向。
大前端方向
比如阿里,在大量實踐rn和weex;由於公司內部安卓/ios式微,一定程度上,前端把ios和安卓收編了,統稱大前端(還有node)。
圖形學方向
前端自然是與圖形學有千絲萬縷的聯系,除了上面提到了可視化,還有相關3d引擎的開發工作。做這一行要求也非常高了,圖形學相關的演算法,3d引擎的開發,這都需要圖形學相關知識。

『陸』 如果進阿里前端,代碼能力得達到什麼程度

因為之前淘寶或部分商業公司,代碼能力能夠滿足業務的需要可以勉強通過,現在要求,可以滿足未來業務的需要,至於未來的業務需求,它需要你有一定的商業思維,站在技術的角度尋找更多的可能性和結合點。例如,如果你需要能夠覆蓋你的業務,你必須能夠獨立地覆蓋它。一些新技術如果對業務有幫助,就可以集成。


我接下來的幾個項目,包括一個要求是視頻監控,之前的老師是用微軟的ActiveX,因此只能使用IE瀏覽器。我感覺很糟糕,所以老師推薦的「高級」技術越多,使用VLC構建視頻轉碼伺服器,然後使用WEB RTC進行處理,使用HTML 5視頻元素進行顯示,這種兼容性和可擴展性遠高於ActiveX。在此基礎上還對機會進行了研究,包括項目的信息傳遞,地理定位需求也盡可能地使用流行的方式

『柒』 阿里巴巴前端工程師是做什麼的

  • 入門級做頁面。就這么簡單。把Designer出的各種設計圖轉化成html+css+js+image的靜態網頁,並把它們交給後端開發人員製作成頁面模板。這就是入門級的前端工程師所做的事情。

  • 進階級還是做頁面。不過稍微復雜一些,你需要開始注意一些更復雜的問題,首當其沖的就是瀏覽器兼容性問題。老實說瀏覽器兼容性問題真的不是那麼好搞定的,畢竟每個項目對瀏覽器版本的要求都不一樣,而且現在不光有PC瀏覽器還有各種移動設備上的瀏覽器,同時國內廠家的瀏覽器種類也越來越多,坑也是密密麻麻。除了兼容性,你可能還要關注一下性能問題,包括但不限於網路性能、渲染性能、js邏輯的性能等等,這個展開講可以寫本小冊子了,呵呵。

  • 中級帶團隊。你可能會奇怪,一個中級工程師就能帶團隊了?可是真的很多公司就是這樣,尤其是小公司。當你了解了html、js、css以及各種瀏覽器的各種特性細節之後,你會被任命帶領一個小的開發團隊,當然是前端開發團隊。可能加你一共也就三四個人,甚至更少。這時候你的工作內容除了自己寫一點頁面以外,還會幫助組員解決各種各樣的細節問題,畢竟,組里,你是最懂技術細節的。這個時候,一部分人開始停步不前,而另一部分人開始關注另一個新的問題:工程化。前端代碼都是非常鬆散的,項目結構性差,一旦開發人員數量多起來,業務復雜起來,如何管理這么多人、這么多代碼是個非常大的問題。能否在這個問題上得到突破,決定了你能否邁向下一個級別。

  • 高級架構設計。此時你熟悉前端開發的各種技術細節(當然忘了一部分細節也沒事 ^_^),同時對各種前端框架、技術的特性聊熟於胸,你知道如何組織和管理項目讓大家能以最快的速度達到項目要求,你甚至了解手下每個人的所長所短。於是當新項目到來,你迅速根據自身過往的經驗選取若干種技術和工具,配上你認為最合適的人選組成項目團隊,披荊斬棘日夜兼程將產品汪的各種奇葩需求斬於馬下。這么做了一兩個項目之後,你可能又覺得空虛了,你要尋求新的目標。恰好,NodeJS打開了通往新世界的大門。

  • 非典型前端穿過NodeJS打開的大門,你進入了全新的世界——後端。全新的世界,無限的可能。樓上寸老師說的「上天入地,無所不能」,我猜就是這個狀態。愛幹嘛幹嘛吧,這個時候,你應該不會再來問「後端程序員都在幹嘛」這種問題了。其實,要成為一名「非典型前端」並不一定非得經過1~4的步驟。只是現在已經上了年紀的前端大多是這樣過來的,畢竟,NodeJS出來的時間也並不算很久。

『捌』 網站前端開發都需要掌握哪些知識

我們都知道網站開發分為 前端(客戶端)和 後端(伺服器端)兩個部分。網站開發 後端 更多的是與資料庫進行交互以處理相應的業務邏輯。需要考慮的是如何實現功能、數據的存取、平台的穩定性與性能等。至於 前端,在這里泛指Web前端,也就是在Web應用中用戶可以看得見碰得著的東西。包括Web頁面的結構、Web的外觀視覺表現以及Web層面的交互實現。主要負責實現視覺和交互效果,以及與伺服器通信,完成業務邏輯。它的核心價值在於實現用戶體驗,大型互聯網公司的用戶體驗部門,一般會包括用戶研究、交互設計、前端技術和視覺設計等方面的內容。
作為一名網站前端開發者,以下的知識是不可或缺的:
1HTMLHTML即HyperText Markup Languag,超級文本標記語言。這是網站開發中最簡單的,也是最基礎的內容,幾乎所有的開發者都必須首先經歷這個環節。必須要熟練掌握div、form、table、li 、p、span、font等等標簽,這些都是最常用的。其中尤其需要注意div和table這兩個,算是用到最多的內容。div用於布局;table用來和數據打交道(雖然table也可以用於布局,但是並不靈活)。
2CSSCSS即Cascading style Sheets層疊樣式表,其中css3我們先不談。CSS主要用於輔助html來布局和展示,我們稱之為「css樣式」。對於css要掌握的內容主要包括float、position、width、height、overflow、margin、padding等等,這些都是跟布局有關系的樣式。不管你用什麼工具軟體製作網頁,其實都有在有意無意地使用CSS。用好CSS能使你的網頁更加簡煉,為什麼同樣內容的網頁,有的人做出來有幾十KB,而高手做出來只有十幾KB,CSS在其中的作用是不言而喻的。
3JSJS即JavaScript,作為一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標准通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。我們所講的前兩個內容都很基礎,接下來的東西可能接受起來有難度,但是事實上js入門算是比較簡單的,不需要會很多東西的。基礎點的內容只要會根據某個id、或者name拿到網頁dom或者樣式、或者值,然後會給某個id或者name的元素標簽賦值、或者追加數據、追html,這個是跟數據有關系的操作,之後數據邏輯判斷。至於效果方面的,無非就是跳轉、彈框、隱藏什麼的。當然,這些東西單獨拿出來比較簡單,但是實際中幾乎沒有這么簡單的情況,很多時候都需要把這些各種各樣地結合起來。
4JQueryJQuery說白了是一個JavaScript(JS)框架,相當於把js封裝了一套的一個js插件,目的就是操作起來更方便,代碼寫的更少,它支持JS的常規操作以及一些擴展,比如圖形等,對JSON格式也能很好的解析,ajax也做了封裝,語法也比較簡單。功能十分強大。jquery入門也很簡單,那些是入門需要學的和js一樣,只是換成了jq的代碼。不好的地方是它將js語法與開發人員完全隔離,也就說你開發幾年JQuery後還會不會用純 編程都是個問題。

5CSS3+HTML5這是最近比較流行的內容了。HTML5在原有的基礎上新增和移除了一些元素,提供了對表單的強大支持。它並非僅僅用來表示Web內容,它的新使命是將Web帶入一個成熟的應用平台,在HTML 5平台上,視頻,音頻,圖象,動畫,以及同電腦的交互都被標准化。CSS3對於我們Web開發者來說不只是新奇的技術,更重要的是這些全新概念的web應用給我們帶來更多無限的可能性,也極大地提高了我們的開發效率。我們將不必再依賴圖片或者Javascript 去完成圓角、多背景、用戶自定義字體、3D動畫、漸變、盒陰影、文字陰影、透明度等提高Web設計質量的特色應用。

6簡單後台語言作為一名前端開發者不僅需要掌握上面講的有關前端的知識,還必須懂一點後台語言,比如java、php等等。因為前台界面的數據都是從後台來的,我們必須知道怎麼跟後台交互數據。這樣不僅能夠節約時間,還可以讓前端代碼更規范,讓後台開發者減少一些不必要的麻煩。否則的話,可能因為前台的寫法和後端給來的數據不能結合上,導致前端代碼必須重新編寫。

『玖』 web前端開發用什麼軟體

對於前端,官方的定義是網站前台部分,運行在PC端,移動端等瀏覽器上展現給用戶瀏覽的網頁。用自己的話來說,前端是網頁給訪問網站的人看的內容和頁面,那前端開發顧名思義就是這些內容和頁面中代碼的實現。

現在的前端開發使得現代網頁更加美觀,交互效果顯著,功能更加強大。所以現在的前端開發,運用到的知識面更加廣泛,難度也更大。前端開發目前市場需求還是很大的,而且相對來講比較容易,很適合學習。需要學習的內容也不少,我有全套web前端視頻課資料可以發給你自學。

學習內容包括:

①計算機基礎以及PS基礎

②前端開發基礎(HTML5開發、JavaScript基礎到高級、jQuery網頁特效、Bootstrap框架)

③移動開發

④前端高級開發(ECMAScript6、Veu.js框架開發、webpack、前端頁面優化、React框架開發、AngularJS 2.0框架開發等)

⑤小程序開發

⑥全棧開發(MySQL資料庫、Python編程語言、Django框架等)

⑦就業拓展(網站SEO與前端安全技術)

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。

祝你學有所成,望採納。

『拾』 什麼是前端,後端,終端,有什麼區別

簡單地說,前端就是你在瀏覽網頁app看到的一切東西,都是前端。後端就是程序員在背後做的一切努力,對數據等東西的處理。而終端就是你使用來瀏覽這些東西的設備。
展開來說的話,就比較長。
前端:
前端就是展現給用戶瀏覽的部分。我們通常說的前端,其實是指前端開發,也就是創建PC端或移動端等前端界面給用戶的過程,通過HTML,CSS及JavaScript以及衍生出來的各種技術、框架、解決方案,來實現互聯網產品的用戶界面交互。前端開發是從網頁製作演變而來。早期的網頁製作主要內容都是靜態的,以文字圖片為主,用戶使用網站也以瀏覽為主。隨著互聯網的發展,現代網頁更加美觀,交互效果顯著,功能更加強大。因此現在的前端開發的主要技術通常是指html、css、js技術和一些開發框架的使用。大家熟知的Facebook就是Web前端技術的產物,完全基於前端框架打造出來的平台。另外,外賣平台餓了么旗下的部分產品也是基於Web前端技術的。像淘寶,網路,阿里等等,都已經將Web前端技術打入到了自己的產品中。
後端:
為了讓伺服器、應用、資料庫能夠彼此交互,後端工程師需要具有用於應用構建的伺服器端語言,數據相關工具,PHP框架,版本控制工具,還要熟練使用 Linux 作為開發和部署環境。後端開發者使用這些工具編寫干凈、可移植、具有良好文檔支持的代碼來創建或更新 Web 應用。但在寫代碼之前,他們需要與客戶溝通,了解其實際需求並轉化為技術目標,制定最有效且精簡的方案來進行實現。
終端:
「終端」即是指最後或最外層的節點。在計算機世界裡一般指最外層的輸入輸出。那什麼是計算機的輸入輸出?最常見的輸出設備就是顯示器、最常見的輸入設備就是鍵盤滑鼠。所以通俗來說,計算機的終端就是位於最外層的顯示器、鍵盤或滑鼠。
在過去(現在也有)因為計算機資源非常寶貴,經常一台高性能主機向多台終端設備提供計算能力。即終端設備通過鍵盤滑鼠向中心主機輸入信息,中心主機計算後將結果返回給終端進行顯示。終端本身不具備核心計算能力,主要就負責數據的輸入和輸出,這就是「終端」。
現代我們管很多設備叫終端機,比如手機。因為手機作為接打電話的終端負責聲音的輸入和輸出,而重要的信號處理工作由各個基站等設備完成。