Web前端开发
由于互联网的各种兴起,网页开发似乎也火了,催生了github上各种js的轮子,各种重复,各种框架和库,什么Jquery,bootstrap等等。面对这么多框架和库我们在工程上该如何取舍(trade-off)呢?每个框架的诞生基本上都会有它自己的“新概念”,主要是解决一些问题。比如如果你原生js写的多,很多重复的操作写得枯燥麻烦了,你可以考虑用Jquery,因为Jquery就是一些经典的,常用的js代码集合,也就是帮你封装了很多功能,其实它主要是一个DOM的Wrapper,以DOM操作为核心的库。
Jquery-------一些经典js的封装,以操作DOM为核心理念的库。而且围绕它展开的有很多插件,组件,写表格和各种UI控件帮你不少忙。优点是帮你解决了大量的浏览器兼容问题和各种BUG。不过此货已经差不多过时了,不过不代表就不能用。
Zepto.js------------也是一些经典js的封装,不过主要是给移动手机浏览器推出的。跟Jquery类似。
CSS用来编程-------less ,Sass , Stylus, absurd
bootstrap-------推特推出的,是一些经典js,CSS,Html的集合,用作不太懂前端美工的程序员快速做出来一个看得过去的应用的。有各种按钮或者其他的CSS样例。
嫌弃代码组织结构不好----------------可以考虑用backbone.js(基于MVC),AngularJS和Ember.js(MVVM), Twitter还搞了个事件驱动框架Flight(https://github.com/flightjs/flight)
库用多了需要优化加载-------------------用RequireJS
代码质量问题,需要做单元测试---------Jasmine,QUnit,Mocha,Karma(各种浏览器都测)
觉得js麻烦的------------用CoffeScript
做动画,Canvas,SVG或CCS3,干掉Flash,SVG太难画了?用Snap.svg,想开发游戏?用Canvas,自己写的FPS太低了?用CreateJS,2D不能装逼?用three.js帮你用WebGL开发3D。还不够?用asm.js,让你在浏览器中也能跟UnrealEnginne 3比肩。
想用Web技术做PC桌面应用,抛弃Qt? 用Node-Webkit。想用js写服务器端?用node.js(就是为高并发场景设计的,不过后端业务逻辑场景还是用java等静态语言完成),node.js很出彩,很多大型高并发网站都用了它。
说了那么多,其实前端轮子很多,都不用自己造,基本上。不过js,CSS,html的功底必须打牢。我也是才现学现卖了一点。