要打造一流的Web產(chǎn)品開發(fā)團(tuán)隊,在團(tuán)隊成員基礎(chǔ)能力上一定要下功夫。對于Web前端產(chǎn)品開發(fā)來說,僅僅掌握Web1.0時代簡單的”網(wǎng)頁套接”是完全不夠的。我結(jié)合自己的團(tuán)隊配備,特此羅列了Web前端產(chǎn)品工程師所涉及的技能列表如下:
通過許多實際項目,個人認(rèn)為一個完備的前端產(chǎn)品開發(fā)團(tuán)隊,必須擁有如下的人才配備,也希望大家補(bǔ)充:
- 團(tuán)隊全體成員達(dá)到所有技能中的a級標(biāo)準(zhǔn)
- 團(tuán)隊全體成員必須掌握兩項技能中的b級標(biāo)準(zhǔn),并保證所有的b級標(biāo)準(zhǔn)在該團(tuán)隊中有50%以上成員能達(dá)到
- 團(tuán)隊全體成員必須掌握一項技能中的c級標(biāo)準(zhǔn),并保證所有的c級標(biāo)準(zhǔn)在該團(tuán)隊中有25%以上成員能達(dá)到
具體技能描述:
- 【必備】UserInterface
-
- PhotoShop/Fireworks Design
a - 配合美工將草圖形成具體的符合WebPage的設(shè)計
b - 有快速制作分層高品質(zhì)PSD、PNG的能力
c - 能迅速將PSD、PNG的內(nèi)容構(gòu)思成div+css或者table等HTML代碼
- Flash Design
a - 基本動畫效果
b - 復(fù)雜的交互體系設(shè)計,了解第三方swf輔助設(shè)計軟件
c - 復(fù)雜的交互體系設(shè)計以及較強(qiáng)的對各類外埠資源(PNG、JPG、MP3、WAV等)的整合能力。精通部分第三方輔助設(shè)計軟件(AE、SwishMax、Swift3D等)
- 【必備】Browser-side (Web Application)
-
- XHTML/CSS
a - 基本的layout實現(xiàn)
b - 嚴(yán)格跨平臺的layout實現(xiàn)以
c - 優(yōu)雅的HTML code,盡可能符合標(biāo)準(zhǔn)并有SEO的考慮因素。在任何平臺、瀏覽器下基本保持一致。不要求了解各種CSS的hacks,但要求知道遇到問題應(yīng)該如何查閱資料以在第一時間內(nèi)解決。能夠為JavaScript開發(fā)人員提供最好操作的DOM結(jié)構(gòu),讓JS開發(fā)人員在開發(fā)的時候認(rèn)為”一切都已經(jīng)準(zhǔn)備就緒了”,而不是”捉襟見肘”。
- JavaScript/Ajax/DOM
a - 基本的DOM操作,了解AJAX,可以實現(xiàn)數(shù)據(jù)通信
b - 基本的DOM操作,能寫高效率的OOP代碼,以降低維護(hù)成本
c - 基于需求,進(jìn)行不同的開發(fā),選擇合適的框架,做到代碼效率最高,用戶體驗最好,代碼下載量最小,并且可以在單獨(dú)甚至更多產(chǎn)品線中最大限度重用代碼
- Flash Developement
a - 基于Timeline的ActionScript操作,能實現(xiàn)簡單交互
b - 掌握a外,能實現(xiàn)數(shù)據(jù)層通信(與服務(wù)器以及本地SharedObject)
c - 精通AS1-3,能根據(jù)需求進(jìn)行各類RIA開發(fā)。無論是要求支持FlashPlayer8的,還是FlashPlayer9的,都能做到開發(fā)效率最高、靈活性最大(比如對HTML層的接口設(shè)計,等等)。
- 【必備】Client-side (Desktop Application)
- Apollo
a - 產(chǎn)品級的封裝,基本技術(shù)了解(如何打包、如何加入HTML和JavaScript等)
b - 掌握a的同時,能利用Apollo的API獨(dú)立設(shè)計、開發(fā)OS的文件I/O功能。
c - 掌握基本技能的同時,對”3D概念體系”有所認(rèn)知。這里”3D”即:Design(設(shè)計)、Development(開發(fā))、Deploy(產(chǎn)品部署)。能用Apollo
- Windows Presentation Foundation、WPF/E(Silverlight)
(待定,歡迎補(bǔ)充)
- 【增補(bǔ)】Server-side(修改:經(jīng)考慮,這個技能不參與評級)
本來列舉了”1、Server端簡單的技術(shù)、腳本”和”2、MediaServer(Red5)接口”作為”Web前端工程師技能列表“的一種(服務(wù)器、數(shù)據(jù)邏輯層技能的)評判標(biāo)準(zhǔn)。但似乎很多朋友對于前端工程師是否應(yīng)該掌握Server端技能的必要性表示懷疑。確實,要掌握好上述的展現(xiàn)層技能不是意見容易的事情,而且前端工程師的確非常辛苦。但是,站在另一方面來說,辛苦的原因是什么,我不知道在你日夜奮戰(zhàn)div+CSS的時候思考過沒有。就我的經(jīng)驗,前端的辛苦在于以下幾個方面:
- 重復(fù)勞動多,大量的div+css都是重復(fù)的,即便可以復(fù)制粘貼,但幾千行的div海洋中去尋找一個入口恐怕都非常痛苦
- 需求變更多,往往你折騰幾個小時終于把跨平臺問題解決好了,而且在IE6、7和Firefox下面都能顯示同樣的效果了,甚至連JavaScript交互都已經(jīng)快搞定了。突然上面說需求要變。這無疑是莫大的痛苦。
也許表面上看,這跟Server端技能無關(guān),但我覺得有好的Server端的意識,一定會有所幫助(當(dāng)然不可能解決所有的問題)。畢竟信息結(jié)構(gòu)和數(shù)據(jù)庫是密切相關(guān)的,而Server是連接數(shù)據(jù)庫的唯一渠道(至少大多數(shù)B/S應(yīng)用是如此)。掌握Server端的基本技能,對于同邏輯層開發(fā)人員設(shè)計接口是非常重要的。而且HTML表現(xiàn)層在開發(fā)時與數(shù)據(jù)的分離,也與Server端的各種模板技術(shù)有關(guān)。例如PHP中的Smarty模板(我曾經(jīng)用的)、jsp的model2概念等等。HTML結(jié)構(gòu)如何設(shè)計,如何讓HTML重用,甚至在HTML層進(jìn)行OOP的開發(fā)(我現(xiàn)在在新產(chǎn)品線中設(shè)計的前端開發(fā)流程),都需要Server端的支持。最起碼,你要告訴php程序員你需要什么。如果你完全對PHP一無所知的話,那也無從談起了。
此外,對于創(chuàng)業(yè)團(tuán)隊,往往人手非常有限。為了讓運(yùn)營成本降到最低,所有的技術(shù)人員都有義務(wù)對Server端技術(shù)有所了解。如果為了修改一個網(wǎng)頁的標(biāo)題還要跑去喊PHP程序員連接Remote Server的話,那實在是增加了整個公司的運(yùn)營成本。
總結(jié):我認(rèn)為,可以不了解技術(shù)細(xì)節(jié),但應(yīng)該知道原理,最好能掌握一兩套設(shè)計思想(畢竟數(shù)據(jù)邏輯都在這里走,光看HTML和JavaScript,對人的見識還是有局限的,這種局限限制了我自己很久的時間),那將是一比寶貴的財富。
- 【增補(bǔ)】Mobile-side(不參與評級)
- Flashlite
(待定,歡迎補(bǔ)充)
- Java?
(待定,歡迎補(bǔ)充)
看到很多朋友留言說前端工程師沒前途,我在想,同時掌握移動設(shè)備的技能是否也是拓展前途的一個必要性?這里再多說幾句,關(guān)于技術(shù)人員的前途,目前在國內(nèi)確實得用”慘淡”來形容。浮躁的氛圍讓技術(shù)人才往往過早放棄了自己的技術(shù)生涯,而爾虞我詐的整體道德水平也讓單純的技術(shù)人員痛不欲生(我身邊太多了,恩,不說具體細(xì)節(jié)了,呵呵)。
作為一個技術(shù)人員,開發(fā)人員,在保持純粹地敬業(yè)心態(tài)(這是前提,這么沒有,啥也別談)外,更要學(xué)會如何保護(hù)自己,如何壯大自身,社會不會同情你,只有你自己才能保護(hù)你自己。
該文章在 2010/8/13 22:32:01 編輯過