「自生长」的

前端研发生态环境

Self-growing development enviroment for Web Front-end

About me: 赵望野

2011 年加入豌豆实验室

 

豌豆荚 Windows 版 v1.0

豌豆荚 Windows 版 v2.0

豌豆荚应用搜索 v1.0

...

 

Web Front-end Infrastructure

十年前的前端开发

现在的前端开发

面临的问题

1. 规模膨胀,scalable 要求提高

2. 业务复杂,robust 要求提高

3. 快速迭代,efficient 要求提高

统一的前端研发生态环境,能够自生长

Solution

Tools + Rules

Speed is everything. 

开发快,提代码快,部署快

加载块,解析快

发现问题快,修复快

把大象装进冰箱分几步?

如何分解研发生态环境?

三个环境 + 三条线路

开发环境

运行环境

生产环境

开发环境

1. Project Scaffolding

2. Dependencies Management

3. Development Environment Scaffolding

4. Pre-processors

5. All things live - Live Reload, Live Build, Live Test

6. Test, maybe x-browsers, also headless

7. Build - JSLint, Concat, Uglify, Image Optimize, SASS Build, Sprite Generation, Asserts Revisioning

8. Deploy

Project Scaffolding

Yo Generator

# npm install -g yo
# npm install -g generator-***
# yo generator-***

Dependencies Management

Bower

# bower install backbone --save

Development Environment Scaffolding

NPM

# npm install

Pre-Processors

SASS\LESS     CoffeeScript     JSX     JADE

Recommendation: Compass Framework

File Mutation Watch

Live Reload

CSS

JavaScript

Images

HTML

...

Test

Karmar Runner + Mocha

「我的程序没有 BUG」

「测试是懦夫的行为」

「那是 QA 的工作」

「你用的姿势不对」

Unit Test

UI Test

Contract Test

...

Build

Grunt     Gulp

# grunt build:staging
# grunt build:production

打包

预处理

合并

压缩

Revision

...

Deploy

Amazon S3     Self-host Enviroment

Domino

生产环境

加载

负载均衡

安全

CDN

监控

服务器监控

应用监控

New Relic

New Relic

New Relic

Amazon S3 as CDN Source

运行环境

数据的收集->分析->改进

RUM

Performance

Online Exception

Pingdom

BugSnag

Google Analytics

低耦合

Feature Focus

可替代性

可扩展性

自趋完善

「自生长」

提高前端工程师的生活幸福指数

提高效率

Focus 在产品本身

Thanks!

Q&A

Email: wangye.zhao@wandoujia.com

Twitter: @wangyezhao

Weibo: @赵望野

「自生长」的前端研发生态环境

By Wangye Zhao

「自生长」的前端研发生态环境

  • 5,772