新書推薦:
《
英雄之旅:把人生活成一个好故事
》
售價:HK$
87.4
《
分析性一体的涌现:进入精神分析的核心
》
售價:HK$
122.1
《
火枪与账簿:早期经济全球化时代的中国与东亚世界
》
售價:HK$
77.3
《
《全面与进步跨太平洋伙伴关系协定》国有企业条款研究
》
售價:HK$
98.6
《
银行业架构网络BIAN(全球数字化时代金融服务业框架)(数字化转型与创新管理丛书)
》
售價:HK$
98.6
《
金托邦:江湖中的沉重正义
》
售價:HK$
60.5
《
易经今解:释疑·解惑·见微
》
售價:HK$
88.5
《
东欧史(全二册)-“中间地带”的困境
》
售價:HK$
221.8
|
編輯推薦: |
GitHub Star 4.5K 项目 San 核心人员倾力打造从 0 到 1,用 JavaScript 动手做一个 MVVM 框架揭秘支撑百度搜索、Feed、小程序三大业务的MVVM框架设计带你跳出框架,领悟高性能跨端全栈设计思想跳出框架,阐述设计思想跨端开发,专注性能优化全站全端,场景自由切换本书在以下几个方面有所创新和突破:1.设计思想:跳出框架之外,带大家了解为何需要框架,以及框架如何设计的书;2.性能为上:在框架设计、工程链路、跨端开发、全栈实现等方面结合具体实现说明性能如何优化的书;3.全栈全端:介绍从服务端客户端、从浏览器到客户端,基于多个场景、多种研发模式下进行框架设计和业务配合的书;4.全景展现:把工具链路设计、调试方案、插件设计等结合框架一起讲的书,让读者对于前端框架有一个全景式的把握。
|
內容簡介: |
本书以San 为例,结合具体的实现,从框架设计、工程链路、跨端开发和全栈实现等方面说明了如何优化前端框架的性能。主要内容包括:San 的组件化设计、响应式的数据设计,以及数据流管理等知识;San SSR 的设计及其在业务中的具体运用;在“开发?C 调试?C 编译?C 部署”工作流中用于提升效率的工具,专门为San 开发的命令行工具San CLI,以及对应的可视化界面实现;San 的跨端融合支持;San 的发展规划。本书适合所有前端开发人员阅读。
|
關於作者: |
百度 KFive 是百度 App 大前端团队,在业务支持之外,KFive 研究的技术方向很广,包括人工智能、跨端融合,等等。KFive 的名称不仅来源于起初的办公地点在百度科技园 5 号楼,更体现了其对软件开发的理解,即“五 Key”:Key1者,精益求精;Key2 者,大巧不工;Key3 者,独运匠心;Key4 者,百炼千锤;Key5 者,善始善终。作者简介:王永青 :网名“三水清”,百度资深研发专家,曾经先后服务于微博、腾讯,2013 年加入百度,开始移动前端开发工作。先后负责百度 App 的前端技术架构、垂类、用户增长、小游戏、Feed 等业务。目前主要从事 Feed 前端架构、San 框架工具链研发等工作。对于跨端开发、工程化、性能优化和前端架构等有较丰富的经验。樊中恺 :百度资深研发专家,2011 年加入百度,2013 年开始移动研发工作。对前端技术架构、前端 AI、前端智能化、微前端等方向有丰富的开发经验。目前工作主要面向前后端架构设计、Web AI 和跨端研发等方向。曾参与清华大学前端公开课程建设,多次出品和参与前端方向的主题会议,翻译出版多部技术图书。钱思成 :百度资深研发工程师,长期负责搜索性能优化和前端架构开发。曾负责搜索性能评价和监控体系建设、组件化、微前端化、UI 自动化等方向的工作,是极速搜索、简单搜索、手机百度 App 搜索等重要项目的核心参与者。王凯 :百度资深前端研发工程师,2017 年加入百度,长期深耕百度通用组件、工程效能平台、电商等技术业务方向。经历和推进了百度搜索乐高平台化配置系统的全面架构进化和落地,在组件、主题、样式等领域积累了大量实践经验,影响搜索 PV 十亿级别日流量,主导开发的组件库涉及 H5、NA、小程序等业务场景。梅旭光 :百度资深研发工程师,目前负责搜索组件化渲染框架、服务端渲染架构的研发工作。Node.js Core Collaborator,GMTC 讲师,San-SSR Maintainer,曾发布语言转换器 ts2php、多端统一开发框架 Mars 等开源项目。对前端框架、服务端渲染设计和实现有较为丰富的经验,致力于提升 Web 产品的用户体验。钱思成 :2016 年加入百度,曾参与百度 MIP 项目,负责搜索结果页极速浏览框架、San 服务器端渲染框架、搜索结果页前端架构改进。2021 年加入微软中国,任资深软件工程师。QCon+ 讲师,百度技术学院讲师,LiquidJS 模板引擎作者,翻译出版多部技术图书。杨?B:百度资深研发工程师,长期负责搜索性能优化和前端架构开发。曾负责搜索性能评价和监控体系建设、组件化、微前端化、UI 自动化等方向的工作,是极速搜索、简单搜索、手机百度 App 搜索等重要项目的核心参与者。金展 :百度资深前端研发工程师,曾先后负责百度知道、百度经验、百度 App、百家号等多个百度产品线的前端技术迭代和性能优化工作,以及 San 命令行工具 San CLI、San 组合式 API、前端组件库 Santd 等开源生态的升级维护。廖焕宇 :百度前端工程师,主要关注跨端动态渲染技术,前端代码规范,效能提升与性能优化;深度参与 San 生态建设;喜欢分享软件开发经验,在 GitHub 中创建了一些实用的提效工具。朱国玺 :技术专家,百度资深研发工程师,2016 年加入百度,先后参与百度贴吧、MIP、搜索、百度 App 等项目的架构设计与研发,具有多年跨端融合研发经验,目前专注于百度 App 动态 NA 化等技术方向。
|
目錄:
|
第 1章 San,一个新的起点 11.1 San的诞生 31.2 San的特性 31.3 框架对比 61.3.1 抽象程度 61.3.2 运行时和预编译 71.3.3 同构与跨端 81.3.4 生态 81.4 为什么选择San 91.5 小结 10第 2章 组件,一切的起点 112.1 从实际项目出发,实现一个简单的San 112.1.1 实现一篇文章 112.1.2 实现文章列表 132.1.3 抽象出文章类 162.1.4 数据驱动视图的逻辑 182.2 编写第 一个San组件 212.2.1 安装San 212.2.2 Hello San 232.3 使用San实现文章项 242.3.1 使用HTML语法描述结构 252.3.2 使用CSS控制样式 252.4 声明式的视图模板 262.4.1 插值语法 272.4.2 属性绑定 302.4.3 表达式 322.4.4 方法 332.4.5 过滤器 342.5 事件 352.5.1 事件修饰符 382.5.2 自定义事件 392.6 指令 412.6.1 条件 412.6.2 循环 442.6.3 源码解析 472.7 San组件 492.7.1 组件定义 502.7.2 生命周期 512.7.3 视图模板 532.7.4 数据 542.7.5 组件引用 562.8 双向绑定 582.9 工程搭建 612.10 小结 66第3章 数据,组件的基石 683.1 响应式原理 693.1.1 如何追踪数据变化 693.1.2 主动式数据变化追踪 723.1.3 如何收集依赖 813.1.4 如何触发视图更新 863.2 视图更新 873.2.1 视图更新过程 873.2.2 ANode 913.2.3 基于ANode的预处理 923.2.4 节点遍历中断 993.3 数据及其更新 1003.3.1 数据定义 1013.3.2 数据校验 1063.4 状态管理 1113.4.1 为什么要进行状态管理 1113.4.2 基础使用 1133.4.3 san-store的实现原理 1173.4.4 san-update库 1283.4.5 实例 1353.5 小结 138第4章 组件进阶,构造复杂的前端应用 1394.1 组件间通信 1414.1.1 父子组件通信 1424.1.2 更多组件通信方式 1494.2 插槽 1514.2.1 数据环境 1524.2.2 命名 1534.2.3 作用域插槽 1554.3 路由 1574.4 动画和过渡 1604.4.1 s-transition 1614.4.2 动画控制器 1614.5 APack 1634.6 小结 164第5章 服务端渲染 1665.1 服务端渲染的用途 1665.1.1 单页应用的问题 1665.1.2 引入服务端渲染 1675.1.3 应用场景评估 1685.2 如何做服务端渲染 1695.2.1 立即使用San SSR 1705.2.2 开发支持SSR的组件 1725.2.3 编译到其他语言和平台 1745.3 San SSR的工作原理 1765.3.1 San服务端渲染过程 1765.3.2 组件信息解析 1775.3.3 编译到render AST 1785.3.4 render的代码生成 1805.4 客户端反解 1825.4.1 组件反解的概念 1825.4.2 数据注释 1835.4.3 复合插值文本 1845.4.4 调用组件反解 1845.5 服务端渲染优化 1855.5.1 预渲染优化 1865.5.2 正确使用render 1875.5.3 编译到源码 1885.5.4 复用运行时工具库 1895.6 小结 190第6章 San命令行工具 1926.1 为什么需要San CLI 1926.2 命令行工具的实现 1936.2.1 解析命令行参数 1936.2.2 命令行工具的发布和调试 1946.2.3 基于yargs的命令行模块 1956.2.4 命令行插件化的实现 1976.3 打造San项目脚手架 1986.3.1 实现简单的项目脚手架 1996.3.2 实现可交互的项目脚手架 2006.3.3 脚手架的完整实现逻辑 2096.3.4 更好地组织代码 2106.4 San CLI的构建方案 2136.4.1 编译与构建 2146.4.2 构建方案的技术选型 2176.4.3 San CLI的构建方案 2186.5 San CLI的整体架构 2316.6 开箱即用的实践 2336.6.1 语言层面的支持 2336.6.2 开发调试 2356.6.3 面向项目部署 2396.6.4 性能优化 2426.7 小结 248第7章 组件编译和HMR 2497.1 San单文件组件 2497.1.1 一个简单的San单文件组件 2497.1.2 单文件组件的特性 2507.2 单文件组件编译的配置 2517.2.1 加载器和插件 2517.2.2 San加载器简介 2547.3 单文件组件编译的原理 2547.3.1 提取San文件中的模板、脚本和样式 2557.3.2 从单文件组件到San组件 2597.3.3 San加载器的构建流程 2617.3.4 San加载器的整体运行流程 2707.4 实现组件的HMR 2717.4.1 webpack HMR简介 2717.4.2 HMR的工作原理 2717.4.3 san-hot-loader简介 2757.4.4 San组件的HMR的实现 2767.5 利用APack实现组件的传输优化 2847.5.1 从模板到ANode 2847.5.2 从ANode到APack 2867.5.3 APack的实现原理 2877.6 小结 296第8章 测试与调试 2978.1 San DevTools简介 2978.1.1 San DevTools的设计初衷 2978.1.2 技术选型 2988.2 San DevTools中的通信 2998.2.1 工作原理 2998.2.2 构建WebSocket服务 3008.2.3 构建Bridge与协议解耦 3018.2.4 构建调试页面与被调试页面之间的通信信道 3038.3 San DevTools中的数据收集和处理 3078.3.1 收集页面中的San数据 3078.3.2 构建Agent 3098.3.3 构建页面组件树 3118.3.4 实时修改组件数据 3158.3.5 组件性能数据的处理 3178.3.6 事件与消息 3248.3.7 san-store中的时间旅行 3268.4 单元测试 3328.4.1 DOM测试 3328.4.2 快照测试 3358.5 小结 336第9章 San Native跨端融合 3379.1 跨平台开发 3379.1.1 JavaScript驱动的NA原生渲染 3389.1.2 跨端渲染方案的优缺点 3389.2 渲染引擎 3429.2.1 供JavaScript调用的渲染API 3429.2.2 宿主所使用的渲染引擎 3429.2.3 实现JavaScript代码 3439.3 高性能的跨端技术方案 3439.3.1 响应式驱动NA渲染 3449.3.2 适配跨端渲染 3459.3.3 视图设计 3469.3.4 事件系统 3489.3.5 样式选择器 3519.4 San Native的Web化 3629.4.1 Web化的背后原理 3629.4.2 Native渲染与Web渲染的差异 3649.5 共享机制和多bundle 3659.6 小结 368第 10章 San的未来 369
|
|