天天看點

前端開發到底需要掌握哪些知識?

但凡從事網際網路的人基本都會寫幾行 html,用過 Word 的人用 Dreamweaver 也能做出規整的頁面,是以大部分人會很自然地認為“頁面的開發沒什麼技術含量,很簡單”。不僅有這種普遍的認知,對從業者來說也有很多疑惑:做頁面前端實 現,沒問題;相容性,小 case;圖檔內建,一直都在用……還能有什麼問題?瓶頸啊、天花闆啊、轉型啊、出路啊就在從業者中廣泛讨論。是不是真的沒什麼問題了呢?郵箱前端技術中心也設立好幾年了,似乎有着讨論不完的話題,也經常會有一些新的想法讓大家為之一振。那麼頁面開發還有哪些要求,還要做些什麼,這裡面的水有多深,讓我們舀舀看。

在不同的時期對頁面前端的看法似乎是多變的。在網際網路早期的時候,小車還是比房子貴的,燒餅和 粉絲還隻是用來吃的,菊花還隻是用來泡茶的。那時的頁面設計風格相對單一,對應的頁面需求比較簡單,并且當時的浏覽器也基本是 IE6 的天下,javascript 也隻是網頁特效的代名詞,HTML 頁面本身沒有引起太多人的關注,似乎隻要能用 div 甚至 table 加 css 輔助把圖檔定好位,把頁面内容預留好就 OK 了,并且這種觀念存在了很長一段時間。随着頁面内容的豐富,設計風格的發展,互動複雜性的增加,AJAX 的應用,浏覽器的更新換代,又讓大家重新對最基本的頁面本身重視起來。然後熱議的就是浏覽器的相容性,碰到問題最熱衷的就是滿網絡搜尋 hack,順便再說說IE6、7……當這些都做一遍後,似乎又遇到了瓶頸,又開始尋找出路。我們就從這個階段開始說起。

1..實作效果圖是最基本的工作

把視覺稿通過頁面代碼的方式表現出來包含了兩個基本訴求:1.能夠真實反映視覺稿;2.能夠通 過浏覽器的相容。這兩個訴求的達成需要我們有追求細節的态度和一定的頁面功底,能完成這兩個内容就可以初步進入頁面前端的從業者行列了,但這就代表着我們 可以勝任頁面開發的工作了?不,才剛剛開始!

2.與設計師的溝通和項目的參與

溝通很重要。先抛出幾個問題:我們有沒有和設計師探讨過某些效果對低端浏覽器渲染效率影響比較大?有沒有探讨過部分效果可以用 CSS3 實作進而使得結構更加簡潔清晰?有沒有在代碼和視覺中尋追求過平衡?頁面前端的開發向基本使用者,編寫的代碼也直接作用在浏覽器上,我們有義務對頁面的穩定性和渲染效率負責。我們也經常碰到項目在總體進度壓力下導緻的設計與頁面前端開發同步進行,這時更有必要盡量多地擷取項目資訊,了解我們還要做些什麼,這些可以幫助我們充分考慮重用和架構拓展。

3.良好的頁面結構

頁面結構的編寫好比蓋房的地基建設,其好壞會直接影響到 CSS 代碼的品質、js 開發、背景開發還會影響到以後的頁面拓展、疊代和頁面調整。拿到視覺稿後,不要忙着動手開始,多觀察思考。先分析布局,劃分架構,然後規劃結構,編寫代 碼。特别在大型項目中,合理使用子產品化的開發不論從整體進行還是拓展維護都有相當大的好處。

4.關于 hack

很多同學在頁面開發時上網搜尋最多的就是 hack 了,是否我們完全要依賴 hack 來實作頁面相容性,答案是否定的。大家經常比喻 IE6 向我們撒了一個謊,結果我們要再撒一百個謊來圓這個謊。不否認 IE6 經常讓我們口吐鮮血,但不代表我們用更多的“謊言”來彌補就可以心安理得。大部分情況下可以通過變換思路調整 HTML 結構,或使用一些雖然無法解釋但相對安全的 css 來幹掉 hack。誰都無法預計使用 hack 什麼時候會讓我們栽一個大跟頭。比如觸發 layout 或 position:relative 就可以幫助解決很多 IE6 的問題。

5.優美的代碼

現在很多 web 項目功能複雜,代碼規模也會變得很龐大,如何更好地進行協同開發和維護是我們面臨的一個問題。需要考慮完善統一的規劃,還有要養成良好的代碼開發習慣才會在面臨各種情況時遊刃有餘。翻閱頁面代碼,看到合理的标簽使用、良好的注釋、清晰的代碼結構、用意準确的 css 不僅猶如欣賞一個藝術品,更為下遊開發和協同開發降低了不小的溝通成本,我們有什麼理由不去這麼做呢?舉個反面例子:div 濫用是現在比較典型的一個問題。數數看自己使用的标簽有多少個呢?不同的語義都該使用對應的标簽代碼,特别是 HTML5 提供了更豐富的語義化标簽,它們都苦苦地在等待戰場上的沖鋒号,讓我們去解放它們吧!

6.無障礙頁面開發

可通路性與易用性是非常主觀且人性化的東西。普通人看上去上完美呈現的頁面在特殊群體中不一定 顯得那麼貼心。當盲人用讀屏軟體在頁面某個區域内陷入循環時,我們應該感到内疚。隻能說目前國内的網站對此的重視程度還遠遠不夠,這就需要我們共同努力,讓更多的人感受到我們的熱情。

7.保障效率

作為項目開發中比較靠前的一環,頁面開發可能需要盡早完成為項目争取時間,這就需要我們盡可能地提高效率。“工欲善其事,必先利其器”,除了實戰經驗和代碼習慣的形成可以幫助我們提高效率外,想要提高對自己開發的進度掌控能力,還有很多輔助工具可 以幫助我們進行頁面開發。比如使用 Less 或 Sass 可以幫助我們拓展群組織 CSS,大大提高 CSS 的編寫效率增加了可維護性。比如可以通過 zen coding 的自動自動完成和自定義代碼塊讓你可以劍指如飛。甚至還見過通過自定義輸入法的代碼塊關鍵字來提升開發速度的。多多發掘一定會找到最合适自己使用的工具。

8.針對伺服器的優化

頁面開發也需要了解伺服器的優化,盡量減小伺服器負擔。比如 css sprite 就是一個典型減小伺服器請求數的例子。在網易郵箱的頁面前端開發中大家不停地在做着各種優化,比如一直在尋求檔案大小與伺服器請求數的平衡;為了盡可能提 高緩存使用率采用了更新檔更新;對 class 名進行了混淆壓縮避免命名過長的備援;應用 base64 減少請求數量等等措施。這些都是綜合權衡的結果,需要考慮各個方面整體優化。因為當頁面通路量達到一定的數量級時,再小的一點優化都會達到可觀的效果,再 小的問題都可能會形成巨大的災難。

9.擁抱 HTML5

這是一個充滿機會的時代,HTML5時代的來臨伴随着移動網際網路的興起創造了更大的機會,還有 太多的東西值得我們去學習去發現。 HTML5 提供了豐富的 JS API 接口,需要我們去研究;CSS3的絢麗吸引了足夠多的眼球,需要我們去研究;移動裝置上如何開發更加适配的頁面,需要我們去研究……

10.Stay Hungry, Stay Foolish

水是越舀越多了,卻發現原來下面還深不見底,上面的内容越是深入研究就越會發現更多山川需要翻 越。保持饑餓狀态,用眼睛去努力發現發掘,不斷豐富技能才能找到定位,突破瓶頸,正所謂“唯有高屋建瓴方可水到渠成”。形成本文是因為之前和同行讨論到瓶 頸的問題,想給自己,給頁面前端的同學一起找找定位,梳理一下思路。拿蘋果 CEO 在斯坦福演講的一句話“Stay Hungry, Stay Foolish”和大家共勉。

轉載自海同網校

繼續閱讀