2019-2021 美团技术年货 前端篇相似之处(如下表所示),我们可以从 Android 的实现入手,完成对鸿蒙的移植。 Flutter 在鸿蒙上的适配 如前文所述,要完成 Flutter 在新系统上的移植,我们需要完整实现 Flutter 嵌入层 要求的所有子模块,而从能力支持角度,渲染、交互以及其他必要的原生平台能力 是保证 Flutter 应用能够运行起来的最基本的要素,需要优先支持。接下来会依次进 行介绍。 1. 渲染流程打通 我们再来回顾一下 何丝滑无感地扩展 MTFlutter 基础依赖在 Web 端的实现。 4.1.1 Flutter Package 分平台编程 在 Flutter 中通过使用 Package 可以创建易于共享的模块化代码。官方强烈推荐使 用 Package 形式管理各种工具方法。在官方定义中 Package 包含以下两种类别: ● Dart Package:用 Dart 编写的常规 Package,其中一些可能包含依赖于 Flutter Web 在 PC 侧的复用:与 UED 团队共同制订 PC 与 App 适配规范, 同时基于 Dart2js 和 dart:ui (Web)的强大能力,实现逻辑的抽象,完成组 件、模块的适配,达到提效最大化; ● 跟进 Flutter 官方动向:Flutter 2.0 的发布,稳定了对 Web 的支持,同时默 认采用 Canvaskit 编译模式,此模式下对页面滚动性能有较大提升。但由于0 码力 | 738 页 | 50.29 MB | 1 年前3
新语⾔,新思维 解读⼀个并发问题的多种实现 - 陶召胜不不⽀支持多值、⾼高级错误处理理 next: 多任务求解1-10,000,000的和 序号 语⾔言 关键点 1 JavaScript 不不再有回调地狱,变异步为顺序化思维,程序更更加可读 2 Go ⾼高并发调度,通道让异步编程更更简单 3 Scala (1)简洁的异步编程 (2)AKKA:分布式计算框架 4 Java (1)fork/join (2)CompletableFuture (3)反应式编程(Reactive 关键点:⾼高并发调度,通道让异步编程更更简单 2015年年 Go 1.5 2016年年 Go1.6、1.7 2017年年 Go1.8、 1.9 goroutine gorutine在逻辑处理理器器上执⾏行行 逻辑处理理器器, GOMAXPROCS gorutine OS线程, SetMaxThreads • Go运⾏行行时(runtime),有⾃自⼰己的 调度器器 • 可以将⼀一个goroutine分配给⼀一 Schedulers.single() 例例⼦子Reactor实现 总结 序号 语⾔言 关键点 1 JavaScript 不不再有回调地狱,变异步为顺序化思维,程序更更加可读 2 Go ⾼高并发调度,通道让异步编程更更简单 3 Scala (1)简洁的异步编程 (2)AKKA:分布式计算框架 4 Java (1)fork/join (2)CompletableFuture (3)反应式编程(Reactive0 码力 | 42 页 | 9.85 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版"latest", "react", "stage-2" ], "plugins": [] } 注意,以下所有 Babel工具和模块的使用,都必须先写好 .babelrc 。 命令行转码 babel-cli Babel提供 babel-cli 工具,用于命令行转码。 它的安装命令如下。 $ npm install } } 上面代码中,使用 babel-node 替代 node ,这样 script.js 本身就不用做任 何转码处理。 babel-register babel-register 模块改写 require 命令,为它加上一个钩子。此后,每当使 用 require 加载 .js 、 .jsx 、 .es 和 .es6 后缀名的文件,就会先用Babel 进行转码。 $ 命令加载的文件转码,而不会 对当前文件转码。另外,由于它是实时转码,所以只适合在开发环境使用。 babel-core 如果某些代码需要调用 Babel 的 API 进行转码,就要使用 babel-core 模块。 安装命令如下。 $ npm install babel-core --save ECMAScript 6简介 15 然后,在项目中就可以调用 babel-core 。 var babel0 码力 | 679 页 | 2.66 MB | 1 年前3
廖雪峰JavaScript教程Arrays 8.3 Functions 8.4 Objects 8.5 Chaining 9 Node.js 9.1 安装Node.js和npm 9.2 第一个Node程序 9.3 模块 9.4 基本模块 9.4.1 fs 9.4.2 stream 9.4.3 http 9.4.4 buffer 9.5 Web开发 9.5.1 koa 9.5.2 mysql 9.5.3 swig b服务轻而易 举。 其次,JavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人 感觉JavaScript就是个“玩具语言”。但是,在Node环境下,通过模块化的JavaScript代码,加上 函数式编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准,可以完全满足工 程上的需求。 > 我还听说过io.js,这又是什么鬼? 一下官方网站,下载代码,解压,再使用, 非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果 要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。 更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以 根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容0 码力 | 264 页 | 2.81 MB | 10 月前3
前端开发者指南(2017)学习数据(例如,JSON)API 的设计 学习 React & Redux 学习渐进式 Web 应用 学习设计 JS API 学习web开发工具 学习命令行的使用 学习 Node.js 学习 JS 模块系统 学习模块加载和打包工具 学习包管理工具 学习版本控制 学习构建及任务自动化技术 学习网站性能优化 学习测试 学习无头浏览器 学习离线开发 学习网络/浏览器/应用的安全 多平台开发学习 数据可视化工具(例如图表) 图形工具(例如 SVG、canvas、webGL) 动画工具 JSON 工具 占位符内容工具 测试工具 前端数据存储工具 (例如客户端的数据存储方案) 模块加载/打包工具 模块/包管理工具 托管工具 项目管理以及代码托管工具 协作与沟通工具 内容管理 托管/API 工具 后端即服务工具 离线工具 安全工具 构建工具 部署工具 4 1.7.38 学习数据(例如,JSON)API 的设计 学习 React & Redux 学习渐进式 Web 应用 学习设计 JS API 学习web开发工具 学习命令行的使用 学习 Node.js 学习 JS 模块系统 学习模块加载和打包工具 学习包管理工具 Introduction 8 学习版本控制 学习构建及任务自动化技术 学习网站性能优化 学习测试 学习无头浏览器 学习离线开发 学习网络/浏览器/应用的安全0 码力 | 164 页 | 6.43 MB | 1 年前3
阮一峰 JavaScript 教程Self 语言(Smalltalk 的一种变种)。 正则表达式:借鉴 Perl 语言。 字符串和数组处理:借鉴 Python 语言。 为了保持简单,这种脚本语言缺少一些关键的功能,比如块级作用域、 模块、子类型(subtyping)等等,但是可以利用现有功能找出解决 办法。这种功能的不足,直接导致了后来 JavaScript 的一个显著特 点:对于其他语言,你需要学习语言的各种功能,而对于 编写应用程序。类似的项目还 有 Mozilla 的 Firefox OS。 2010年,三个重要的项目诞生,分别是 NPM、BackboneJS 和 RequireJS,标志着 JavaScript 进入模块化开发的时代。 2011年,微软公司发布 Windows 8操作系统,将 JavaScript 作 为应用程序的开发语言之一,直接提供系统支持。 2011年,Google 发布了 Dart 语言,目的是为了结束 2015年4月,Angular 框架宣布,2.0 版将基于微软公司的 TypeScript语言开发,这等于为 JavaScript 语言引入了强类型。 2015年5月,Node 模块管理器 NPM 超越 CPAN,标志着 JavaScript 成为世界上软件模块最多的语言。 2015年5月,Google 公司的 Polymer 框架发布1.0版。该项目的 目标是生产环境可以使用 WebComponent 组件,如果能够达到目0 码力 | 540 页 | 3.32 MB | 10 月前3
Hello 算法 1.1.0 JavaScript版算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 和删除节点。这时候使用双向链表就非常合适。 环形链表常用于需要周期性操作的场景,比如操作系统的资源调度。 ‧ 时间片轮转调度算法:在操作系统中,时间片轮转调度算法是一种常见的 CPU 调度算法,它需要对一 组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环操作可以通过环形链表来实现。 ‧ 4 贪心算法典型例题 贪心算法常常应用在满足贪心选择性质和最优子结构的优化问题中,以下列举了一些典型的贪心算法问题。 ‧ 硬币找零问题:在某些硬币组合下,贪心算法总是可以得到最优解。 ‧ 区间调度问题:假设你有一些任务,每个任务在一段时间内进行,你的目标是完成尽可能多的任务。如 果每次都选择结束时间最早的任务,那么贪心算法就可以得到最优解。 ‧ 分数背包问题:给定一组物品和一个载重量,你0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 和删除节点。这时候使用双向链表就非常合适。 环形链表常用于需要周期性操作的场景,比如操作系统的资源调度。 ‧ 时间片轮转调度算法:在操作系统中,时间片轮转调度算法是一种常见的 CPU 调度算法,它需要对一 组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环操作可以通过环形链表来实现。 ‧ 4 贪心算法典型例题 贪心算法常常应用在满足贪心选择性质和最优子结构的优化问题中,以下列举了一些典型的贪心算法问题。 ‧ 硬币找零问题:在某些硬币组合下,贪心算法总是可以得到最优解。 ‧ 区间调度问题:假设你有一些任务,每个任务在一段时间内进行,你的目标是完成尽可能多的任务。如 果每次都选择结束时间最早的任务,那么贪心算法就可以得到最优解。 ‧ 分数背包问题:给定一组物品和一个载重量,你0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0b5 JavaScript版要快速找到最近最少使用的数据,以及支持快速地添 加和删除节点。这时候使用双向链表就非常合适。 循环链表常被用于需要周期性操作的场景,比如操作系统的资源调度。 ‧ 时间片轮转调度算法:在操作系统中,时间片轮转调度算法是一种常见的 CPU 调度算法,它需要对一 组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环的操作就可以通过循环链表来实现。 ‧ 1.4 贪心典型例题 贪心算法常常应用在满足贪心选择性质和最优子结构的优化问题中,以下列举了一些典型的贪心算法问题。 ‧ 硬币找零问题:在某些硬币组合下,贪心算法总是可以得到最优解。 ‧ 区间调度问题:假设你有一些任务,每个任务在一段时间内进行,你的目标是完成尽可能多的任务。如 果每次都选择结束时间最早的任务,那么贪心算法就可以得到最优解。 ‧ 分数背包问题:给定一组物品和一个载重量,你的0 码力 | 375 页 | 30.68 MB | 1 年前3
Hello 算法 1.0.0 JavaScript版算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 和删除节点。这时候使用双向链表就非常合适。 环形链表常用于需要周期性操作的场景,比如操作系统的资源调度。 ‧ 时间片轮转调度算法:在操作系统中,时间片轮转调度算法是一种常见的 CPU 调度算法,它需要对一 组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环操作可以通过环形链表来实现。 ‧ 4 贪心算法典型例题 贪心算法常常应用在满足贪心选择性质和最优子结构的优化问题中,以下列举了一些典型的贪心算法问题。 ‧ 硬币找零问题:在某些硬币组合下,贪心算法总是可以得到最优解。 ‧ 区间调度问题:假设你有一些任务,每个任务在一段时间内进行,你的目标是完成尽可能多的任务。如 果每次都选择结束时间最早的任务,那么贪心算法就可以得到最优解。 ‧ 分数背包问题:给定一组物品和一个载重量,你0 码力 | 376 页 | 17.57 MB | 1 年前3
共 12 条
- 1
- 2













