以開發者的視角整理編排的前端開發所使用語言的主流學習資源
來自: https://github.com/icepy/Front-End-Develop-Guide
Front-End-Develop-Guide 前端開發指南
創建此項目靈感從SwiftGuide而來,這份指南匯集了前端開發所使用語言的主流學習資源,并以開發者的視角進行整理編排而成。
GitHub: icepy/Front-End-Develop-Guide | 網站: http://front-end-developers-hunan.github.io | 歡迎開發者一起維護,或 反饋/投稿
想了解關于該指南及 前端開發 更多信息的同學,可以閱讀短文《 致 Front-End Developers 》。 想查看優秀的開源項目,可以訪問 《Front-End Develop 項目精選》 。希望查看精選文章,可以訪問 《Front-End Develop 文章精選》 。也歡迎企業招聘人才提供工作崗位(請附上薪資),可以提交到工作崗位。
由@icepy負責整理
由于個人精力有限,不足之處還望大家多多包容與提供建議。
目錄
- Front-End Develop 文檔
- Welcome to Front-End Develop
- Front-End Develop Language
- HTML&HTML5 文檔
- CSS&CSS3 文檔
- CSS Style Guide
- CSS Language
- Sass Guide
- PostCss
- JavaScript 文檔
- JavaScript Style Guide
- JavaScript Language
- Front-End Develop Fly
- 常用庫與框架的使用文檔
- JavaScript 日志
- 開放網絡標準
- HTTP 文檔
- 緩存策略
- 前端自動化工具
- React&React Native生態-探索學習
- 移動前端技術
- 動畫
- 性能調優
- Front-End Develop 項目與工具
- 相關工具
- Front-End Develop 開源項目
- Front-End Questions
- Front-End 需要了解的數據結構與算法
- Front-End Develop 優秀文章
- 延伸可擴展的方向
- Node.js
- Mongodb
- WebGL
- Chrome擴展開發
- 桌面應用程序開發
- 移動應用程序開發
- V8 引擎文獻
- Front-End Developer Blog
- 通用Developer 社區
- 技術分享會議
Front-End Develop 文檔
初略讀懂Front-End Develop要做些什么
Web Front-End Stack:這張圖非常詳細。
Welcom to Front-End Develop
W3C組織提供了官網的地址: w3.org ,可以去查詢最近實現的標準以及將來可能實現的討論。
Front-End Develop Language
web前端開發可能包括HTML,CSS,JavaScript,Web API,SVG,WebGL,MathML等,語言是編程的基礎,火狐的MDN出了一份比較通略的文檔,可以快速查看 Web 技術文檔 。
HTML&HTML5 文檔
- 無處不在的html :HTML是Web的核心語言,也是最基礎的語言;
- XHTML2 Working Group Home Page
- HTML5 API Search :可以快速的查詢某個HTML5的API;
- HTML5 Rocks :通過這個網站可以搜索到很多關于HTML5的教程;
書籍:
CSS&CSS3 文檔
CSS Style Guide
- 編碼規范 by @mdo :開發靈活,穩定,可持續 HTML 和 CSS 代碼的規范,每一項都有很詳細的解釋;
- css guide lines
- 通用 CSS 筆記、建議與指導 :本文檔第一部分將探討語法、格式以及分析 CSS 結構;第二部分將圍繞方法論、思維框架以及編寫與規劃 CSS 的看法;
CSS Language
- 學習CSS布局 :教授的是現在廣泛使用于網站布局領域的CSS基礎;
- CSS3 Tutorial 《CSS3 教程》 :CSS3 Tutorial 是一本關于 CSS3 的開源書,作者利用業余時間寫了本書,圖文并茂,用大量實例帶你一步一步走進 CSS3 的世界;
- Magic of CSS
- CSS詞匯表 :查詢CSS的詞匯;
- CSS參考
Sass Guide
- Sass基礎知識 :Sass官網,講述Sass/SCSS應用的基礎知識,變量、函數、條件、循環、宏等等;
- Sass中文網 :中文大,給E文不好的小朋友們;
- Sass Guidelines :這是由Sass專家 Hugo Giraudel 撰寫的一份“編寫穩健、可維護和可擴展的Sass”的指南,這份指南已被翻譯成中文;
- Sass meister :在線Sass/SCSS調試器;
PostCss
JavaScript 文檔
注明:JavaScript文檔將引用 justjavac/free-programming-books-zh_CN#JavaScript 所整理的免費圖書以及自己所收集的資料;
JavaScript Style Guide
- Google JavaScript 代碼風格指南 :Google風格指南不但指出每條規范,還解釋了為什么這樣寫的原因,同時給出了對與錯的實例;
- Airbnb JavaScript 規范 :A mostly reasonable approach to JavaScript,跟Google規范類似;
- Google JSON 風格指南:該風格指南是對在Google創建JSON APIs而提供的指導性準則和建議。總體來講,JSON APIs應遵循JSON.org上的規范。這份風格指南澄清和標準化了特定情況,從而使Google的JSON APIs有一種標準的外觀和感覺。這些指南適用于基于RPC和基于REST風格的API的JSON請求和響應;
- Javascript編程指南 ( 源碼 )
JavaScript Language
- 重新介紹 JavaScript(JS 教程) :是火狐推出的一系列的JS教程,為什么會有這一篇“重新介紹”呢?因為 JavaScript 堪稱世界上被人誤解最深的編程語言。雖然常被視作“玩具語言”,但它看似簡潔外衣下,還隱藏著強大的語言特性。 JavaScript 目前廣泛應用于一大批知名應用中,對于網頁和移動開發者來說,深入理解 JavaScript 就尤有必要;
- JavaScript 標準參考教程(alpha)
- javascript 的 12 個怪癖
- JavaScript 秘密花園
- JavaScript核心概念及實踐 :(PDF) (此書已由人民郵電出版社出版發行,但作者依然免費提供PDF版本,希望開發者們去購買,支持作者);
- 《JavaScript 模式》:“JavaScript patterns”中譯本;
- 命名函數表達式探秘 :(注:原文由 為之漫筆 翻譯,原始地址無法打開,所以此處地址為我博客上的備份);
- 學用 JavaScript 設計模式 :(開源中國)
- 深入理解JavaScript系列 :湯姆大叔2011年翻譯的一系列的文章,很值得一讀;
- ECMAScript 6 入門 :(作者:阮一峰)
- JavaScript Promise迷你書 :講述Promise實現;
- You-Dont-Know-JS:(深入JavaScript語言核心機制的系列圖書);
Front-End Develop Fly
如果你想飛起來,這正是好去處。
了解常用庫與框架的使用文檔
- jQuery
- underscore.js
- backbone.js
- AngularJS
- Zepto.js
- Sea.js
- impress.js
- CoffeeScript
- ExtJS
- Meteor
- TypeScript
- requirejs
- vue.js
JavaScript 日志
開放網絡標準
HTTP 文檔
下面兩篇文章不會對 HTTP 的細節進行深究,而是從夠高和更結構化的角度將 HTTP 協議的元素進行分類講解,可以先閱讀 HTTP 協議漫談 和 圖解Http協議 來對HTTP有一個大概的了解。
深入全面了解,可閱讀 HTTP權威指南 。
緩存策略
cache是提高應用性能重要的一個環節,必需要有所了解。
前端自動化工具
現在的前端自動化工具主要如下三個流派,目測涵蓋90%以上經常使用。
React&React Native生態-探索學習
移動前端技術
動畫
性能調優
Front-End Develop 項目與工具
工欲善其事,必先利其器。開源項目與工具的使用,將極大的提高前端開發之效率。
相關工具
1. 開發工具
- Sublime Text :前端開發好用到爆;
- Atom :Github出品的一個類似Sublime Text編輯器,長的蠻像的,快捷鍵也非常類似;
- Vundle.vim:使用vim開發前端的利劍,包括其他語言;
Sublime Text常用的插件:
- Emmet:zen coding的升級版,對于前端來說,可是必備插件;
- sublimelint:用于代碼的校驗,支持 HTML、CSS、JS、PHP、Java、C++ 等16種語言;
- JsFormat :用于JavaScript格式化;
- jQuery :jQuery語法提示;
- Underscore :Underscore語法提示;
- DocBlockr :快速編寫注釋;
- SublimeCodeIntel :智能語法分析提示;
- ColorPicker :快速選取顏色
- HTML-CSS-JS Prettify :html/css/js 格式化
- Alignment :用于代碼對齊;
- WakaTime :用于記錄編程時間;
- Seti_UI :好看的主題,包括文件icon;
- OmniMarkupPreviewer :將MD文件渲染成網頁,可以在瀏覽器中查看;
- Babel :ES6語法高亮;
Atom常用的插件:
- TypeScript:支持TypeScript編譯;
- run-in-browser :支持運行網頁;
- Emmet :快速編寫HTML;
- minimap :右側小地圖;
- color-picker :CSS顏色取色器;
- autoprefixer :自動補全CSS前綴;
- autocomplete-paths :對路徑選擇進行增強;
- autocomplete-python :對Python提示進行增強;
- docblockr :編寫注釋好幫手;
- file-icons :美化編輯器圖標;
- linter-jshint :JavaScript語法檢查;
vim常用的插件:
Bundle 'christoomey/vim-run-interactive' Bundle 'Valloric/YouCompleteMe' Bundle 'croaky/vim-colors-github' Bundle 'danro/rename.vim' Bundle 'majutsushi/tagbar' Bundle 'kien/ctrlp.vim' Bundle 'pbrisbin/vim-mkdir' Bundle 'scrooloose/syntastic' Bundle 'slim-template/vim-slim' Bundle 'thoughtbot/vim-rspec' Bundle 'tpope/vim-bundler' Bundle 'tpope/vim-endwise' Bundle 'tpope/vim-fugitive' Bundle 'tpope/vim-rails' Bundle 'tpope/vim-surround' Bundle 'vim-scripts/ctags.vim' Bundle 'vim-scripts/tComment' Bundle "mattn/emmet-vim" Bundle "scrooloose/nerdtree" Bundle "Lokaltog/vim-powerline" Bundle "godlygeek/tabular" Bundle "msanders/snipmate.vim" Bundle "jelera/vim-javascript-syntax" Bundle "altercation/vim-colors-solarized" Bundle "othree/html5.vim" Bundle "xsbeats/vim-blade" Bundle "Raimondi/delimitMate" Bundle "groenewege/vim-less" Bundle "evanmiller/nginx-vim-syntax" Bundle "Lokaltog/vim-easymotion" Bundle "tomasr/molokai" Bundle "klen/python-mode" Bundle "leafgarland/typescript-vim" Bundle "scrooloose/nerdcommenter"
- HTML5 Please :HTML5與CSS3技術評估
- Mobile HTML5 :HTML5兼容性速查表
- HTML5 Cross Browser Polyfills
- Github:聲望日盛-全球最大的“同性”網站;
- Github For Mac:設計的非常美觀的git管理客戶端,它能取代命令行所獲得的功能;
- Gitcafe :國內的Github,相比之下擁有速度優勢;
- Git@OSC :也是類似的項目,在國內,可以免費建立1000+私有項目;
- HomeBrew :OS X上非常優秀的包管理工具;
- HomeBrew-Cask :簡潔優雅的Mac OS X軟件安裝體驗;
- iTerm 2 :OS X上一個增強版的shell終端;
- oh-my-zsh :OS X上用來增強shell命令行的工具;
- Dash :Dash is an API Documentation Browser and Code Snippet Manager. Dash stores snippets of code and instantly searches offline documentation sets for 150+ APIs (for a full list, see below). You can even generate your own docsets or request docsets to be included;
- tmux :終端復用神器,幫助在Mac或者Linux上做開發的程序員在使用終端時更加得心應手;
- MacVim:Mac下GUI vim編輯器;
- Xcode :也許你用不上,安裝Xcode主要是為了Xcode command line tools工具包,你也可以選擇不安裝Xcode,使用xcode-select --install跳過Xcode的安裝;
- gulp-clean :用于清理;
- gulp-notify :用于打印消息文本;
- gulp-rename :用于修改名字;
- gulp-concat :用于合并文件;
- gulp-zip :用于生成一個zip壓縮包;
- gulp-minify-css :用于壓縮css;
- gulp-autoprefixer :用于給css添加前綴;
- gulp-imagemin :用于給圖片進行優化;
- gulp-uglify :用于壓縮js;
- amd-optimize :用于AMD模塊引用編譯;
- gulp-import-css :如果css文件是通過import導入的可以使用此插件進行合并優化;
- gulp-rev-replace :用于替換;
- gulp-useref :引入使用build標記,進行替換;
- gulp-rev :生成md5文件名;
- gulp-filter :對文件進行過濾;
- gulp-header :壓縮之后將注釋寫入到文件的頭部
- gulp-if :進行邏輯判斷
- gulp-size :獲取文件大小
- raw-loader :將文件require進來;
- url-loader :可以將圖片require進來;
- css-loader :require css文件;
- Web Developer技能樹:類似《魔獸世界》中的天賦樹;
- octotree:瀏覽器擴展(Chrome,Firefox,Safari和Opera)顯示GitHub樹格式的代碼;
- react-native:出品的一個可以使用JavaScript來構建Native UI的庫;
- ionic:Ionic是一個強大的HTML5 原生應用(native app) 開發框架,幫助你用HTMLL,css和javascript構建具有原生味道的移動應用(mobile apps);
- passport-bnet:暴雪提供的Nodejs版SDK
- hexo:編寫博客使用的工具
- traceur-compiler:可以運行未來的JavaScript的JavaScript;
- EpicEditor:可以嵌入網頁的Markdown編輯器;
- gitbook:用于生成在線書籍的工具;
- kityminder:作為一款在線的腦圖編輯工具,它有著不亞于 native 腦圖工具的交互體驗;
- three.js:three.js是JavaScript編寫的WebGL第三方庫。提供了非常多的3D顯示功能。Three.js 是一款運行在瀏覽器中的 3D 引擎,你可以用它創建各種三維場景,包括了攝影機、光影、材質等各種對象;
- fullPage.js:fullPage.js 是一個基于 jQuery 的插件,它能夠很方便、很輕松的制作出全屏網站;
- angular-ui-router:angular-ui-router是AngularJS的路由框架,和默認的$route不同,它將所有路由包裝成可劃分層級的狀態機狀態,路由路徑在ui-router中不是必須的。由于ui-router的路由狀態機是分層級的,所以使用ui-router可以非常方便地創建包含多個嵌入的子模板;
- marked:markdown解析器;
- tsd:在TypeScript中替換第三方庫所使用的引用文件;
- react:可以用一種聲明性、高效和靈活的JavaScript來構建用戶界面的框架;
- hammer.js:處理觸摸事件,以及手勢的JavaScript庫;
- resumable.js:這是用于HMLT5 File Api封裝可以方便操作文件的一個庫;
- commander.js:可以幫助快速開發Nodejs命令行工具的一個包;
- persistencejs:是一個異步的Javascript庫的對象關系映射框架;
- artTemplate: JavaScript模板引擎;
- TypeScript:JavaScript的超集,擴展了類型,類,接口等語法,兼容ES6;
- fastclick:FastClick是一個簡單的、易于使用的庫,消除在移動瀏覽器上觸發click事件與一個物理Tap(敲擊)之間的300延遲;
- node-browserify:Browserify是一個node.js模塊,主要用于改寫現有的CommonJS模塊,使得瀏覽器端也可以使用這些模塊;
- socket.io:Socket.io是使用得非常普遍的前端調用Websocket的庫;
- superagent:superagent 是nodejs里一個非常方便的客戶端請求代理模塊;
- cheerio:它可以從一坨html的片斷中構建DOM結構,然后提供像jquery一樣的css選擇器查詢;
- express:它用于構建Web網站,非常快速;
- node-mongodb-native:nodejs用于操作mongodb;
- ejs:JavaScript模板引擎;
- riot:一個小巧的UI和代碼結構的框架;
- JavaScript-MD5:JS版的MD5;
- zepto:在瀏覽器(Safari、Chrome和Firefox)上開發頁面應用或者構建基于html的web-view本地應用,如PhoneGap,使用Zepto是一個不錯的選擇;
- async:JS實現的一個方便快捷異步編程的庫;
- echarts:基于Canvas,純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力;
- koa:下一代編寫Web網站的nodejs框架;
- vue:MVVM框架;
- underscore:JavaScript函數工具庫;
- backbone:Backbone.js為復雜WEB應用程序提供模型(models)、集合(collections)、視圖(views)的結構。其中模型用于綁定鍵值數據和自定義事件;集合附有可枚舉函數的豐富API; 視圖可以聲明事件處理函數,并通過RESRful JSON接口連接到應用程序。
- jquery:jQuery 是一個高效、精簡并且功能豐富的JavaScript 工具庫;
- angular.js:AngularJS是為了克服HTML在構建應用上的不足而設計的,通過為開發者呈現一個更高層次的抽象來簡化應用的開發。如同其他的抽象技術一樣,這也會損失一部分靈活性。換句話說,并不是所有的應用都適合用AngularJS來做。AngularJS主要考慮的是構建CRUD應用。幸運的是,至少90%的WEB應用都是CRUD應用。但是要了解什么適合用AngularJS構建,就得了解什么不適合用AngularJS構建。
- Flow:非死book出品的一個JavaScript靜態編譯器;
- avalon:用于構建Web界面的MVVM JavaScript框架;
- requirejs:JavaScript模塊化的開山鼻祖;
- seajs:中國開發者編寫的一個JavaScript模塊化庫;
- d3:基于JavaScript編寫的一個圖表庫,非常強大。
- sugar.js :它擴展了現有的JS對象的方法,讓你可以用更少的代碼做更多的事情;
- lo_dash :JavaScript函數工具庫;
- wx:wx是極簡設計的微信(公共平臺)應用參考級框架,而并非微信接口在node.js下的冪等映射;
- api-wow-docs:暴雪提供的魔獸世界API文檔
- candy:基于多說社交評論的社會化論壇系統,采用 Node.js/Mongodb 構建;
- node-inspector:nodejs的調試工具;
- node-supervisor:nodejs用于無需重啟的工具
- Front-end-Developer-Interview-Questions :面試題集合;
- 中文前端開發面試題 中文前端開發面試題
- Mars - mobile needs a hero :騰訊出品的移動端實踐;
- mobileTech:收集了移動端出現的問題以及解決思路與技巧;
- 移動web資源整理 :移動web資源整理;
- 數據結構與算法(JS 版) (@進擊的Luke)
- What are the 10 algorithms one must know in order to solve most algorithm problems
- 基礎算法
- 那些少人所知而又有用的數據結構(StackOverflow)
- 高級數據結構大全
- 使用 Express + MongoDB 搭建多人博客
- Learn You The Node.js For Much Win! (中文版)
- Node debug 三法三例
- 深入淺出Nodejs讀書筆記
- NodeJS的代碼調試和性能調優
- 在 Node.js 應用中集成 Redis
- Node.js 應用程序的 5 條性能建議
- 國內Nodejs 2015匯總
</ul>
2. 源代碼管理工具
3. Mac工具
關于Mac平臺的使用,推薦大家閱讀 入門精選
4. V*N
5. ES6編譯
6. gulp工具
7.webpack
Front-End Develop 開源項目
1. 有趣味的開源項目
2. 開源庫
3. 開放平臺
4. 開源web網站系統
5. 調試工具
Front-End Questions
Front-End 需要了解的數據結構與算法
Front-End Develop 優秀文章集合
延伸可擴展的方向
延伸可擴展的方向是指,脫離了瀏覽器環境的編程。
關于編譯,強烈建議閱讀 工程中的編譯原理--Jison入門篇
Node.js
入門
文檔
閱讀
Mongodb
Chrome擴展開發
桌面應用程序開發
移動應用程序開發
WebGL
v8 引擎文獻
可以先通過閱讀 V8引擎簡介 來了解JavaScript現在最好的引擎是怎樣的,然后訪問 Chrome V8 來獲取最新的資料,API文檔可以訪問 v8-docs 。
Front-End Developer Blog
中文 Front-End 開發博客列表,本博客列表會長期維護,如果有推薦的博客,請到此處提交博客信息
通用Developer 社區
在Github上找到一個社區網站收集的項目--front-end-collect
中文 Developer 社區列表,本社區列表會長期維護,如果有推薦的社區,請到此處提交社區信息
技術分享會議
說明:技術分享會議引用了ufologist項目中的收集,與自己收集的資源整理而成。
會議組織列表 | |
---|---|
D2前端技術論壇 | |
WebReBuild | http://webrebuild.org |
Velocity | http://velocity.oreilly.com.cn |
JSCONF.CN | http://jsconf.cn/ |
阿里技術嘉年華 | http://adc.taobao.com |
中國CSS開發者大會 | http://css.w3ctech.com/ |
w3ctech | http://www.w3ctech.com/event |
HTML5夢工廠 | http://www.html5dw.com/ |
前端圈 | http://www.fequan.com/ |
QCon北京 | http://qconbeijing.com/ |
QCon上海 | http://qconshanghai.com/ |
QCon@InfoQ | http://www.infoq.com/cn/qcon |
ArchSummit | http://www.archsummit.com/ |
阿里技術沙龍 | http://club.alibabatech.org |
Apple WWDC | https://developer.apple.com/wwdc/ |
Google I/O | https://events.google.com/io2015/ |