為什麼 CSS 人員被稱為「網頁重構工程師」?

很多企業招聘寫CSS的人員都寫招聘「網頁重構工程師」,騰訊也有專門的重構組。

這職位大多數的工作就是將設計圖利用HTML CSS寫成靜態頁,也就是說實質性的工作是寫新的CSS,而不是「重構」CSS。那為什麼這個職位還要叫「網頁重構」?


首先,騰訊的這個網頁重構崗位起名的原因就是大家說的因為《網站重構》一書。

在騰訊網頁重構崗位最早是叫網站策劃與製作。當時工作內容包含產品交互稿,網頁(HTML和CSS)本身,javascript,flash。後面因為技能的專業化引入了象EMU,Danger,Demon等一系列JS以及flash的牛人,然後交互稿件也交由專業的交互設計師處理;所以工作內容僅剩下網頁(HTML和CSS)本身。我也是在那段時間紋了那個紋身,主要原因是重新的去清晰工作的定位。

當然這只是一個稱呼,也有人繼續叫製作,也有人叫網頁構建;製作嘛不夠上流,夠賤嘛話帶侮辱,畢竟總不能叫回頁面仔吧。同時又要區別於前端開發,於是就用了這個名字。

其實重構的工作定位也很好理解,設計理念還原。所以在騰訊重構是在設計通道的,而前端是開發通道的。畢竟術業有專攻,前端才不會想text-security把密碼的點變正方形神馬的,重構也不會寫得出很好的篩選演算法;所以把他們混為一談只會讓這群人兩頭不到岸。所以劃分開兩個崗位是為了明確這一專多長的「一專」而已。


主要是一開始在國內推廣 Web 標準的時候,確實有大量的代碼是 HTML tag soup 需要重構的,而且很重要的一個原因是在這個領域最有影響的一本書,Jeffrey Zeldman 的 Design With Web Standards 第一版在國內的翻譯叫《網站重構:應用Web標準進行設計》,我記得幾年前和譯者(傅捷、王宗義、祝軍)交流時,他們說也是多次修改才確定了這個名字,但這本書的中文版出版時國內對 Web 標準的介紹還近乎是荒原狀態(只有網上的一些教程,完全沒有出版物),所以一下子就產生了很大的影響,此後受它的影響,很多網站前端工程師和設計師也就開始這麼稱呼基於 Web 標準進行的設計了。


問題中的觀點有所偏差,『重構』並不只是寫CSS和HTML,而是規劃網頁的實現方式。個人觀點,

  • 歷史背景上,從表格布局的思維轉換到樣式布局的思維,是一個推翻重來的過程,使用『重構』這個詞是較準確的。
  • 『網頁重構』崗位的出現,是對舊有工作流程、分工的一種打破,是一種進化。原先由設計師兼著或由程序員著的工作,由一群更適合的人來做。也可以說是對舊流程的一種『重新制定』。
  • 如今基本上已經很難找到表格布局的頁面,上面所說的『準確』也就變得不太準確了,正如@wfl_inter 所提到的『網站重構是一種思想,是一種理念』,現在還繼續使用『重構』這個詞,更多的是一種對自我的提醒,提醒自己堅持『重構』的理念,面對問題時去尋找突破。
  • 『重構』是連接感性設計師和理性程序員的橋樑,是支持站點更美、更友好、更健壯的基石之一。


我這樣理解:網頁重構師的工作是將設計師設計出來的網頁(圖片格式)劃分區塊重新構造為HTML+CSS的網頁(html格式的),這是所謂的重構,從一種形式重構為另一種形式。


我是翻譯《網站重構》一書的譯者之一,當時我們3個譯者各自起了不同的名字,這個名字是我起的,因為譯者3人中我是做程序開發的,借用了軟體開發中的著名書籍《Refactoring》的中文翻譯《重構》來影射當時國內網站需要用類似的方式來改變網站底層的本質,當時我們幾個也有爭議,不過阿捷和dodo最終接受了我的想法。就是沒想到後來竟然能夠成為web前端的一個重要辭彙。

現在來看,隨著前端跟用戶體驗、網站速度、可維護性、web2.0和移動互聯網興起,對網站進行重構更將是一個持續不斷的過程,範圍也超脫了單純的css,還包括javascript、ajax、flash等等所有前端技術和非技術的集合體。


網站重構不是一種技術,不是css+div,更不是標準,網站重構是一種思想,是一種理念。真正的網站重構理應包含結構、行為、表現三層次的分離以及優化,行內分工優化,以及以技術與數據、人文為主導的交互優化等。

重構網站先重構人,重構你的理念,不要光光追求技術,追求還原設計稿,追求瀏覽器的兼容性,重要的是基礎和理念。當你真正了解什麼是網站重構的時候網站重構也就真正開始了。


很早以前有本書叫《網站重構》[1] ,大部分人對網站重構的認識就是 div+css,有別於以前的 table 布局。

[1] http://book.douban.com/subject/1230451/


我所理解的就是標籤語義化,結構合理化,css模塊化

標籤語義化:就是少用無意義的span和div,不過html4.1的時代還有點困難

結構合理化:同一個模塊內部的dom要方便js選擇器選擇。

css模塊化:方便樣式的同意修改,提高重用性


可能片面的看法:因為在國內前端設計師往往只具備Photoshop+切圖的能力。。所以要造出這麼個title以示區分。國外的情況會好很多,一部分設計師更偏向矢量、圖標、VI設計,另一部分則能夠獨立完成從原型到html+css的工作;當然兼修圖像設計和前端css的強者也不少。

非常希望能認識更多國內擅長css的設計師。


這年頭霸氣的頭銜一堆一堆的何必在意?產品經理、客戶經理剛剛進去的時候不照樣是打雜的?

大概是他們有時候也要改改以前的頁面CSS之類的吧?要說成「重構」也算可以吧,他們也有對html的頁面重新寫幾個合適的標籤和嵌套,換了代碼嵌套結構,換一個新的思路來構造頁面,也算是。以後要是有機會,把頁面升級換代也有基礎。


因為你看到別人寫的html+css就在想:媽的,哪個混蛋寫的,老子一定要重寫!


自己也是很納悶,重構,字面上理解確實有點問題,看來是受到《網站重構:應用Web標準進行設計》這本翻譯過來的書的影響了。


重構概念 個人覺得應該是 如何讓網頁更加科學更加合理的生產。

就像生產線一樣。 把很多東西都細分過了。這樣會有利於長期發展。


規範代碼,採用更合理的方式規劃設計代碼。


嗯,就是一個詞而已,就是對你滿意的頁面進行改造


因為最早是table實現的布局,後來改成div的方式重新實現一次,素以叫重構。—我猜的


推薦閱讀:

哪裡可以比較系統的學習前端代碼瀏覽器兼容問題?
你寫過最複雜的表單頁面是怎樣的,你是怎麼解決的?
Webstorm 的 Tab 鍵怎樣調整縮進值?
為了保持Mac,Linux,Windows等平台中文字體的一致性和美觀性,你會使用哪些font-family?
自學前端,我的現在水平能不能找到工作?

TAG:前端開發 | CSS | 重構 |