欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

土豆網(wǎng)(tudou.com)前端概況

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-17 19:58:47   作者:佚名   我要評論
一、分工和流程 在土豆網(wǎng),以項目開發(fā)為核心,誰都可以帶項目,擔(dān)任項目經(jīng)理。 一個典型的土豆網(wǎng)項目中,當(dāng)進(jìn)入正式開發(fā)階段,通常參與者包括:1名設(shè)計師,1-2名前端工程師,1到多名后臺工程師,1-2名系統(tǒng)運維管理員。 其中,前三者的工作都是可以并發(fā)的,最終整合通常是

一、分工和流程
在土豆網(wǎng),以項目開發(fā)為核心,誰都可以帶項目,擔(dān)任項目經(jīng)理。
一個典型的土豆網(wǎng)項目中,當(dāng)進(jìn)入正式開發(fā)階段,通常參與者包括:1名設(shè)計師,1-2名前端工程師,1到多名后臺工程師,1-2名系統(tǒng)運維管理員。
其中,前三者的工作都是可以并發(fā)的,最終整合通常是前段工程師,對于復(fù)雜度較低的頁面處理,一般工程師也可以直接參與。
不管是設(shè)計師、前端和后臺工程師,對于分離的領(lǐng)會和理解都非常重要,并且導(dǎo)致配合上,不同理解層次的人會產(chǎn)生不同的配合效果。
其中,設(shè)計師和前端工程師的配合無疑是最重要的,設(shè)計師的風(fēng)格直接導(dǎo)致前端頁面結(jié)構(gòu)的簡潔或者復(fù)雜,程序邏輯的簡潔或者復(fù)雜。
一個卓越于設(shè)計并且理解W3C網(wǎng)頁標(biāo)準(zhǔn)的設(shè)計師是珍稀而罕見的。
二、基本架構(gòu)(Architecture)
架構(gòu)的目標(biāo):可擴展性、可維護(hù)性、可復(fù)用性
1. 內(nèi)容(Infomation/Content)
土豆網(wǎng)的內(nèi)容結(jié)構(gòu),從模塊來說,如中心橙色圈所區(qū)分出的九個大塊:

從其功用來說,則分為三個層次:

這些特性決定了后面所有前端架構(gòu)的基調(diào)。
#p#
2. 結(jié)構(gòu)層(Structure)
A、 頁面(Page)結(jié)構(gòu)
a) 概覽
一個典型左右版式的頁面樣式:

土豆網(wǎng)的所有頁面都基于這個頁面模型,分別是:上下導(dǎo)航、內(nèi)容,內(nèi)容分為貫穿版式或者左右版式。
在左右區(qū)域中分別由盒狀模型擔(dān)任最終內(nèi)容的承載結(jié)構(gòu)。
解析如下:

HTML片段:

#p#
b) 導(dǎo)航
i、 頂部導(dǎo)航
土豆網(wǎng)導(dǎo)航分為三種,常規(guī)導(dǎo)航、黑色小黑邊導(dǎo)航,以及視頻播放頁面的專用導(dǎo)航。
這三種導(dǎo)航使用的HTML是基本一致的,通過CSS來控制不同狀態(tài)下的表現(xiàn):

模型解析:

HTML片段:

ii、 底部導(dǎo)航(從略)
c)內(nèi)容
i、 貫穿版式:在個別頁面,會出現(xiàn)沒有左右布局的全頁面橫向貫穿版式,這時頁面結(jié)構(gòu)內(nèi)只有Content,沒有Main或者Side,此時盒狀模型全部直接堆積在Content內(nèi)。另外,除了全站首頁以外的所有公共頁面都是特制并保持風(fēng)格統(tǒng)一的貫穿版式。
ii、 左右側(cè)欄:最常見的布局,存在于絕大部分頁面。最主要應(yīng)用在內(nèi)頁管理區(qū)域,首頁也有用到。
iii、 混合版式:只有視頻播放頁面用到。
#p#
B、 盒狀(box)模型結(jié)構(gòu)
盒裝模型是建立在頁面布局的基礎(chǔ)上,承載內(nèi)容和數(shù)據(jù)的最直接頁面基礎(chǔ)結(jié)構(gòu),主要分為容器、標(biāo)題、內(nèi)容、底部三個部分。
一個典型的盒裝模型效果分為側(cè)欄效果和主欄效果兩種風(fēng)格,統(tǒng)一的HTML結(jié)構(gòu),通過CSS來控制樣式上顯示的不同,這一部分在樣式層主要討論。
在首頁以及少量特殊頁面上,會有額外的風(fēng)格,但是依然以盒狀模型為基礎(chǔ)。

解析如下:

HTML片段如下:

C、包裝(pack)模型
對于站內(nèi)存在的視頻、豆單、播客、小組、話題討論等等,都有既定的統(tǒng)一表現(xiàn)風(fēng)格,因此在盒裝模型以外,單獨設(shè)立了面向這些常用內(nèi)容的模型結(jié)構(gòu),因為是打包處理,所以稱之為包裝模型。
包裝模型基本風(fēng)格一致,但是在各處的顯示略有不同,同時還會涉及在個人主頁上自定義樣式等,是需要符合全站出處可用的封裝模型。
常見的有:

包裝模型最重要的變化來自于樣式層的處理,其結(jié)構(gòu)本身很簡單,就不做解析了,以下是一個視頻包的HTML片段范例:

#p#
3.樣式層(Style)
1、全局、模塊和頁面級
a)土豆網(wǎng)的所有頁面都應(yīng)用了全局樣式global.css(簡寫為_g.css),位于“/skin/g/_g.css”;該樣式文件包含了包括主要布局、導(dǎo)航條、盒狀模型、包裝模型以及常用工具類;
b)所有位于一級導(dǎo)航以及類似風(fēng)格的頁面使用的是公眾樣式,位于“/skin/public/v.css”;所有內(nèi)頁管理使用的是內(nèi)頁樣式,,位于“/skin/my/v.css”;
c)所有獨立頁面使用自己獨有的樣式文件,命名以頁面功能或所在模塊為基準(zhǔn);
d)頁面樣式的基本原則是:如果某一特定頁面樣式的代碼超過整個文件的1/3,會被獨立成為單個的樣式文件。否則,通常會合并在其頁面所在的模塊中;
c)特別少量的樣式,可以寫在頁面HEAH區(qū)域,或者寫在HTML,并沒有特別苛刻的要求,這是出于對當(dāng)前項目效率的考量。
舉一些例子:
-首頁
/skin/g/_g.css(全局風(fēng)格)
/skin/public/index.css(公眾區(qū)域的首頁風(fēng)格)
-視頻首頁
/skin/g/_g.css(全局風(fēng)格)
/skin/public/v.css(公眾區(qū)域的模塊風(fēng)格)
-我的視頻
/skin/g/_g.css(全局風(fēng)格)
/skin/my/v.css(內(nèi)頁管理界面模塊風(fēng)格)
/skin/my/clips.css(我的視頻頁面級風(fēng)格)
/skin/playlist/append.css(分享視頻的Toolkit封裝)
-視頻播放頁面
/skin/video/v.css(重點獨立頁面,特殊優(yōu)化,合并了_g.css等樣式)
2、抽象與實例、繼承和重載
a)全站級別的繼承和重載機制;
因為涉及全局的樣式都被封裝在Global.css里,如果在模塊級或者頁面級需要對該樣式加以調(diào)整,辦法是重寫相關(guān)的類;
以下示例清晰地展示了一個視頻包(Pack)在類的繼承和重載的情況:

* 是一個全局樣式,規(guī)定了所有邊距的重置;
.pack 是一個抽象的包封裝,該類記錄了所有包的共性,其代碼如下??盏念惪赡軙谝恍┥У臑g覽器上造成意外的問題,但是通常不會,這里書寫空類是為了保證在邏輯上的可閱讀性。
.pack { float:left; }
.pack ul {}
.pack li {list-style:none;}
.pack b { font-weight:normal;color:#686868;font-size:11px;font-family:Arial; }

在.pack下,書寫了所有包裝模型的實力類:.pack_clip, .pack_user, .pack_album, .pack_list,等等;
以下是視頻包和豆單包的例子:
.pack_clip {
padding:12px 10px;
color:#000;width:126px;
}
.pack_list {
padding:12px 3px;
color:#000;width:144px;
}

以上類的抽象和繼承主要體現(xiàn)在對各自私有部分的派生。以實現(xiàn)代碼的精簡和復(fù)用性。
在一個HTML片段中,調(diào)用的方法是:首先應(yīng)用抽象類或者父類,然后應(yīng)用實力類或者子類,例如:
<div class="pack pack_user director"></div>
在這個例子中,director代表豆角,這個類可能書寫在某個模塊中,也可能在頁面級的樣式中,對前面的類進(jìn)一步重寫和修正;
修正的時候只需要書寫需要被修改或者重置的語句就可以了。
在上面的示例中,因為頁面的需要,模塊級別的/skin/public/v.css重寫了pack_clip的寬度:
#programpage .pack_clip{width:167px;}
當(dāng)父類和抽象類被修改的時候,全站的所有Pack模型都會被修正,但是不影響到子類所做出的私有派生或者復(fù)寫,也就不會影響某一個特殊頁面的獨立樣式;
關(guān)于類、抽象和繼承的方法很多,考慮到命名方法和選擇符,會有大量不同的處理風(fēng)格。然而最主要的思想都在各種面向?qū)ο蟮木幊虝杏性敿?xì)的技巧和說明,這里就不復(fù)述了。
在土豆網(wǎng)的樣式中,大量應(yīng)用了類似的辦法和技巧來處理可維護(hù)、可擴展和可復(fù)用性。
TIPS:
    前端開發(fā)眼下最好的開發(fā)工具是Firebug,很好,很強大; 樣式命名很重要,優(yōu)先考慮以類(class)為基礎(chǔ),輕易不使用標(biāo)識(ID),標(biāo)識(ID)通常用于頁面級樣式所需要的元素,乃至一個細(xì)節(jié)上最終端的元素; 元素選擇符也很重要,“.pack_clip ul li a img {}”有著很高的優(yōu)先權(quán),要慎用; 以上兩點歸納起來說就是:盡量降低各種命名和選擇符的優(yōu)先權(quán),越是全局和抽象優(yōu)先權(quán)應(yīng)該最低,在一個特定的微觀元素部分,可以放心使用高優(yōu)先權(quán)來復(fù)寫;當(dāng)出現(xiàn)三層甚至五層的集成和復(fù)寫的時候,這就會顯得相當(dāng)重要,如果不能很好地重寫,輕易不要使用important,而是想辦法重構(gòu)父類(的命名和選擇符); 為了處理可擴展性,會稍微增加HTML結(jié)構(gòu)的冗余性,然而從整體上來看,是值得的; 最終管理、處置和使用這些架構(gòu)的是人。

4. 行為層(Behavior)
待續(xù)

相關(guān)文章

最新評論