2019-2021 美团技术年货 前端篇(HarmonyOS)是华为推出的一款面向未来、面向全场景的分布式操作系 统。在传统单设备系统能力的基础上,鸿蒙提出了基于同一套系统能力、适配多种终 端形态的分布式理念。自 2020 年 9 月 HarmonyOS 2.0 发布以来,华为加快了鸿 蒙系统大规模落地的步伐,预计 2021 年底,鸿蒙系统会覆盖包括手机、平板、智能 穿戴、智慧屏、车机在内数亿台终端设备。对移动应用而言,新的系统理念、新的交 互形式,也意味着 互形式,也意味着新的机遇。如果能够利用好鸿蒙的开发生态及其特性能力,可以让 应用覆盖更多的交互场景和设备类型,从而带来新的增长点。 与面临的机遇相比,适配鸿蒙系统带来的挑战同样巨大。当前手机端,尽管鸿蒙系统 仍然支持安卓 APK 安装及运行,但长期来看,华为势必会抛弃 AOSP,逐步发展出 自己的生态,这意味着现有安卓应用在鸿蒙设备上将会逐渐变成“二等公民”。然而, 如果在 iOS 及 Android 之外再 Flutter 的图像渲染流程。如图所示,设备发起垂直同步(VSync) 信号之后,先经过 UI 线程的渲染管线(Animate/Build/Layout/Paint),再经过 Raster 线程的组合和栅格化,最终通过 OpenGL 或 Vulkan 将图像上屏。这个流程 的大部分工作都由框架层和引擎层完成,对于鸿蒙的适配,我们主要关注的是与设备 自身能力相关的问题,即: 4 > 2021年美团技术年货0 码力 | 738 页 | 50.29 MB | 1 年前3
前端开发者指南(2017)保证用户打开网站时,以一种易读且关联的形式浏览信息,是设计网站的目的。目前这 个需求变得更棘手:如今用户使用的设备种类繁多,设备对应的屏幕尺寸和方案亦然, 这迫使设计者在开发站点时考虑这些方面。他们要保证站点在不同的浏览器(跨浏览 器),不同的操作系统(跨平台)以及不同的设备(跨设备)上正确运行,这要求开发 者缜密地制定方案。 https://en.wikipedia.org/wiki/F trifleJS Webviews 原生操作系统的原生应用中,用 Webviews 来运行网页。不妨把 webview 想成一个嵌进原生 应用的 iframe 或 WEB 浏览器标签,而该原生应用运行在设备的系统上(比如 IOS、安卓、 windows)。 最常见的 webview 开发解决方案如下: Cordova (通常用于手机、平板的原生应用) NW.js (通常用于桌面应用) Electron design)回归测试的概念。 得益于老版本 IE 使用、开发程度的大幅度降低,为浏览器 API 一致性而战的时代已离我 们远去。 2016 前端开发回顾 14 几乎人人都意识到开发网页的时候必须考虑多设备适配策略。 使用其他语言的开发者持续涌入 JS 领域,他们也带来了一些东西:例如类型检测,和对 类语法以及面向对象思想的执念。 前端开发引入了热模块替换技术和时间旅行调试。 原生 JS 浏览器模块加载器更受期待了。0 码力 | 164 页 | 6.43 MB | 1 年前3
Hello 算法 1.1.0 JavaScript版是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法 A 的运行 时间比算法 B 短;但在另一台配置不同的计算机中,可能得到相反的测试结果。这意味着我们需要在各种机 器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。 者的优劣并根据情境选择合适的方 法至关重要。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们想准确预估一段代码的运行时间,应该如何操作呢? 1. 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 2. 评估各种计算操作所需的运行时间,例如加法操作 + 需要 1 ns ,乘法操作 * 需要 10 ns ,打印操作 print() 需要 数组与链表 hello‑algo.com 84 4.4.1 计算机存储设备 计算机中包括三种类型的存储设备:硬盘(hard disk)、内存(random‑access memory, RAM)、缓存(cache memory)。表 4‑2 展示了它们在计算机系统中的不同角色和性能特点。 表 4‑2 计算机的存储设备 硬盘 内存 缓存 用途 长期存储数据,包括操作系统、 程序、文件等0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.0.0 JavaScript版是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法 A 的运行 时间比算法 B 短;但在另一台配置不同的计算机中,可能得到相反的测试结果。这意味着我们需要在各种机 器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。 者的优劣并根据情境选择合适的方 法至关重要。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们想准确预估一段代码的运行时间,应该如何操作呢? 1. 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 2. 评估各种计算操作所需的运行时间,例如加法操作 + 需要 1 ns ,乘法操作 * 需要 10 ns ,打印操作 print() 需要 数组与链表 hello‑algo.com 83 4.4.1 计算机存储设备 计算机中包括三种类型的存储设备:「硬盘 hard disk」、「内存 random‑access memory, RAM」、「缓存 cache memory」。表 4‑2 展示了它们在计算机系统中的不同角色和性能特点。 表 4‑2 计算机的存储设备 硬盘 内存 缓存 用途 长期存储数据,包括操作系统、 程序、文件等0 码力 | 376 页 | 17.57 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版}); 上面的原始代码用了箭头函数,Babel 将其转为普通函数,就能在不支持箭头函数 的 JavaScript 环境执行了。 配置文件 .babelrc Babel 的配置文件是 .babelrc ,存放在项目的根目录下。使用 Babel 的第一步, 就是配置这个文件。 该文件用来设置转码规则和插件,基本格式如下。 { "presets": [], "plugins": map, ast } // Babel AST转码 babel.transformFromAst(ast, code, options); // => { code, map, ast } 配置对象 options ,可以参看官方文档http://babeljs.io/docs/usage/options/。 下面是一个例子。 var es6Code = 'let x = n => n function x(n) {\n return n + 1;\n} ;' 上面代码中, transform 方法的第一个参数是一个字符串,表示需要被转换的 ES6 代码,第二个参数是转换的配置对象。 ECMAScript 6简介 16 babel-polyfill Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API,比 如 Iterator0 码力 | 679 页 | 2.66 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版法的效率。最直接的方法 是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能表现。比如一个算法的并行度较高,那 么它就更适合在多核 CPU 上运行,一个算法的内存操作密集,那么它在高性能内存上的表现就会更好。也 就是说,算法在不同的机器上的测试结果可能是 者的优劣并根据情境选择合适的方 法至关重要。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们想准确预估一段代码的运行时间,应该如何操作呢? 1. 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 2. 评估各种计算操作所需的运行时间,例如加法操作 + 需要 1 ns ,乘法操作 * 需要 10 ns ,打印操作 print() 需要 数组与链表 www.hello‑algo.com 84 4.4.1 计算机存储设备 计算机中包括三种类型的存储设备:硬盘(hard disk)、内存(random‑access memory, RAM)、缓存(cache memory)。表 4‑2 展示了它们在计算机系统中的不同角色和性能特点。 表 4‑2 计算机的存储设备 硬盘 内存 缓存 用途 长期存储数据,包括操作系统、 程序、文件等0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.0.0b1 JavaScript版的最直接的方式,就是找一台计算机,把两个算法都完整跑一遍,并监控记录运行时间和内存占用情况。这种 评估方式能够反映真实情况,但是也存在很大的硬伤。 难以排除测试环境的干扰因素。硬件配置会影响到算法的性能表现。例如,在某台计算机中,算法 A 比算法 B 运行时间更短;但换到另一台配置不同的计算机中,可能会得到相反的测试结果。这意味着我们需要在各种机 器上展开测试,而这是不现实的。 展开完整测试非常耗费资源。随着输入数据量的大小 2. 时间复杂度 2.2.1. 统计算法运行时间 运行时间能够直观且准确地体现出算法的效率水平。如果我们想要 准确预估一段代码的运行时间,该如何做 呢? 1. 首先需要 确定运行平台,包括硬件配置、编程语言、系统环境等,这些都会影响到代码的运行效率。 2. 评估 各种计算操作的所需运行时间,例如加法操作 + 需要 1 ns ,乘法操作 * 需要 10 ns ,打印操作需要 5 ns 等。 JavaScript 的数组可以自由存储各种基本数据类型和对象 */ const array = [0, 0.0, 'a', false]; 3.1.2. 计算机内存 在计算机中,内存和硬盘是两种主要的存储硬件设备。「硬盘」主要用于长期存储数据,容量较大(通常可达 到 TB 级别)、速度较慢。「内存」用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。 算法运行中,相关数据都被存储在内存中0 码力 | 185 页 | 14.70 MB | 1 年前3
阮一峰 JavaScript 教程运行,但是语法要 比 JavaScript简洁。这开启了其他语言转为 JavaScript 的风 潮。 2009年,PhoneGap 项目诞生,它将 HTML5 和 JavaScript 引入 移动设备的应用程序开发,主要针对 iOS 和 Android 平台,使得 JavaScript 可以用于跨平台的应用程序开发。 2009,Google 发布 Chrome OS,号称是以浏览器为基础发展成的 2015年6月,Mozilla 在 asm.js 的基础上发布 WebAssembly 项目。这是一种 JavaScript 引擎的中间码格式,全部都是二进制, 类似于 Java 的字节码,有利于移动设备加载 JavaScript 脚本, 执行速度提高了 20+ 倍。这意味着将来的软件,会发布 JavaScript 二进制包。 2016年6月,《ECMAScript 2016 标准》发布。与前一年发布的版 preventExtensions() :防止对象扩展。 Object.isExtensible() :判断对象是否可扩展。 Object.seal() :禁止对象配置。 Object.isSealed() :判断一个对象是否可配置。 Object.freeze() :冻结一个对象。 Object.isFrozen() :判断一个对象是否被冻结。 (3)原型链相关方法 Object0 码力 | 540 页 | 3.32 MB | 10 月前3
廖雪峰JavaScript教程Firefox:Mozilla自己研制的Gecko内核和JavaScript引擎OdinMonkey。早期的Firefox 按版本发布,后来终于聪明地学习Chrome的做法进行自升级,时刻保持最新; 移动设备上目前iOS和Android两大阵营分别主要使用Apple的Safari和Google的Chrome,由 于两者都是Webkit核心,结果HTML5首先在手机上全面普及(桌面绝对是Microsoft拖了后 现代浏览器大战让微软的IE浏览器远远地落后了,因为他们解散了最有经验、战斗力最强的浏览器团 队!回过头再追赶却发现,支持HTML5的WebKit已经成为手机端的标准了,IE浏览器从此与主流移动 端设备绝缘。 浏览器大战和Node有何关系? 话说有个叫Ryan Dahl的歪果仁,他的工作是用C/C++写高性能Web服务。对于高性能,异步IO、事件 驱动是基本原则,但是用C/C++写就太痛苦了 ,所以,绝大部分需要在服务器运行期反复执行 业务逻辑的代码,必须使用异步代码,否则,同步代码在执行时期,服务器将停止响应,因为 JavaScript只有一个执行线程。 服务器启动时如果需要读取配置文件,或者结束时需要写入到状态文件时,可以使用同步代码,因为这 些代码只在启动和结束时执行一次,不影响服务器正常运行时的异步执行。 用fs读写文件 原文: https://wizardforcel0 码力 | 264 页 | 2.81 MB | 10 月前3
Hello 算法 1.0.0b5 JavaScript版是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能表现。比如在某台计算机中,算法 A 的 运行时间比算法 B 短;但在另一台配置不同的计算机中,我们可能得到相反的测试结果。这意味着我们需要 在各种机器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费 因为它们非常适合用分治思想进行分 析。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们想要准确预估一段代码的运行时间,应该如何操作 呢? 1. 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 2. 评估各种计算操作所需的运行时间,例如加法操作 + 需要 1 ns,乘法操作 * 需要 10 ns,打印操作 print() 需要 5 的顺序关系。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 3.1.2 物理结构:连续与离散 在计算机中,内存和硬盘是两种主要的存储硬件设备。硬盘主要用于长期存储数据,容量较大(通常可达到 TB 级别)、速度较慢。内存用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。 第 3 章 数据结构 hello‑algo.com0 码力 | 375 页 | 30.68 MB | 1 年前3
共 13 条
- 1
- 2













