前端开发环境与最佳实践




目标

=========================
标准化、自动化、最优化----以WEB设计取代传统桌面程序界面设计


开发语言:javascript

============================
WEB时代的主流语言,最灵活的语言,社区最旺盛的语言。使用基于标准EMCAscript5的部分。部分领域可使用可编译为JS的变种语言,如coffeeScript等。

版本管理系统

===============================
开源平台使用Github,私有平台推荐使用CSDN CODE。

IDE: WebStorm

========================
集成了众多工具,十分强大,号称“前端神器”。开发其他语言或快速写代码可用SublimeText。
网上有各平台的安装包/破解补丁,照着说明安装就是了。



NodeJS和NPM

===============
NodeJs严格说是后端,但我经常把它放在客户端和浏览器共同工作,组成了广义的“前端”。这是运行基础。NPM是node的包管理器,以后作为我安装和发布软件的基地。
由于一些特殊的网络环境,直接通过npm install命令安装第三方库的时候,经常会出现卡死的状态。幸运的是国内CNode社区的@fire9同学利用空余时间搭建了一个镜像的NPM资源库,服务器架设在日本,可以绕过某些不必要的网络问题。你可以通过以下这条命令来安装第三方库:

npm --registry "http://npm.hacknodejs.com/" install underscore
如果你想将它设为默认的资源库,运行下面这条命令即可:

npm config set registry "http://npm.hacknodejs.com/"

设置之后每次安装时就可以不用带上—registry参数。值得一提的是还有另一个镜像可用,该镜像地址是http://registry.npmjs.vitecho.com,如需使用,替换上面两行命令的地址即可。

Nodejs领域: qunit做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理。

Grunt

==================
任务运行器。要想项目自动化地执行各种任务和测试,拥有一个符合开源规范的文件结构,请用Grunt。
注:英文官网(http://gruntjs.com/)说得比grunt中文网详细些。
安装grunt,均通过nodeJS的npm。

在全局环境中安装 Grunt 的命令行接口。
npm install -g grunt-cli
下载一个grunt范例项目,如https://github.com/cowboy/jquery-tiny-pubsub
在它的根目录下,运行 sudo npm install 安装项目依赖库;
*qunit这个依赖库(连同其WEB框架phantomJS)可能安装不上,可运行 npm install 单独安装;
npm install grunt-contrib-qunit --save-dev
(事实上所有依赖库都可以在https://github.com/gruntjs里找到)。
安装必要的grunt插件
npm install grunt --save-dev

好了,安装完毕,可以测试了。
在项目根目录下运行 grunt,测试结果就会显示出来。


项目构建工具Yeoman

=============================
Yeoman是Google的团队和外部贡献者团队合作开发的,他的目标是自动搭建一个项目的主要结构,建立合理的工作流,管理各种依赖关系/包,自动化运行各种检查和测试等, 优化代码和图片等。

Yeoman其实是集成了一大堆开源工具(这些工具均有各自社区维护),主要有三部分组成:yo(脚手架工具)、grunt(一个用于开发任务自动化的命令行工具)、bower(包管理器)(当然也可以使用npm)。这三个工具是分别独立开发的,但是需要配合使用,来实现我们高效的工作流模式。

YOMAN的特性

闪电般的初始化:项目开始阶段,可以基于现有的模板框架(例如:HTML5 Bolierplate、Twitter Bootstrap)进行项目初始化的快速构建。
了不起的构建流程:不仅仅包括JS、CSS代码的压缩、合并,还可以对图片和HTML文件进行优化,同时对CoffeScript和Compass的文件进行编译。
自动编译CoffeScript和Compass:通过LiveReload进程可以对源文件发生的改动自动编译,完成后刷新浏览器。
自动Lint代码:对于JS代码会自动进行JSLint测试,确保代码符合最佳编程实践。
内置的预览服务器:不再需要自己配置服务器了,使用内置的就可以快速预览。
惊人的图片优化:通过使用OptiPNG和JPEGTran来优化图片,减少下载损耗。
杀手级包管理:通过bower search,可以快速安装和更新相关的文件,不再需要打开浏览器自己搜索了。
PhantomJS单元测试:可以非常方便的使用PhantomJS进行单元测试,一切在项目初始的时候都准备好了。

官网http://yeoman.io

Yeoman的安装(Linux平台):
只需一行sudo npm install -g yo
这将使yeoman被全局安装在usr/local/lib/node_modules/yo 下面,从任何地方均可访问。

安装项目模板
Yeoman有很多基本的模板引擎(generator),如AngularJs的,mobile的等,安装一个模板引擎就等于搭好了一个项目的脚手架。
我们可以先安装一个基本webapp模板看看。只需输入命令:
sudo npm -g install generator-webapp //这等于安装了模板引擎,奇怪的是它不在上述的/yo里面,而也在usr/local/lib/node_modules文件夹下。
然后新建一个项目文件夹,进入这个文件夹后,运行 yo webapp 就可以自动搭建一个基本的webapp了,各种文件都已经建好了,包括index.html, test, css, package.json和gruntfile.js。其实是通过npm自动下载安装和很多库,包括 HTML5 Boilerplate, jQuery, Modernizr, and Bootstrap.注意,这个模板是用Mocha做测试框架的。
这时,你可以通过运行grunt serve 来启动一个WEB服务器(运行在9000端口),浏览你的项目了。
打开浏览器,访问http://localhost:9999, 一个简单的网站就出现在你面前!更改内容后,还是自动刷新的。(但你不能终止命令行端的WEB服务器,否则页面就无法访问了).
然后可以用grunt test命令来启动自动测试。

自动测试工具Karma

=======================
Karma是一个测试运行器(Test Runner),可以自动运行用各种测试框架(如jasmine/qunit/mocha)编制的测试集,并立即反馈结果,十分适合前端的测试驱动开发(TDD)。被认为是所有前端测试工具中的王牌。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。
官网:http://karma-runner.github.io/ GIT主页:https://github.com/karma-runner/karma

当然,你可以通过$ npm install karma --save-dev 将karma安装在本地文件夹中,但更简便的方式是通过yeoman安装angular模板,其中自带了karma,而且配置好了!

通过Yeoman安装十分简便。首先安装generator-angular:
$sudo npm install -g generator-angular
这将在usr/local/lib/node_modules中安装generator-angular和generator-karma两个模板引擎。
注意:安装选项中不要选sass/compass,因为这需要ruby配合。没装ruby就无法运行服务器。
安装好后,运行grunt,将在/dist中生成可发布的版本。 运行grunt -serve,启动服务器;运行grunt test,启动karma unit test。
注意:默认的generator-angular生成的模板是使用PhantomJS(一个没有界面的JS解释器)进行浏览器模拟,这样测试比较快,但不能完全测试在目标浏览器内的表现,而且测试结果是在控制台显示的。如果要在真实浏览器内测试,需要安装相应的Karma插件。比如karma-chrome-launcher,并修改karma.conf.js:
browsers: [
//'PhantomJS'
'Chrome'
],

// Which plugins to enable
plugins: [
//'karma-phantomjs-launcher',
'karma-chrome-launcher',
'karma-jasmine'
],

单元测试框架Jasmine

========================
好的单元测试框架是TDD成功的一半。Javascript优秀的测试框架很多, 包括Jasmine,Qunit,JsTestDriver,JSUnit,Mocha等,当然你也可以写自己的单元测试框架。经过对比,Jasmine是其中的佼佼者,我喜欢Jasmine的断言风格,而且它也集成在generator-angular里面,无需另行配置。这是karma.conf.js中缺省设置的:
// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['jasmine'],
......
// Which plugins to enable
plugins: [
//'karma-phantomjs-launcher',
'karma-chrome-launcher',
'karma-jasmine'
],
当然,如果你喜欢qunit或其他单元测试框架,你可以修改framework选项并安装相应的karma插件来实现。

Chrome调试插件Batarang

=======================
方便的实时调试工具,可以调试AngularJS元素。通过Chrome的plugin平台安装,然后在tools-developer tools中就有angularJS选项了。

必备的框架和库

========================
AngularJs, 前端基础MVC框架。其directive可以编写DSL(面向领域语言)。
jQuery,这个不用说了,操作DOM的神器,开发前端必备。
bootstrap, 标准化的UI,用起来很方便。相关的设计库有一大堆,都在http://www.bootcss.com/
Underscore 一个强悍的JavaScript实用库,包括80多个工具函数,涉及数组、对象、字符串、函数操作等。其中的template可以通过JSON数据源生成复杂的HTML。
Math.js 强大的数学计算库。虽然javascript本身有一些数学函数,如开平方、三角函数等,但比较简单。Math.js带来了处理数字、大数、复数、单位和矩阵的内置工具,使应用程序开发中的数学处理变得简单。
EJDB: 嵌入式NoSQL数据库。通过Node.js访问。
ECharts:种类最全的图表库,大数据时代最快速的数据可视化工具。
ZRender:一个轻量级的Canvas库,实现多种绘图和动画功能,MVC封装,事件驱动,提供类DOM事件模型。
jsPDF: 生成PDF的库
three.js:是JavaScript编写的WebGL第三方库。提供了非常多的3D显示功能。Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。

各种javascript库就像取之不尽的百宝箱,就看你想用什么了……


模块化管理-Sea.js

=================

最好用的浏览器端模块化管理工具。如果node.js运行在本地,可以只使用node.js的。


CSS预编译器--Stylus

=========================
使用CSS预编译器可以象编程一样编写CSS,极大方便了大型CSS的组织,并可以做到强大而灵活。在三大CSS预编译器SASS/LESS/STYLUS中,SASS基于Ruby,LESS功能较弱,而Stylus出自nodeJS社区,书写简洁,可编程性最强,而且有nib这样的CSS3库支持。所以选择Stylus。
关于三大预处理器的对比,请阅读http://www.cn-sass.com/css/css-preprocessor-sass-vs-less-stylus-2.html。
Stylus官网:http://learnboost.github.io/stylus/
nib库官网:http://visionmedia.github.io/nib/
中文学习网站:http://www.zhangxinxu.com/jq/stylus/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值