背景介绍
JavaScript 诞生于 1995 年。它当时的目的是为了验证表单输入的验证,当时在服务器端的Rhino不流行,主要运用客户端。经过许多年的发展,JavaScript 从一个简单的输入验证成为一门强大的编程语言。
2005 年 Jesse James Garrett 发表的一篇文章里介绍了一种技术Ajax。这种技术能够让请求服务器额外的数据无须刷新,会带来更好的用户体验,一时间,席卷全球。
2009 年 Ryan Dahl使用基于Google V8引擎编写了Node.js,使用libuv封装了Windows的IOCP及Unix的libev实现跨平台。基于Node.js产生了许多新的技术,例如基于Node.js的TypeScript语言编写的AngularJS,基于Node.js的Webpack打包工具用来构建Vue.js,基于Node.js的构建跨平台的桌面应用Electron。
随着Node.js的出现,前端越来越火爆,随之产生的技术栈已经远远超越后端,下面简要列举一些业界常用的。
语言核心
- ECMAScript 3
- ECMAScript 5
- ECMAScript 6
规范
- CommonJS
- ES6
- AMD
- CMD
扩展语言
- TypeScript
- CoffeeScript
- JSX
Web框架
- Express
- Koa
- Egg
- ThinkJS
- Meteor
- SailsJS
前端三大框架
- Vue.js
- React
- Aungluar
函数式编程
- underscore
- loadash
异步编程
- Promise
- Generator + co
- Async/Await
构建工具
- NPM Scripts
- webpack
- gulp
- grunt
- fis
- RequireJS
- rollup
- Parcel
命令行工具
- browserify
- pkg
- Yoman
- Bower
- Browser-run
- LiveServer
- Babel
- Yargs
- hexo
- gitbook
实时通信
- Socket.io
- SockJS
测试框架
- ava.js
- Mocha
- nodeunit
CSS框架
- BootStrap
- Element
- pintuer
- Bulma
CSS预处理
- Sass
- Less
- Stylus
- PostCSS
Html预处理
- Pug
- EJS
- Handlebars
代码优化
- CSS Lint
- JSHint
- JSLint
- UglifyJS
- Prepack
服务器布署
- pm2
- forever
- supervisor
数据库
- MongoDB
- LevelDb
- CouchDB
文本处理
- Underscore.string
- incov-lite
其他
- Moment.js
- RunKit
- JSDoc
对于这么多技术,大部分类似的技术只需挑选一两个合适的掌握就好,比如CSS预处理语言我选的是Sass,基于Sass的框架有Compass,Bourbon和Susy。我选择Compass。有些需要掌握几个相互串联的技术,如Web框架则需掌握Express+Koa+Egg或Express+Koa+ThinkJS,Koa基于Express,Egg和ThinkJS都是基于Koa。
作为PHPer的我,近两年也将精力转向了前端。做前端开发,发现在Windows上实在是不太友好,主要是Windows上的Bash都不太好。Git Bash,Cmder,Hyper都不能完美替代Linux上的Bash,不能很好地运行我最爱的Vim编辑器和Emacs操作系统。
Vim上居然给我显示这个Microsoft Windows [版本 6.1.7601]
。Ctrl+C时显示终止批处理操作吗(Y/N)?
,真是麻烦。也试过将Windows上的磁盘同步到Vagrant CentOS上,在Vagrant上安装了Linux的npm包,有时需要在Windows上调试,感觉还是不太好用。于是想到了前端工程师必备的Mac,前端时间买了MacBook,于是有了两台电脑,想找到一个好的方法可以同时使用Windows和Mac,在Windows上使用TightVNC连接Mac和在Mac上使用Microsoft Remote Desktop连接Windows,网速慢的时候比较卡,而且占用屏幕空间。直到最近我发现了一个神器Synergy,这个软件可以在两台电脑上用一套鼠标和键盘,完全不用占用网络和屏幕空间,直接可以把一台电脑上的鼠标移到另一台电脑上,使用同一个键盘打字,使用同一个剪切板粘贴文字,简直Perfect。有了这个软件,从此工作效率极大提升。
以下是我Mac上的Vim和Spacemacs,简直太好用了。
剪切板增强(Synergy-clipbaord)
Synergy是个开源软件,最后一个免费版本是1.5.0,后面的版本收费但仍开源。我的是在脚本之家上下载的1.5.0版本。经测试两个版本必须一致才能共用剪切板,剪切板只能剪切文字,至于网上说的可以直接把Windows上的文件拖到Mac上发现用不了;不同版本只能共用键鼠,无法共用剪切板。
用了一段时间后,经常在Windows上浏览网页,在Mac上写代码,有时代码中包含太长的字符串字面量,就会直接在Windows上复制在Mac上粘贴,发现在网页上复制的文字在Mac上无法粘贴,于是粘贴到Notepad++在复制粘贴就可以了,不过这显然太麻烦了。于是就自己动手写了个小工具,见 https://github.com/NetworkRanger/synergy-clipboard 。运行这个工具就可以在Windows浏览器上复制的文字直接粘贴到Mac上。以下是源代码:
1 |
|
呵呵,以后就可以方便地同时使用Windows与Mac两台电脑了~~~