精华内容
下载资源
问答
  • 现代前端技术解析

    2019-03-07 15:51:16
    前端知识体系主要包含html(h5)、 css(ccs3)、js(es6)、前端js库(比如jquery)、前端样式库(如bootstrap)、前端...模块化/组件化开发之后,我们最终要解决的,就是模块/组件加载的技术问题。然而前端与客户端GUI软...

    前端知识体系主要包含html(h5)、
    css(ccs3)、js(es6)、前端js库(比如jquery)、前端样式库(如bootstrap)、前端框架(angular、react、vue)、
    移动端开发、模块化、组建化、工程化、前端安全、前端性能

    在这里插入图片描述

    1. 模块化
    2. 组件化
    3. “智能”加载静态资源(性能优化)
      模块化/组件化开发之后,我们最终要解决的,就是模块/组件加载的技术问题。然而前端与客户端GUI软件有一个很大的不同:前端是一种远程部署,运行时增量下载的GUI软件。
      如果用户第一次访问页面就强制其加载全站静态资源再展示,相信会有很多用户因为失去耐心而流失。根据“增量”的原则,我们应该精心规划每个页面的资源加载策略,使得用户无论访问哪个页面都能按需加载页面所需资源,没访问过的无需加载,访问过的可以缓存复用,最终带来流畅的应用体验。
      这正是Web应用“免安装”的魅力所在。
      由“增量”原则引申出的前端优化技巧几乎成为了性能优化的核心。

    有加载相关的按需加载、延迟加载、预加载、请求合并等策略;
    有缓存相关的浏览器缓存利用,缓存更新、缓存共享、非覆盖式发布等方案;

    还有复杂的BigRender、BigPipe、Quickling、PageCache等技术。
    这些优化方案无不围绕着如何将增量原则做到极致而展开。

    1. 规范化
      规范化其实是工程化中很重要的一个部分,项目初期规范制定的好坏会直接影响到后期的开发质量。

    目录结构的制定
    编码规范
    前后端接口规范
    文档规范
    组件管理
    Git分支管理
    Commit描述规范
    定期CodeReview
    视觉图标规范

    1. 自动化
      任何简单机械的重复劳动都应该让机器去完成。

    图标合并
    持续集成
    自动化构建
    自动化部署
    自动化测试

    在这里插入图片描述

    作者:黎贝卡beka
    链接:https://www.jianshu.com/p/0d0f268ec73d
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    展开全文
  • 现代前端技术解析》在前端知识体系上做了很好的总结和梳理,涵盖了现代前端技术绝大部分的知识内容,起到一个启蒙作用,能帮助读者快速把握前端技术的整个脉络,培养更完善的体系化思维,掌握更多灵活的前端代码...
  • 现代前端技术解析》在前端知识体系上做了很好的总结和梳理,涵盖了现代前端技术绝大部分的知识内容,起到一个启蒙作用,能帮助读者快速把握前端技术的整个脉络,培养更完善的体系化思维,掌握更多灵活的前端代码...
  • 现代前端技术解析》第6章阅读笔记 笔记章节目录 第1章 Web前端技术基础 第2章 前端与协议 第3章 前端三层结构与应用 第4章 现代前端交互框架 第5章 前端项目与技术实践 一(5.1 前端开发规范) 二(5.2 前端...

    《现代前端技术解析》第6章阅读笔记


    • 笔记章节目录

    • 2020/02/25

    6.1 JS跨后端实现技术

    (p284 - 297)

    • Node后端开发基础知识和技术: (p285 - 288)

      • 服务器基础知识;
      • 简单的数据库设计能力;
      • 后端MVC设计理念;
      • 后端异步;
      • 模块化思想;
      • 中间件技术;
      • 接口设计规范;
      • 后端部署技术和基本运维能力。
    • 早期MEAN: 使用Node的Express作为框架进行小型的web站点建设方案。M(Mysql), E(Express), A(Angular), N(Node)最为典型。

    • Node后端数据渲染: (p289 - 290)

      后端数据渲染流程:p290

      可以解决:

      • SPA场景下的SEO问题:p289;

      • 前端页面渲染展示缓慢问题:前后端分离的SPA开发模式下,页面在JS执行渲染之前是空白的(或提示用户加载中)。用户在看到数据时已经花费的网络等待时间:

        DOM下载时间 + DOM解析时间 + JS文件请求时间 + JS部分执行时间 + 接口请求时间 + DOM渲染时间

    • 前后端同构: (p290 - 297)

      • 问题: 在前后端分离的开发模式上加入直出层,使得不得不维护2套不同的前后台模板或技术实现——前端渲染实现逻辑和后端直出实现逻辑。

      • 目标: 需要一套完整的开发方式,和原有开发模式保持一致,且能够同时用于前后端分离的开发模式和后端数据渲染模板开发方式中。这就是所谓的前后端同构。

      • 实现同构的的核心: 只开发一套项目代码,即可以用来实现前端的JS加载渲染,也可以用于后台的直出渲染。

      • 优势: ①可以根据用户的需求方便的选择使用前端渲染数据还是后台直出页面数据; ②开发者只需要维护一套前端代码,而且可以沿用前端原有的项目组件化管理、打包构建方式,根据不同的构建指令生成类似的前后端数据模版或组件在前后端执行解析,所以这对于DOM结构层上的开发方式应该是一致的。

      • 实现原理、方案: p292 - 297

        基于数据模板的前后端同构方案、基于MVVM的前后端同构、基于Virtual DOM的前后端同构


    6.2 跨终端设计与实现

    • Native、Web、Hybrid优缺点对比: (p297 - 299)

      Native应用优点:

      1. 原生系统级Native API的支持,如访问本地资源、相机API等;
      2. 资源在打包安装时生成,节省用户使用时流量;
      3. 可针对不同平台特性进行用户体验优化;
      4. 运行速度快、性能好,可使用原生Native动画库。

      Native应用缺点:

      1. 开发成本高,兼容性差。尤其是对于Android机型;
      2. 维护成本高,用户必须手动下载更新,历史版本也需要维护;
      3. 上线时间不确定,一般需要通过应用商店的审核;
      4. 版本更新慢,更新时需要用户重新下载安装包;
      5. 应用界面的内容不可被搜索引擎检索。

      Web应用的优点:

      1. 开发成本低,使用前端开发技术即可;
      2. 跨平台和终端,基于浏览器或WebView运行;
      3. 部署方式简单、快捷,无需用户安装;
      4. 用户总能访问到最新版本,迭代速度快;
      5. 内容可被搜索引擎检索。

      Web应用的缺点:

      1. 浏览体验无法超越Native应用;
      2. 消息推送、动画等实现方式相对Native实现方式较差;
      3. 不能调用设备的原生特性,如无法访问本地资源、相机API等。

      Hybrid应用的优点:

      1. 开发成本较低,可以使用前端开发技术,甚至可以自动添加Native外壳来实现独立移动端应用;
      2. 跨平台和终端,内容网页可基于浏览器或WebView运行;
      3. 拥有与Web应用相同的快速迭代特性;
      4. 部署方式简单、快捷,只更新Web资源即可;
      5. 可支持离线应用;
      6. 可通过JSBridge调用设备的系统级API,如访问本地资源、相机API等;
      7. 原生应用版本的迭代和Web功能的迭代相互独立也可相互结合;
      8. 不同性能需求的功能可以选择性使用Native或Web实现;
      9. 内容可被搜索引擎检索;
      10. 借助于MNV*的开发模式可以更接近Native应用的用户体验。

      Hybrid应用的缺点:

      • 部分机型兼容性相对于Native较差,但比Web应用体验好的多。
    • Hybrid实现方式: p299 - 231

    • Hybrid应用的资源离线和更新技术: 在Hybrid应用开发时,常常需要在离线的情况下打开页面或者为了让应用加载启动更快,避免长时间等待资源造成空白页面的情况,就需要考虑使用离线缓存技术来加快页面速度。常用方案有:

      • ServiceWorker的资源离线与更新: p302

      • localStoreage资源离线缓存与更新: p302 - 304

      • 基于增量文件的更新方式: p304 - 306

      • 基于文件代码分块的增量更新机制: p306 - 307

      • 基于编辑距离的增量更新机制: p307 - 308

      • 基于Native与Web结合的资源离线与更新 p308 - 312

    展开全文
  • 现代前端技术解析》第7章阅读笔记 笔记章节目录 第1章 Web前端技术基础 第2章 前端与协议 第3章 前端三层结构与应用 第4章 现代前端交互框架 第5章 前端项目与技术实践 一(5.1 前端开发规范) 二(5.2 前端...

    《现代前端技术解析》第7章阅读笔记


    • 笔记章节目录

    • 2020/02/25

    7.1 未来前端趋势

    a t t e n t i o n : \color{red}{attention:} attention: 《现代前端技术解析》出版于2017年,本章节未来前端时代是基于当时做出的展望。

    (p314 - 318)

    • 新标准的进化与稳定: 经过大版本的更新稳定,目前前端三层结构实现已经处于HTML5、CSS3、ECMAScript6+标准规范结合的阶段,后面标准的新变化也会越来越小。
    • 使用前端技术栈独立开发Native应用;
    • 前端新领域的出现: 除了目前浏览器、服务器、移动端上的应用开发技术变革和探索外,未来前端也会出现新的应用场景,如VR、物联网化、Web人工智能等。

    7.2 做一名优秀的前端工程师

    (p318 - 322)

    • 学会高效的沟通;
    • 使用高效的开发工具;
    • 处理问题方法论: p319 - 320;
    • 学会前端项目开发流程设计;
    • 持续的知识和经验积累管理;
    • 切忌过分追求技术;
    • 必要的产品设计思维。

    《现代前端技术解析》读书笔记

    –The End–

    2020/02/25

    展开全文
  • 现代前端技术解析》第5章阅读笔记(一) 2020/02/19 5.1 前端开发规范 本节的使用规范均为《现代前端技术解析》作者的推荐规范,不是强制规范。 5.1.1前端通用规范(推荐规范) (p205-208) 最好是在团队中统一...

    《现代前端技术解析》第5章阅读笔记(一)


    • 笔记章节目录

    • 2020/02/19

    5.1 前端开发规范

    本节的使用规范均为《现代前端技术解析》作者的推荐规范,不是强制规范。

    5.1.1前端通用规范(推荐规范)

    (p205-208)

    最好是在团队中统一规范。

    • 三层结构分离: 开发时应该做到3层结构分离,保证他们之间的最小耦合。

    • 缩进: 统一使用tab(或4个空格宽度)来进行缩进。

    • 内容编码: HTML使用<meta charset="utf-8">来指定编码,css默认即可。

    • 小写: 所有的HTML标签、属性、样式名及规则建议使用小写,id可以用驼峰命名法。

      <ul id='menuList' class='menu-list'></ul>
      
    • 代码单行长度限制: 不要超过120字符(推荐)。

    • 注释: 尽可能的添加注释,也尽量在文件头部添加文件注释。推荐使用自文档化风格的代码进行开发。

    • 行尾空格与符号: 删除行尾空格与多余的符号。


    5.1.2 前端HTML规范

    (p208-212)

    • DTD定义: 统一使用H5的标准文档类型定义—<!DOCTYPE html>

    • head内容: head中必须定义title、keyword、description,保证基本的SEO。(p208)

    • 省略type属性: 在引入css和js文件时,省略type属性。因为H5有默认值。

    • 使用双引号包裹属性值

    • 属性值省略: 非 必 须 的 属 性 值 可 以 省 略 ( 例 如 d i s a b l e d = " d i s a b l e d " 写 为 d i s a b l e d ) 。 \color{red}{非必须的属性值可以省略(例如disabled="disabled" 写为 disabled)。} disabled="disabled"disabled

      • 关于这一点,在XHTML语法规则(W3school XHTML语法规则)中明确规定了进制使用属性值最小化写法/简写。所以最好还是不要省略属性值
    • 嵌套: 所有元素必须正确嵌套。

    • 标签闭合: 非自闭合标签必须添加关闭标识。

    • 使用img标签的alt属性: 尽量避免alt属性为空。

    • 使用lablefor属性:lable中使用for属性,或者 将对应的控件放在lable内部 ,以实现点击lable内容会focus到控件上。

    • 按模块添加注释

    • 标签元素格式: 块级元素一般另起一行写。行内元素可以根据情况换行写。正确使用缩进。

    • 语义化标签: 推荐多使用H5的语义化标签,不要使用H5废弃的用于样式表现的无语义化标签(如<center>,<font>,<strike>等)


    5.1.3 前端CSS规范

    (p212-218)

    • CSS引用规范: 尽量多使用外部样式引用规范,外部样式可以复用并能够利用浏览器缓存提高加载速度。强烈不建议大量使用内联样式。

    • 样式的命名约定: 使用小写单词加-组成。

    • 简写方式:

      • 单位0的缩写:如果属性值是0,则不写后面的单位(如px等)。
      • 去掉URL中引用资源的引号
      • 颜色值使用小写并尽量缩写到3位(如果可以的话)
    • 属性书写顺序: CSS样式书写遵循先布局(position、display、float等)后内容(color、font等)的规则。(p215)

    • Hack写法: 尽可能减少对CSS Hack的使用和依赖,选择其他方式代替。CSS若要实现多版本浏览器内核支持的话,应该遵循先写私有属性后写标准属性的原则。

    • CSS高效实现规范: (p216)

      • 标签名与id或者class组合选择器会造成冗余,应避免使用。
      • 尽量使用简短的CSS实现方式,对于无继承关系的元素使用合并的写法。
      • 不同元素之间属性存在继承关系时,应使用分拆方式,避免继承属性的重复定义。
    • 使用预处理脚本编码开发: 使用预处理嵌套的方式描述元素之间的层次关系。尽可能使用预处理器的高效语法来提高开发效率(如嵌套、变量、嵌套属性、注释、继承等)。(SASS、LESS)


    5.1.4 ECMAScript 5常用规范(推荐规范)

    (p218- 222)

    • 分号: JS语句后面统一加上分号。

    • 空格: 所有运算符、符号与英文单词之间添加必要的空格,有利于阅读。

    • 空行: 一般在代码块后保留空行,显得块内容层次分明。

    • 引号: JS字符串最外层统一使用单引号。方便内部的HTML使用双引号。

    • 变量命名: 标准变量采用驼峰命名法;常量使用大写字母加下划线;构造函数首字母大写。

    • 对象: 对象属性名不需要加引号;对象键值对以缩进的形式进行书写;数组、对象最后一个元素后面不要保留逗号,避免浏览器解析错误。

    • 大括号: 代码块使用大括号包裹,注意换行。

    • 条件判断: 尽量不要直接使用undefined进行变量判断,使用typeof代替。使用严格相等云算法(===,!==).

    • 不要在条件语句或循环语句中声明函数

    • 一些其他的可选规范参考: p222


    5.1.5 ECMAScript 6+ 参考规范

    (p222 - 227)

    • 正确使用ES6的变量声明关键字: letconst

    • 字符串拼接使用字符串模版完成

    • 解构赋值尽量使用一层解构,否则声明变量嵌套太深难以理解

    • 数组拷贝推荐使用...实现,更加简洁高效

    • 数组循环遍历使用for...of,非必须情况下不推荐使用forEachmap、简单循环:

      ​ 关于数组遍历大效率,参考博客JS 中的数组遍历方式效率比较简单循环是效率最高的循环!!!

    • 使用ES6的类来代替之前的类实现方式,尽量使用constructor进行属性成员变量赋值

    • 模块化多变量导出时尽量使用对象解构,不使用全局导出。尽量不要把importexport写在一行

    • 导出类名时,保持模块名称和文件名相同,类名首字符需要大写

    • 生成器中yield进行异步操作时需要使用try...catch包裹,方便对异步进行处理

    • 推荐使用Promise, 避免使用第三方库或直接回调,原生的异步处理性能更好而且符合语言规范

    • 如果不是必须,避免使用迭代器

    • 不要使用统一码(Unicode),中文正则匹配和计算较消耗时间,而且容易出现问题

    • 合理使用Generator,推荐使用async/await,更加简洁


    5.1.6 前端防御性编程规范

    (p227-228)

    防御性编程是指通过检测任何可能存在逻辑异常问题的代码实现,提高脚本执行过程健壮性的一种编程手段。

    • 对外部数据的安全检测判断: 外部(如后台)返回的数据,需要先做判断在进行处理,避免undefined报错。
    • 规范化的错误处理: 对请求或长时间的文件读写等可能失败的异步操作,需要进行错误情况的处理或异常捕获处理,而不应该静默,否则出错是不利于用户体验。

    参考

    W3school XHTML语法规则

    JS 中的数组遍历方式效率比较

    展开全文
  • 现代前端技术解析》第5章阅读笔记(四) 2020/02/24 5.5 前端用户数据分析 5.5.1 用户访问统计 5.5.2 用户行为分析 5.5.3 前端日志上报 5.6 前端搜索引擎优化基础 5.6.1 title、keywords、description的优化 ...
  • 现代前端技术解析》第5章阅读笔记(三) 2020/02/22 5.4 前端性能优化 前端性能: 通常前端性能可以认为是用户获取所需要页面数据或执行某个页面动作的一个实时性指标,一般以用户希望获取数据的操作到用户实际...
  • 现代前端技术解析》第5章阅读笔记(二) 2020/02/21 5.2 前端组件规范 5.2.1 UI组件规范 UI规范一般指UI层设计和实现的规范性及统一。 UI层规范的优点: (p230) UI层风格统一化; 增加UI层复用性; 更符合...
  • ​ 最近几年,越来越多的人投入到...​ 真正了解前端技术的工程师都会感觉前端技术发展变化太快。浏览器特性、前端框架、前端工具、多终端浏览器等都在快速迭代中。作为前端工程师不仅要掌握现有的技术去实现业务需求
  • 现代前端交互框架​ Web前端页面的开发避免不了与DOM的交互操作。前端框架的一次次变化,从提升效率的阶段,慢慢走向改善性能的阶段。直接DOM操作时代对于开发者来说,所有数据内容都可以通过DOM结构来组织和展示的...
  • 现代前端技术解析:前端跨站技术

    千次阅读 2017-08-03 20:59:01
    前端跨站技术随着前端技术栈在服务端和移动端上的尝试和日益成熟,前端工程师的追求绝不只是页面上的技术,如何实现跨服务端,如何扩展到移动端开发将变成主要讨论议题。JavaScript跨后端实现技术前端通过与Node...
  • 1.1 现代Web前端技术发展概述 Web Component: HTML5的一种组件化规范 **webp格式:**一种在不降低图片质量的前提下,储存空间更小的图片格式。 1.2 浏览器应用基础 **各大浏览器内核:**p12 **浏览器组成:**用户...
  • 前端项目与技术实践前端开发规范HTML规范head内容​ head中必须定义title、keyword、description,保证基本的SEO页面关键字和内容描述。移动端页面head要添加viewport控制页面不缩放,有利于提高页面渲染性能。建议...
  • 现代前端技术解析:前端与协议

    千次阅读 2017-07-25 20:06:00
    前端与协议HTTP协议简介完整的HTTP报文由头部、空行、正文三部分组成。目前最广泛使用的是HTTP1.1。 长连接 通过请求头中的keep-alive控制。在HTTP1.0中可以通过Connection: keep-alive开启长连接。长连接可以让...
  • 现代前端技术解析》 第4章阅读笔记 笔记章节目录 第1章 Web前端技术基础 第2章 前端与协议 第3章 前端三层结构与应用 第4章 现代前端交互框架 第5章 前端项目与技术实践 一(5.1 前端...
  • 现代前端技术解析》阅读笔记 第一章 Web前端技术基础 思考一些问题: 页面内容多而复杂,怎样保证开发效率? 需要借助符合特定场合的前端框架来提高效率。 页面内容多且复杂,项目管理和维护该如何去做? 考虑...
  • 现在的Web前端应用已经不是简单的三层结构就能轻松解决,而是已经形成了编译流程化、生产环境基础优化结构运行的模式。HTML结构层必须要知道的DOCTYPEHTML4.01是基于SGML(Standard Generalized Markup language,...
  • 现代前端技术解析》是张成文写的一本书,2017年4月出版的。先看的最后一章(第七章),第七章主要讲的是未来前端技术的发展趋势及如何成为一名优秀的前端工程师。  过去几年,前端主流技术框架发展极快,在填补...
  •  DOM 文档对象模型:指 HTML 内容通过浏览器解析后建立的具有节点父子关系的树形对象 模块化 &amp; 组件化 异步加载 保证尽快展示页面 webp 格式的图片 更高压缩比 浏览器缓存文件  304 状态码:客户端...
  • 现代前端技术解析》 第2章阅读笔记 笔记章节目录 第1章 Web前端技术基础 第2章 前端与协议 第3章 前端三层结构与应用 第4章 现代前端交互框架 第5章 前端项目与技术实践 一(5.1 前端...
  • 一、JavaScript 跨后端实现技术 Node 后端开发基础 Web 服务器基础知识 简单的数据库设计能力 后端 MVC 设计理念 后端异步,Node 服务端异步编程 模块化思想 中间件技术 接口设计规范 后端部署技术和基本运维...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,249
精华内容 5,699
关键字:

现代前端技术解析