[转载]Frontend Knowledge Structure
https://github.com/JacksonTian/fks
http://code.csdn.net/news/2819224
本文为大家整理了一系列关于JavaScript的常用工具,包括常用工具、前端和后端工具,从测试到构建,内容丰富,值得收藏。下面是根据推荐工具整理的思维导图。

常规工具
脚手架工具
- Yeoman:它旨在为开发者提供一系列健壮的工具、程序库和工作流,帮助开发者快速构建漂亮的Web应用。
构建工具(自动)
- Grunt.js:生态强大,发展速度快,有大量可选插件;
- Gulp.js:流式项目构建工具;
- Browserify.js:Node.js模块,主要用于改写现有的CommonJS模块,使得浏览器端也可以使用这些模块;
- Uglify.js:JavaScript解析器、压缩工具和代码美化库。
软件包管理工具
- Homebrew (Mac OS):Apple Mac OS下的软件安装工具;
- Apt:Debian、Ubuntu等系列Linux系统的软件包管理工具,可用来安装、删除、升级软件等;
- NPM:Node.js的官方软件包管理器;
- Bower:twitter的一个开源项目,用于web包管理。
前端
MVC框架
- Backbone.js:提Web开发的框架,为复杂的Javascript应用程序提供模型(models)、集合(collections)、视图(views)结构;
- Ember.js:可以创建功能丰富的Web应用程序,并提供一个标准的应用程序架构的JavaScript框架;
- Angular.js:一组用来开发Web页面的框架、模板以及数据绑定和丰富UI的组件,无需进行手工DOM操作,还允许为App扩展HTML类库。
模板
- Handlebars.js:JavaScript页面模板库,可以为开发者提供必需的语义模板;
- Mustache.js:是Mustache模板系统的JavaScript实现,语法逻辑比较简单,适用于C++、Clojure、Erlang、Go、Java、JavaScript等语言;
- Jade:Node模板引擎,主要用于Node.js里的服务端模板;
- Haml-js:允许在JavaScript项目中使用Haml语法,与原生的Haml拥有差不多的功能;
- Eco:可以用来将CoffeeScript逻辑嵌入到标记中。
测试
- Casper.js:CasperJS是一个为PhantomJS和SlimerJS准备的导航脚本及测试工具;
- Zombie.js:Zombie.js是一个轻量级的框架,可以在一个模拟的环境下测试客户端的 JavaScript 代码,且不需要浏览器的帮助。
后端
服务器
数据库
- MongoDB:开源的文档存储数据库,也是领先的非关系型数据库;
- Postgresql:开源的对象-关系数据库服务器;
- SQL:结构化查询语言,可用来存取数据以及查询、更新和管理关系数据库系统。
架构
- RESTful:目前流行的互联网软件架构,结构清晰、易于理解、方便扩展。
测试
- Cucumber.js:采用受欢迎的行为驱动开发工具并将其应用到JavaScript堆栈中。
- Jasmine:行为驱动的开发测试框架,不依赖浏览器、DOM或任何其他JavaScript架构,较适合网站、Node.js项目或应用在任何可以运行JavaScript的地方。
- Mocha:运行在Node.js和浏览器之上,主要用于异步测试。
- Q-Unit:单元测试框架,常用于jQuery、jQuery UI和jQuery移动项目,也可以用于测试常规的JavaScript代码。
断言库(Assertion Libraries)
- Chai:一个用于Node的BDD/TDD断言库(Assertion Libraries),可与任何JavaScript测试框架进行搭配。
函数式编程工具
- Underscore.js:JavaScript库,提供了大量有用的函数编程工具,无需扩展任何内置对象;
- Lo-Dash:提供自定义、性能和一致性的JavaScript库。
大家可以在 Github上查看本推荐列表的最新状况。
Via CodeFellows
延伸阅读
前端技能汇总:https://github.com/JacksonTian/fks
---------------------------------------------------------
Frontend Knowledge Structure
项目起源
还记得@jayli 的这幅前端知识结构图么。
图片的形式具有诸多的不便。缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目。我们可以通过协作的方式来共同维护这个项目。Git的历史记录也可以见证前端行业的一些变迁。
前端开发知识结构
前端工程师
- 浏览器
- 编程语言
- 切页面
- 开发工具
- 编辑器和IDE
- 调试工具
- 版本管理
- 代码质量
- 前端库/框架
- 前端标准/规范
- HTTP/1.1: RFCs 7230-7235
- HTTP/2
- ECMAScript3/5
- W3C: DOM/BOM/XHTML/XML/JSON/JSONP/...
- CommonJS Modules/AMD
- HTML5/CSS3
- Semantic Web
- Web Accessibility
- 性能
- SEO
- 编程知识储备
- 部署流程
- 代码组织
- 类库模块化
- 业务逻辑模块化
- 文件加载
- 模块化预处理器
- 安全
- CSRF/XSS
- CSP
- Same-origin policy
- ADsafe/Caja/Sandbox
- 移动Web
- 前沿技术社区/会议
- D2/WebRebuild
- NodeParty/W3CTech/HTML5梦工厂
- JSConf/沪JS(JSConf.cn)
- QCon/Velocity/SDCC
- JSConf/NodeConf
- CSSConf
- YDN/YUIConf
- HybridApp
- WHATWG
- 计算机知识储备
- 软技能
- 知识管理/总结分享
- 沟通技巧/团队协作
- 需求管理/PM
- 交互设计/可用性/可访问性知识
- 可视化
后端工程师
前端书籍推荐
★越少越简单,越适合入门,★多的要么是难度比较高,要么是比较适合在后面看,比如讲性能之类的书.
CSS
- Eric Meyer 谈 CSS(卷二)★★★
- CSS权威指南 (第3版)★★
- 精通CSS★★★
JavaScript
- JavaScript DOM编程艺术 (第2版)★
- JavaScript高级程序设计(第3版)★★
- 锋利的jQuery★★
- 高性能JavaScript★★★
- JavaScript语言精粹★★★
- JavaScript权威指南★★★
- 编写可维护的JavaScript★★★
- JAVASCRIPT语言精髓与编程实践★★★
- Effective Javascript★★★
- Secrets of the JavaScript Ninja★★★
- JavaScript模式★★★
- JavaScript设计模式★★★★
- 基于MVC的JavaScript Web富应用开发★★★
性能实践
版本控制工具
- 版本控制之道 (git)★★
- Pro Git★★★
- Git权威指南★★★★
后端书籍推荐
Linux管理
- Linux 系统管理技术手册
- 鸟哥的 Linux 私房菜
- Linux 101 Hacks
- UNIX Shell Scripting
- The Linux Command Line
- Linux Network Administrator's Guide
Linux编程
- Linux程序设计
- Linux系统编程
- Unix环境高级编程
- Unix编程艺术
- The Linux Programming Interface
- 程序员的自我修养
- 深入理解Linux内核
- Unix网络编程
- TCP/IP高级编程
C/C++
- Linux C编程一站式学习
- C和指针
- C陷阱与缺陷
- C专家编程
- C语言核心技术
- 彻底搞定C指针
- 征服C指针
- C++编程思想
- 高质量程序设计指南---C/C++语言
- Inside the C++ Object Model
- A Tour of C++
- The C++ Programming Language
- The C++ Standard Library - A Tutorial and Reference
- The C++ Standard (INCITS/ISO/IEC 14882-2011)
- Overview of the New C++
前端工作面试
[转载]Frontend Knowledge Structure的更多相关文章
- 前端技能汇总 Frontend Knowledge Structure
Frontend Knowledge Structure 项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有 ...
- 无废话网页重构系列——(2)来套Web重构装备
本篇主要从语言入门.规范.工具.构建.库.框架.版本控制等各方面展开,篇幅会有点长,涉及到的工具类,会另开博文详细介绍. 另外说明Web重构是Web前端的开始,主要侧重Web页面,如实现布局与兼容,符 ...
- web前端知识总结
前言: 一直想着整理一下关于前端的知识体系和资料,工作忙了些,挤挤总会有的,资料很多,就看你能不能耐下心坚持去学了,要多学多敲多想,祝你进步~ 学习之前首先要大概了解什么是HTML ,CSS , JS ...
- 2016 JS 笔试题汇总:
1 1 1 CS&S(中软国际): 1 JavaScript 循环表达式: 2 JavaScript表达式boolean返回值: 3 网页中的事件/HTML 事件属性/JavaScript ...
- A simple test
博士生课程报告 视觉信息检索技术 博 士 生:施 智 平 指导老师:史忠植 研究员 中国科学院计算技术研究所 2005年1月 目 ...
- October 27th, 2017 Week 43rd Friday
The only thing predictable about life is its unpredictability. 人生唯一可以预知的,就是它的变化莫测. Is it really unpr ...
- [转载] TLS协议分析 与 现代加密通信协议设计
https://blog.helong.info/blog/2015/09/06/tls-protocol-analysis-and-crypto-protocol-design/?from=time ...
- 最少知识原则(Least Knowledge Principle)
最少知识原则(Least Knowledge Principle),或者称迪米特法则(Law of Demeter),是一种面向对象程序设计的指导原则,它描述了一种保持代码松耦合的策略.其可简单的归纳 ...
- [转载] .NET 中可以有类似 JVM 的幻像引用吗?
近日发现一篇不错的文章,文中列举了一些 GC 场景,探讨了 在 .NET 中是需要实现像 JVM 的中的幻像引用.有人质疑其不切实际,也有像 Ayende 大神一言不合就自己做了个 demo. Do ...
随机推荐
- Android 测试之Monkey
一.什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进 ...
- EOS开发基础之一:源代码下载与开发环境搭建
区块链最近挺火的,我又是个非常缺钱的人,所以紧跟了潮流一头扎进区块链的研究中. 这EOS项目是目前比较火的一个项目,相信很多朋友拿到这份EOS的源代码后都会一脸懵逼,因为……这代码写得太高级了,老纸看 ...
- 如何解决python连接数据库编码问题(python传数据到mysql乱码)'ascii' codec can't encode _mysql_exceptions.OperationalError: (1366, "Incorrect string value:?
首先描述下问题: 在使用python计算出结果后将结果插入到mysql过程中,报如下错误.原因很好定位就是编码的问题.那么到底是编码哪里出了问题了呢? 报错如上: 排查顺序: 第一:python的编 ...
- PAT甲题题解-1033. To Fill or Not to Fill (25)-模拟
模拟先说一下例子,最后为方便起见,在目的地安增加一个费用为0的加油站0 1 2 3 4 5 6 7 87.1 7.0 7.2 6.85 7.5 7.0 7.3 6.0 00 150 200 300 4 ...
- underscore.js源码解析(一)
一直想针对一个框架的源码好好的学习一下编程思想和技巧,提高一下自己的水平,但是看过一些框架的源码,都感觉看的莫名其妙,看不太懂,最后找到这个underscore.js由于这个比较简短,一千多行,而且读 ...
- 团队项目M1展示成绩和Week 10分数
根据M1项目评审的分数,分档打分得到的M1项目成绩.
- [2017BUAA软工助教]个人得分总表(至alpha结束)
一.表 学号 第0次 week1 week2 week3 个人项目 附加1 结对项目 附加2 a团队 a团队得分 a贡献分 总分(不计) 总分(记) 15061119 7 9.5 12 9 45.75 ...
- 20135202闫佳歆--week4 系统调用(上)--学习笔记
此为个人笔记存档 week 4 系统调用(上) 一.用户态.内核态和中断处理过程 用户通过库函数与系统调用联系起来. 1.内核态 在高执行级别下,代码可以执行特权指令,访问任意的物理地址. 2.用户态 ...
- python数据分析所需要了解的操作。
import pandas as pd data_forest_fires = pd.read_csv("data/forestfires.csv", encoding='gbk' ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作
一.关于 Python Python 是全球使用人数增长最快的编程语言!它易于入门.功能强大,从 Web 后端 到 数据分析.人工智能,到处都能看到 Python 的身影. Python 有两个主要的 ...