Front-end Technology

Author: YHTML5

echarts3 shadow

Front-end is a GUI software

Now the front-end can be described as all-encompassing, products Morphological variety, covered a very wide, what is the underlying library / framework on the tall, cool drag propaganda page, as well as fried Cock day game ......

However, one or two small projects in these files is not the main scenarios of front-end technology, the more commercial value is complex Web applications,

They are functional, user range, to provide users with a complete product experience, it may be news aggregation site, you may be online shopping platform, it may be social networking, may be financial credit applications, it may be music to interact with the community, it may be video uploads and sharing platform ......

Such a complex Web applications, easily tens of hundreds of people to develop maintained its front-end interface is often considerable size, quantities less than the average traditional GUI software.

前端组件化开发理念

1. 页面上的每个 独立的 可视/可交互区域视为一个组件


2. 每个组件对应一个工程目录,组件所需的各种资源都在这个目录下就近维护


3. 由于组件具有独立性,因此组件与组件之间可以 自由组合


4. 页面只不过是组件的容器,负责组合组件形成功能完整的界面


5. 当不需要某个组件,或者想要替换组件时,可以整个目录删除/替换

前端组件化开发理念

1. 组件之间互相解耦


2. 多线程,并线开发


3. 可拓展,可维护,可测试


4. 任务颗粒化,更好管理项目进度


5. 支持多个团队共同进行一个大型站点的开发

前端组件化开发理念

名称说明举例
JS模块独立的算法和数据单元浏览器环境检测(detect),网络请求(ajax),应用配置(config),DOM操作(dom),工具函数(utils),以及组件里的JS单元
CSS模块独立的功能性样式单元栅格系统(grid),字体图标(icon-fonts),动画样式(animate),以及组件里的CSS单元
UI组件独立的可视/可交互功能单元页头(header),页尾(footer),导航栏(nav),搜索框(search)
页面前端这种GUI软件的界面状态,是UI组件的容器首页(index), 登录页(login), 列表页(list), 用户管理(user)
应用整个项目或整个站点被称之为应用,由多个页面组成Web Application

前端组件化开发理念

1. 整个Web应用由页面组成


2. 页面由组件组成


3. 一个组件一个目录,资源就近维护


4. 组件可组合,组件的JS可依赖其他JS模块,CSS可依赖其他CSS单元


智能静态资源管理

前端是一种远程部署,运行时增量下载的GUI软件


模块/组件加载的技术


资源加载策略:按需加载、延迟加载、预加载、请求合并


淘宝官网


前端性能优化,这是非常重要的话题. 由于前端GUI应用具有免安装,渐进更新等特点,这是它区别于其它GUI软件的最大的特点.

每个参与过开发企业级web应用的前后端工程师都需要思考的前端性能优化方面的问题。

我们有雅虎14条性能优化原则,还有两本很经典的性能优化指导书:《高性能网站建设指南》、《高性能网站建设进阶指南》。

经验丰富的工程师对于前端性能优化方法耳濡目染,基本都能一一列举出来。这些性能优化原则大概是在7年前提出的,

对于web性能优化至今都有非常重要的指导意义。

为什么要进行性能优化?

用户体验丨等待每多一秒,用户就少一分耐心

影响SEO丨国际一些主流搜索引擎已将页面加载速度纳入搜索排名的标准

减少APP体积, 提高产品性能

那么问题来了, 如何进行 前端性能优化

对于构建大型web应用的团队来说,要坚持贯彻这些优化原则并不是一件十分容易的事。

因为优化原则中很多要求是与工程管理相违背的,比如 把css放在头部 和 把js放在尾部这两条原则,

我们不能让团队的工程师在写样式和脚本引用的时候都去修改一个相同的页面文件。

这样做会严重影响团队成员间并行开发的效率,尤其是在团队有版本管理的情况下,每天要花大量的时间进行代码修改合并,这项成本是难以接受的。

因此在前端工程界,总会看到周期性的性能优化工作,每一次版本迭代, 根据优化原则做一次性能优化。

性能优化是一个工程问题

性能优化原则及分类丨demo

首先,我们把 雅虎14条优化原则,《高性能网站建设指南》以及《高性能网站建设进阶指南》中提到的优化点做一次梳理,

按照优化方向分类,可以得到这样一张表格

优化方向优化手段
请求数量合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域
请求带宽开启GZip,精简JavaScript,移除重复脚本,图像优化
缓存利用使用CDN,使用外部JavaScript和CSS,添加Expires头, 减少DNS查找,配置ETag,使AjaX可缓存
页面结构将样式表放在顶部,将脚本放在底部,尽早刷新文档的输出
代码校验避免CSS表达式,避免重定向

极致的前端

合适的技术选型丨angular.js, vue.js, react.js

统一代码规范标准丨统一命名方式, 统一的API风格, 各模块各组件之间互相解耦, 代码复用度高

基于大数据分析丨异步加载资源, 预加载机制

硬件加速丨如果数据渲染过多,开启CPU加速; 大量CSS,开启GPU加速

总结:

其实在前端开发工程管理领域还有很多细节值得探索和挖掘,提升前端团队生产力水平并不是一句空话,

它需要我们能对前端开发及代码运行有更深刻的认识,对性能优化原则有更细致的分析与研究。

在前端工程化开发的所有环节均有可节省的人力成本,这些成本非常可观,相信现在很多大型互联网公司也都有了这样的共识。

今天讲的这些只是将这个领域中很小的一部分知识的展开讨论,抛砖引玉,希望能为大家提供一种构建大型Web网站的思路

Development is just a small part of the front end

With ECMAScript 6, HTML5, HTTP2.0 finalized


Growth browser with support for mobile devices,the front end being upheaval.


Exploration on the front end of the road I never stop the pace.

Get Started

HTML基础知识讲解

1. HTML发展历史


2. HTML5简介


3. HTML5的优势


4. HTML5的新特性


HTML发展历史

1. 2007年发布的iphone拒绝支持Flash,只支持HTML5


2. 2011年Adobe宣布放弃Flash的移动端项目,转而开发H5工具。H5就是为了Web App而生的,H5的强势崛起将成为移动互联网未来趋势


HTML5简介

HTML5(Hypertext Markup Language)是超文本标记语言(HTML)第5次重大修改。是一个新的网络标准,现在仍处于发展阶段。

HTML5 将成为 HTML、XHTML 以及 HTML DOM 的新标准。

目标是取代现有的HTML 4.01和XHTML 1.0 标准。

它希望能够减少互联网应用(RIA)对Flash、Silverlight、JavaFX等的依赖,并且提供更多能有效增强网络应用的API。

HTML5的优势

1、多设备跨平台


跨平台性非常强大,可以轻易的移植,这也是大多数人对HTML5有兴趣的主要原因


2、自适应网页设计


“一次设计,普遍适用”,让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整布局(layout)。


3、即时更新


游戏客户端每次都要更新,很麻烦。可是更新HTML5游戏就好像更新页面一样,是马上的、即时的更新。


4、多媒体


可以给站点带来更多的多媒体元素(视频和音频),且非常方便。


HTML5的新特性

* 新增meta属性,实现响应式布局


meta name="viewport" content="width=device-width, initial-scale=1


1、用于绘画的 canvas 元素(用于动画,游戏,以及动态地图)


2、多媒体应用如: video 和 audio (减少对外部插件的需求(比如 Flash)


3、对本地存储、离线存储的更好的支持(如kindle,记住用户名、密码等)


4、新增元素,比如 article、footer、header、nav、aside、section、mark、time等


5、新增表单控件,比如 color、date、time、email、url、search、range等


6、废除的元素,比如 big center font等可以用css代替,再比如不再使用frame框架,由于框架对网页可用性存在负面影响。只可以用iFrame,用服务器方在同一个页面加载不同页面。


synergy

cooperation

一份让工程师泪流满面的标注

1、始终遵循,视觉逻辑符合工程师的开发逻辑。


2、合理划分,再复杂的页面,用三步也足够能说清楚,信息不要挤在一起。


3、响应式设计(考虑到页面在不同屏幕大小下的变化,间距是否固定,比例是否缩放,图片和按钮宽度是否自适应。)


4、任何细节和要求都写清楚写清楚,任何决定都要有据可查,不用让程序员“意会”设计师的设计。


5、每一个标注本身也要注意对齐方式,更干净整洁的标注能让大家一眼找到所需。


header

RD与PM的一场爱恨纠葛—人人都是产品经理

*了解web产品的一些技术知识

B/S结构 、 技术框架 、 模版引擎 、 插件拓展 、 API


*项目是我们共同的孩子

我们往往忽视了一个问题:大家的命运都和项目息息相关。RD对项目的关注程度和倾注的感情,并不比PM少; RD对产品的期望也不比PM低。


*理解程序,理解程序员

其实任何需求都是有开发成本的,而这个成本在大部分情况下,是连同RD的其他人都无法准确估计和预测的。——“你就那个那个啥一下,很简单。”


*避免误区

双方切忌“打嘴炮”,不论是RD和PM,都要从实际出发——以务实为基础,以精益求精为动力,为项目保驾护航。


header

欢迎补充~

header

欢迎补充~

header

The next theme, we share them

Thank you for listening