2019-2021 美团技术年货 前端篇
在美团动态化方案 MTFlexbox 中的实践 459 开源 React Native 组件库 beeshell 2.0 发布 473 React Native 在美团外卖客户端的实践 506 Android 静态代码扫描效率优化与实践 530 Probe:Android 线上 OOM 问题定位组件 560 活动 Web 页面人机识别验证的探索与实践 580 React Native 分实现细节的介绍,分享我们在移植和开发过程中的一些经验。希望能对大家有所启 发或者帮助。 背景知识和基础概念介绍 在适配开始之前,我们要明确好先做哪些事情。先来回顾一下 Flutter 的三层结构: 在 Flutter 的架构设计中,最上层为框架层,使用 Dart 语言开发,面向 Flutter 业务 的开发者;中间层为引擎层,使用 C/C++ 开发,实现了 Flutter 的渲染管线和 Flutter 引擎的渲染上屏。 接下来我们用鸿蒙提供的平台能力实现这三点。 a. 可用于直接绘制的视图对象 鸿蒙系统的 UI 框架提供了很多常用视图组件(Component),比如按钮、文字、图 片、列表等,但我们需要抛开这些上层组件,获得直接绘制的能力。借助官方 媒体播 放器开发指导 文档,可以发现鸿蒙提供了 SurfaceProvider 类,它管理的 Surface 对象可以用于视频解码后的展示。而0 码力 | 738 页 | 50.29 MB | 1 年前3前端开发者指南(2017)
JavaScript 工具 静态网页构建工具 无障碍访问工具 应用程序框架工具(台式机、手机、平板电脑等) 渐进式 Web 应用工具 脚手架工具 常规前端开发工具 模版/数据绑定工具 UI 组件 & 组件包 数据可视化工具(例如图表) 图形工具(例如 SVG、canvas、webGL) 动画工具 JSON 工具 占位符内容工具 测试工具 前端数据存储工具 (例如客户端的数据存储方案) JavaScript 工具 静态网页构建工具 无障碍访问工具 应用程序框架工具(台式机、手机、平板电脑等) 渐进式 Web 应用工具 脚手架工具 常规前端开发工具 模版/数据绑定工具 UI 组件 & 组件包 数据可视化工具(例如图表) 图形工具(例如 SVG、canvas、webGL) 动画工具 JSON 工具 占位符内容工具 测试工具 前端数据存储工具 (例如客户端的数据存储方案) “The Web platform: what it is” 和维基百科 “Open Web Platform” 前端开发者是什么? 13 2016 前端开发回顾 UI 组件和组件树被用于构建复杂 UI。 组件由单一文件构成,在单个文件中可能同时包含 HTML、CSS 和 JS 不再有违主流开 发思想。 React、Redux、Webpack、ECMAScript 2015(也叫 ES6)和0 码力 | 164 页 | 6.43 MB | 1 年前3ECMAScript规范 第三版 中文版
个对象包含同名属性,被引用指向的就是这个属性;如果那个对象并没有包含 同名属性,接下来检查它的原型,如此继续下去。 通常,在基于类的面向对象语言中,实例装载状态,类装载方法,且继承的仅仅是结构和 行为。而在 ECMAScript 中,状态和方法均由对象装载,且结构、行为、状态都会被继承。 所有没有直接包含某个它们的原型所包含的特定属性的对象,与它们的原型共享那个属性 和它的值。下面的图表阐述了一切: CF 是一个构造函数(当然也是一个对象)。使用 构造函数是 一种创建并初始化对象的函数对象。每个工作;构造函数都拥有一个相关联的 原型对象,用它来实现继承和共享属性。 4.3.5 原型 原型是一 种对象,被用在 ECMAScript 中实现继承结构、状态和行为。当构造函数创建对 象时,那个对象隐含引用构造函数的关联原型,以此分解属性引用。通过程序中的表达式 constructor.prototype 可以引用到构造函数的关联原型,通过继承,添加给对象的属性 表示 IEEE 标准“非数字”值。这个值是 Number 类型的一个成员。 5 记法约定 5.1 语法和词法文法 这一节描述了本规范中使用的上下文无关文法,这是 ECMAScript 程序语法结构的定义。 5.1.1 上下文无关文法(Context-Free Grammars) 一个上下文无关文法由许多产生式(productions)组 成。每个产生式都拥有一个抽象符号作为 其左式(left-hand0 码力 | 58 页 | 563.06 KB | 1 年前3阮一峰 JavaScript 教程
任何一个问题,JavaScript 都有多种解决方法。阅读本书的过程 中,你会诧异于 JavaScript 语法的灵活性。 JavaScript 的核心语法部分相当精简,只包括两个部分:基本的语 法构造(比如操作符、控制结构、语句)和标准库(就是一系列具有各 种功能的对象比如 Array 、 Date 、 Math 等)。除此之外,各种宿 主环境提供额外的 API(即只能在该环境使用的接口),以便 JavaScript JavaScript 和 HTML5 打包在一个容器之 中,使得它能同时在 iOS 和安卓上运行。Facebook 公司的 React Native 项目则是将 JavaScript 写的组件,编译成原生组件,从 而使它们具备优秀的性能。 Mozilla 基金会的手机操作系统 Firefox OS,更是直接将 JavaScript 作为操作系统的平台语言,但是很可惜这个项目没有成 导论 的入门会非常容易。 必须说明的是,虽然核心语法不难,但是 JavaScript 的复杂性体现 在另外两个方面。 首先,它涉及大量的外部 API。JavaScript 要发挥作用,必须与其 他组件配合,这些外部组件五花八门,数量极其庞大,几乎涉及网络应 用的各个方面,掌握它们绝非易事。 其次,JavaScript 语言有一些设计缺陷。某些地方相当不合理,另 一些地方则会出现怪异的运行结果。学习 JavaScript,很大一部分0 码力 | 540 页 | 3.32 MB | 10 月前3廖雪峰JavaScript教程
5 AJAX 6.6 Promise 6.7 Canvas 7 jQuery 7.1 选择器 7.1.1 层级选择器 7.1.2 查找和过滤 7.2 操作DOM 7.2.1 修改DOM结构 7.3 事件 7.4 动画 7.5 扩展 8 underscore 8.1 Collections 8.2 Arrays 8.3 Functions 8.4 Objects 8.5 是JavaScript语法要求必须的,但缩 进有助于我们理解代码的层次,所以编写代码时要遵守缩进规则。很多文本编辑器具有“自动缩进”的功 能,可以帮助整理代码。 {…} 还可以嵌套,形成层级结构: 基本语法 语法 2.1 基本语法 - 13 - 本文档使用 书栈(BookStack.CN) 构建 1. if (2 > 1) { 2. x = 1; 3. y = - 本文档使用 书栈(BookStack.CN) 构建 2.8 Map和Set JavaScript的默认对象表示方式 {} 可以视为其他语言中的 Map 或 Dictionary 的数据结构, 即一组键值对。 但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为 键也是非常合理的。 为了解决这个问题,最新的ES6规范引入了新的数据类型0 码力 | 264 页 | 2.81 MB | 10 月前3JavaScript Promise迷你书(中文版)
本章将主要对JavaScript中的Promise进行入门级的介绍。 什么是Promise 首先让我们来了解一下到底什么是Promise。 Promise是抽象异步处理对象以及对其进行各种操作的组件。 其详细内容在接下来我们 还会进行介绍,Promise并不是从JavaScript中发祥的概念。 Promise最初被提出是在 E语言12中, 它是基于并列/并行处理设计的一种编程语言。 现在 assert(value === 'value'); }); }); JavaScript Promise 迷你书(中文版) 56 这和上面的 shouldRejected-test.js 结构基本相同,只不过返回对象的 catch 方法变为了 then ,promise.then的两个参数也调换了。 小结 在本小节我们学习了如何编写针对Promise特定状态的测试代码,以及如何使用便于测 Deferred和Promise 我想各位看到此图应该就很容易理解了,Deferred和Promise并不是处于竞争的关系, 而是Deferred内涵了Promise。 这是jQuery.Deferred结构的简化版。当然也有的Deferred实现并没有 内涵Promise。 光看图的话也许还难以理解,下面我们就看看看怎么通过Promise来实现Deferred。 JavaScript Promise0 码力 | 112 页 | 1010.02 KB | 1 年前3阮一峰 《ECMAScript 6入门》 第三版
ECMAScript 6简介 let 和 const 命令 变量的解构赋值 字符串的扩展 正则的扩展 数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 保存在变量指向 的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数 组),变量指向的内存地址,保存的只是一个指针, const 只能保证这个指针是 固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个 对象声明为常量必须非常小心。 const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; foo [b], d] = [1, [2, 3], 4]; a // 1 b // 2 d // 4 上面两个例子,都属于不完全解构,但是可以成功。 如果等号的右边不是数组(或者严格地说,不是可遍历的结构,参见《Iterator》一 章),那么将会报错。 // 报错 let [foo] = 1; let [foo] = false; let [foo] = NaN; let [foo] =0 码力 | 679 页 | 2.66 MB | 1 年前3Hello 算法 1.2.0 简体中文 JavaScript 版
力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 379 页 | 18.47 MB | 10 月前3Hello 算法 1.1.0 JavaScript版
力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 379 页 | 18.46 MB | 1 年前3Hello 算法 1.0.0 JavaScript版
力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 i 目 录 第 0 章 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 第 3 章 数据结构 51 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型0 码力 | 376 页 | 17.57 MB | 1 年前3
共 19 条
- 1
- 2