前端到底需要什麼

前幾天看到這樣的問題:
最近在看bootstrap,發現除了大一的時候看過的html+css,和一些js,JQuery之外,幾乎沒學什麼關於前端的東西。偶爾瞭解過一些html5。想知道如果作爲一個團隊的前端負責人還需要學習哪些東西?發現bootstrap與.less有關,除了這個還有哪些是需要學習的?
其實,一步一步地來。
CSS不能編程?用Less、Sass、Stylus、甚至直接用Absurd,框架除了Bootstrap還有很多。JS寫多了很麻煩?jQuery。移動開發?Zepto.js。結構不好?找框架,Backbone.js是MVC,AngularJS和Ember.js是MVVM,Twitter還弄了個事件驅動框架Flight。庫多了要優化加載?RequireJS。
**代碼質量成問題?**Jasmine、QUnit、Mocha做單元測試。各種瀏覽器都要測?用Karma。測試通過了部署還有問題?持續集成,用Travis CI。用戶行爲也要測?用Selenium。樣式測試還有Viff。覺得JS都夠麻煩的?用CoffeeScript。
**想做動畫?**Canvas或SVG還有CSS3幫忙,幹掉Flash。SVG太難畫?用Snap.svg。想開發遊戲?用Canvas。自己寫FPS太低?用框架,CreateJS.。2D太幼稚?three.js幫你用WebGL開發3D,還不夠給力?asm.js讓你在瀏覽器中擁有虛幻3引擎。
這一堆東西都要配置部署,麻煩,用Grunt,庫太多?用Bower管理,項目開始要創建各種文件文件夾?用Yeoman。開源項目太多了,GitHub.上找,不會?學Git。順便用Jekyll託管博客,不是吧還有Ruby這玩意…SASS也是Ruby寫的,等等Sublime Text是Python寫的,要寫插件?也學一下。調試太難?用Chrome開發者工具,一堆API和功能。
光在電腦瀏覽器上跑不給力?移動開發HTML5,離開網絡就渣了?HTML5離線應用。不如原生應用?用PhoneGap。想調用原生API?開發Firefox OS應用吧。瀏覽器應用也得會吧,Chrome Firefox都有自己的文檔。接着是不是把後端甩了,自己來,裝Node.js,所以還得學點服務器知識,想用npm管理node包?linux技巧shell神馬的也得學。想前後端通吃?再看看http協議。Web精通了?node-webkit讓你可以寫桌面程序了,繼續學吧。(web前端學習交流羣:328058344 禁止閒聊,非喜勿進!)
想學模塊化開發?看看CommonJS和AMD規範。理解JS有偏差?看看ECMA-262,等等不知道什麼時候第6版就要出了。瀏覽器各不相同,弄不清該怎麼兼容?看看W3C標準,HTML寫出來人看的懂,機器讀不懂?要SEO,要支持殘障人士?看HTML語義化,全會了但IE就是不支持?叫不出名字的瀏覽器尼瑪連JS都不知道是啥?漸進增強。想一次把各種設備全搞定?響應式設計。
然後上面這些不過是一些討巧的小技術。公司做什麼業務的?瞭解一下行業信息。面向大衆的產品?交互設計。美工不給力?UI設計。外包和諮詢?設計模式、重構方法、算法、數據結構。知道軟件工程嗎?瞭解一下敏捷開發,或許還可以試試TDD、ATDD、BDD。
看了這麼多東西,第一反應是不是求中文文檔?學英語去吧。
這些也不過是我目前所能看到的一小部分,而且每段基本都是到了一個邊界,並不是沒得學了,而是繼續學又是另一片天地。真心希望有人能幫我填補知識盲區。另外,我僅把一些知識點串起來,不全或不對的地方請見諒。
其實我一直都在說,我只是看這個問題是疑惑該學點什麼,所以擺了些工具和框架。但我發現許多人都只記得“大牛”兩個字,其實技術棧層面的前後端之分根本就很滑稽,無非是JavaScript和某某語言的區別罷了,對資源分配策略或者說思維的不同纔是前後端之分的本質區別。如果沒有領會到這一點的話,還是好好學技術,別管什麼前端後端的了,項目需要你做web做頁面,你就學前端再學點Java, Ruby, PHP之類的都可以。不要把前端這個概念當成懶得學其他技術的藉口。未來JavaScript會變成相對瀏覽器來說的底層語言,開發者用各種各樣語法的語言開發之後編譯成JavaScript在瀏覽器上跑,如果還是隻會前端三板斧,那註定被前端如火如荼的浪潮覆滅。TypeScript相比CoffeeScript已經有了一些質變,還有類似Haskell語法的Elm, 加上webpack的催化,這種趨勢會越來越明顯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章