TypeScript 多场景设计方案及应用实践
多场景开发实践 Best practices of TypeScript and Dev in Alibaba TypeScript 陈仲寅(花名:张挺) 就职于 阿⾥里里巴巴淘宝技术部 MidwayJS 团队 zhangting@taobao.com @czy88840616 https://github.com/czy88840616 @czy88840616 MidwayJS 接⼝口时,需要写 JSDoc TS Node.js 测试靠⼈人⾁肉 Node.js Import TypeScript TS 我们都知道 TypeScript 的优势 12 3 类型描述 更更多的 Feature ⽀支持 ⾯面向接⼝口编程 TS 个⼈人开发⾯面向类型编码, 协作时⾯面向接⼝口编程 TS 开发时增加更更多接⼝口定义, 数据定义,参数定义 TS 跨协议转换 TS 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 js/ts ⽬目录混合 TS 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 class ⽤用法,⽆无法多继承 TS 杂糅的 app/ctx 合并机制 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 TS 第⼀一代设计 第⼀一代设计 TS 解决复杂度问题 尝试引⼊入 IoC0 码力 | 95 页 | 8.28 MB | 1 年前32019-2021 美团技术年货 前端篇
框架层,并完成事件的消费、分发和逻辑处 理。同样,整个流程的大部分工作已经由 Flutter 统一,我们要做的仅仅是在原生容 器上监听用户的输入,并封装成指定格式交给引擎层而已。 在鸿蒙系统上,我们可以借助平台提供的 多模输入 API,实现多种类型事件的监听: flutterComponent.setTouchEventListener(touchEventListener); // 触摸及鼠标事件 flutterComponent flutter gallery 应用的截图,截图中 Flutter 引擎已经使 用鸿蒙系统的平台能力进行了重写: 12 > 2021年美团技术年货 DevEco Running Flutte 借由鸿蒙的多设备支持能力,此应用甚至可在 TV、车机、手表、平板等设备上运行: Flutter Multiple Devices 前端 < 13 总结和展望 通过上述的构建和适配工作,我们以极小的开发成本实现了 美团外卖商家端业务形态 美团外卖商家端业务围绕数百万商家,在 PC 和 App 上分别提供了交易履约、运营、 广告、营销等一系列功能,且经常有外投 H5 的场景(如外卖学院、商家社区、营销 活动等)。在这种多形态的业务场景下,如何保障多端体验的一致性,以及如何提升 多端迭代的效率,一直是商家端产研关注的重点。 1.1.1 保障多端体验一致性 由于端能力的不同,导致了业务在 App 和 Web 上存在较大的表现差异,例如:App0 码力 | 738 页 | 50.29 MB | 1 年前3Hello 算法 1.0.0b1 JavaScript版
如果您是「算法大佬」,希望可以得到你的宝贵意见建议,或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2. 内容结构 本书主要内容有: ‧ 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用进阶刷题方案,例如按专题分类、一题多解、一解多题等,相关刷题心得可以 在各个社区中找到。 作为一本入门教程,本书内容主要对应“第一阶段”,致力于帮助你更高效地开展第二、三阶段的学习。 Figure 0‑2. 算法学习路线 0.2.2. 行文风格约定 1.1. 算法评价维度 在开始学习算法之前,我们首先要想清楚算法的设计目标是什么,或者说,如何来评判算法的好与坏。整体上 看,我们设计算法时追求两个层面的目标。 1. 找到问题解法。算法需要能够在规定的输入范围下,可靠地求得问题的正确解。 2. 寻求最优解法。同一个问题可能存在多种解法,而我们希望算法效率尽可能的高。 换言之,在可以解决问题的前提下,算法效率则是主要评价维度,包括: ‧ 时间效率,即算法的运行速度的快慢。0 码力 | 185 页 | 14.70 MB | 1 年前3Hello 算法 1.0.0b1 TypeScript 版
如果您是「算法大佬」,希望可以得到你的宝贵意见建议,或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2. 内容结构 本书主要内容有: ‧ 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用进阶刷题方案,例如按专题分类、一题多解、一解多题等,相关刷题心得可以 在各个社区中找到。 作为一本入门教程,本书内容主要对应“第一阶段”,致力于帮助你更高效地开展第二、三阶段的学习。 Figure 0‑2. 算法学习路线 0.2.2. 行文风格约定 1.1. 算法评价维度 在开始学习算法之前,我们首先要想清楚算法的设计目标是什么,或者说,如何来评判算法的好与坏。整体上 看,我们设计算法时追求两个层面的目标。 1. 找到问题解法。算法需要能够在规定的输入范围下,可靠地求得问题的正确解。 2. 寻求最优解法。同一个问题可能存在多种解法,而我们希望算法效率尽可能的高。 换言之,在可以解决问题的前提下,算法效率则是主要评价维度,包括: ‧ 时间效率,即算法的运行速度的快慢。0 码力 | 186 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b5 JavaScript版
或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 轮的重复后,就能将其牢记在心。 3. 搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体 系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心 得可以在各个社区找到。 如图 0‑7 所示,本书内容主要涵盖“第一阶段”,旨在帮助你更高效地展开第二和第三阶段的学习。 第 0 章 前言 hello‑algo.com 8 图 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式代表数据结构,拼 装积木的步骤则对应算法。 16 第 2 章 复杂度分析 � 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 17 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法0 码力 | 375 页 | 30.68 MB | 1 年前3Hello 算法 1.0.0 JavaScript版
者一起参与创作。 � 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 轮的重复后,就能将其牢记在心。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 17 第 2 章 复杂度分析 � 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 18 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法0 码力 | 376 页 | 17.57 MB | 1 年前3Hello 算法 1.0.0b5 TypeScript 版
或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 轮的重复后,就能将其牢记在心。 3. 搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体 系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心 得可以在各个社区找到。 如图 0‑7 所示,本书内容主要涵盖“第一阶段”,旨在帮助你更高效地展开第二和第三阶段的学习。 第 0 章 前言 hello‑algo.com 8 图 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式代表数据结构,拼 装积木的步骤则对应算法。 16 第 2 章 复杂度分析 � 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 17 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法0 码力 | 378 页 | 30.70 MB | 1 年前3Hello 算法 1.0.0b5 Dart版
或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 轮的重复后,就能将其牢记在心。 3. 搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体 系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心 得可以在各个社区找到。 如图 0‑7 所示,本书内容主要涵盖“第一阶段”,旨在帮助你更高效地展开第二和第三阶段的学习。 第 0 章 前言 hello‑algo.com 8 图 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式代表数据结构,拼 装积木的步骤则对应算法。 16 第 2 章 复杂度分析 � 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 17 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法0 码力 | 376 页 | 30.67 MB | 1 年前3Hello 算法 1.0.0 Dart版
者一起参与创作。 � 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 轮的重复后,就能将其牢记在心。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 17 第 2 章 复杂度分析 � 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 18 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法0 码力 | 377 页 | 17.56 MB | 1 年前3Hello 算法 1.1.0 Dart版
议,或者一起参与创作。 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 17 第 2 章 复杂度分析 Abstract 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 18 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法0 码力 | 378 页 | 18.45 MB | 1 年前3
共 52 条
- 1
- 2
- 3
- 4
- 5
- 6