2019-2021 美团技术年货 前端篇446 MTFlexbox 自动化埋点探索 447 Litho 在美团动态化方案 MTFlexbox 中的实践 459 开源 React Native 组件库 beeshell 2.0 发布 473 React Native 在美团外卖客户端的实践 506 Android 静态代码扫描效率优化与实践 530 Probe:Android 线上 OOM 问题定位组件 560 (HarmonyOS)是华为推出的一款面向未来、面向全场景的分布式操作系 统。在传统单设备系统能力的基础上,鸿蒙提出了基于同一套系统能力、适配多种终 端形态的分布式理念。自 2020 年 9 月 HarmonyOS 2.0 发布以来,华为加快了鸿 蒙系统大规模落地的步伐,预计 2021 年底,鸿蒙系统会覆盖包括手机、平板、智能 穿戴、智慧屏、车机在内数亿台终端设备。对移动应用而言,新的系统理念、新的交 互形式,也意味 Choreographer 以外,大多数逻辑几乎 都由 C++ 和 Java 的基础 SDK 实现,可以直接在鸿蒙上复用,问题是鸿蒙目前的 API 文档中尚没有开放类似 Choreographer 的能力。所以现阶段我们可以借用鸿蒙 提供的类似 iOS Grand Central Dispatch 的线程 API,模拟出 VSync 的信号触发 与回调: @Override public void asyncWaitForVsync(long0 码力 | 738 页 | 50.29 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版详细的法律条文请参见创意共享网站。 前言 6 ECMAScript 6简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015 年6月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应 用程序,成为企业级开发语言。 ECMAScript 和 JavaScript 的关系 一个常见的问题是,ECMAScript 要讲清楚这个问题,需要回顾历史。1996年11月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给国际标准化组织ECMA,希望这种语言能够成为国 际标准。次年,ECMA 发布262号标准文件(ECMA-262)的第一版,规定了浏览 器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是1.0版。 该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 么关系呢? 2011年,ECMAScript 5.1版发布后,就开始制定6.0版了。因此,ES6 这个词的原 意,就是指 JavaScript 语言的下一个版本。 但是,因为这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个 人不断提交新功能。事情很快就变得清楚了,不可能在一个版本里面包括所有将要 引入的功能。常规的做法是先发布6.0版,过一段时间再发6.1版,然后是6.2版、0 码力 | 679 页 | 2.66 MB | 1 年前3
TypeScript Handbook(中文版)
Generators 模块 命名空间 命名空间和模块 模块解析 声明合并 书写.d.ts文件 JSX Decorators 混入 三斜线指令 如何书写声明文件 结构 规范 举例 深入 发布 使用 工程配置 tsconfig.json NPM包的类型 TypeScript Handbook(中文版) 2 5.3 5.4 5.5 5.6 6 6.1 6.2 6 TypeScript 1.5 TypeScript 1.4 TypeScript Handbook(中文版) 3 TypeScript Handbook(中文版) TypeScript 2.3 正式发布! 从前打心眼儿里讨厌编译成JavaScript的这类语言,像Coffee,Dart等。 但是 在15年春节前后却爱上了TypeScript。 同时非常喜欢的框架Dojo,Angularjs也 声明合并 书写.d.ts文件 JSX Decorators 混入 三斜线指令 如何书写声明文件 结构 TypeScript Handbook(中文版) 5 介绍 规范 举例 深入 发布 使用 工程配置 tsconfig.json NPM包的类型 编译选项 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
JavaScript文件里的类型检查 - 2 - 本文档使用 书栈网 · BookStack.CN 构建 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 BookStack.CN 构建 build build passing passing PRs welcome TypeScript 4.0 (August 20, 2020) | 版本发布说明 ✔ TypeScript语言用于大规模应用的JavaScript开发。 ✔ TypeScript支持类型,是 JavaScript的超集且可以编译成纯JavaScript代码。 ✔ JavaScript文件里的类型检查 实用工具类型 如何书写声明文件 介绍 目录 README - 8 - 本文档使用 书栈网 · BookStack.CN 构建 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本0 码力 | 683 页 | 6.27 MB | 1 年前3
《玩转webpack》 第四章 进阶篇: 编写可维护的 webpack 构建配置"node": true } }; 冒烟测试 (smoke testing) 冒烟测试是指对提交测试的软件在进行详细深入的测试之前而进行的预测试,这种 预测试的主要目的是暴露导致软件需重新发布的基本功能失效等严重问题。 冒烟测试执行 ·是否有 JS、CSS 等静态资源文件 每次构建完成 build 目录是否有内容输出 ·是否有 HTML 文件 构建是否成功 判断构建是否成功 travis.yml 文件内容 install 安装项目依赖 script 运行测试用例 发布到 npm 添加用户: npm adduser 升级补丁版本号:npm version patch 升级版本 升级小版本号:npm version minor 升级大版本号:npm version major 发布版本:npm publish Git 规范和 Changelog 生成 ·加快 Code 良好的 Git commit 规范优势: ·根据 Git Commit 的元数据生成 Changelog ·后续维护者可以知道 Feature 被修改的原因 技术方案 提交格式要求 本地开发阶段增加 precommit 钩子 安装 husky 通过 commitmsg 钩子校验信息 npm install husky --save-dev "scripts": { "commitmsg":0 码力 | 30 页 | 5.38 MB | 1 年前3
阮一峰 JavaScript 教程本文档使用 书栈(BookStack.CN) 构建 就是在 Mosaic 的基础上,开发面向普通用户的新一代的浏览器 Netscape Navigator。 1994年12月,Navigator 发布了1.0版,市场份额一举超过90%。 Netscape 公司很快发现,Navigator 浏览器需要一种可以嵌入网 页的脚本语言,用来控制浏览器行为。当时,网速很慢而且上网费很 贵,有些操作不 可以像胶水一样,将各个部分连接起来。当然,后来的 历史是 Java 语言的浏览器插件失败了,JavaScript 反而发扬光 大。 1995年12月4日,Netscape 公司与 Sun 公司联合发布了 JavaScript 语言,对外宣传 JavaScript 是 Java 的补充,属 历史 - 20 - 本文档使用 书栈(BookStack.CN) 构建 于轻量级的 Java,专门用来操作网页。 Committee 39)负 责制定和审核这个标准,成员由业内的大公司派出的工程师组成,目前 共25个人。该委员会定期开会,所有的邮件讨论和会议记录,都是公开 的。 1997年7月,ECMA 组织发布262号标准文件(ECMA-262)的第一 版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript。这个版本就是 ECMAScript 1.0 版。之所以不叫 JavaScript,一方面是由于商标的关系,Java0 码力 | 540 页 | 3.32 MB | 10 月前3
Vue.js v3.0 教程(Vue3 教程)对于生产环境,我们推荐链接到一个明确的版本号和构建文件,以避免新版本造成的不可预期的破坏: 安装 发布版本说明 Vue Devtools CDN 安装 - 7 - 本文档使用 书栈网 · BookStack.CN 构建 在用 Vue 构建大型应用时推荐使用 npm 安装[1] 。NPM 能很好地和诸如 Vue 组件提供了纯自定义元素所不具备的一些重要功能,最突出的是跨组件数据流、自定义事件 通信以及构建工具集成。 虽然 Vue 内部没有使用自定义元素,不过在应用使用自定义元素、或以自定义元素形式发布时,依然 有很好的互操作性 (opens new window)。Vue CLI 也支持将 Vue 组件构建成为原生的自定义 元素。 我们刚才简单介绍了 Vue 核心最基本的功能——本教程的 每个组件在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载 到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这 给了用户在不同阶段添加自己的代码的机会。 比如 created 钩子可以用来在一个实例被创建之后执行代码: 1. Vue.createApp({ 2. data() { 3. return { count:0 码力 | 368 页 | 3.97 MB | 1 年前3
《玩转webpack》 第三章 基础篇 Webpack 进阶用法个模块可能有多个⽅方法,只要其中的某个⽅方法使⽤用到了了,则整个⽂文件都会被打到 bundle ⾥里里⾯面去,tree shaking 就是只把⽤用到的⽅方法打⼊入 bundle ,没⽤用到的⽅方法会在 uglify 阶段被擦除掉。 使⽤用:webpack 默认⽀支持,在 .babelrc ⾥里里设置 modules: false 即可 要求:必须是 ES6 的语法,CJS 的⽅方式不不⽀支持 · production 利利⽤用 ES6 模块的特点: ·只能作为模块顶层的语句句出现 · import 的模块名只能是字符串串常量量 · import binding 是 immutable的 代码擦除: uglify 阶段删除⽆无⽤用代码 现象:构建后的代码存在⼤大量量闭包代码 编译后(bundle.js) 编译前 (source code) 会导致什什么问题? 运⾏行行代码时创建的函数作⽤用域变多,内存开销变⼤大 代码分割的效果 ESLint 的必要性 2017年年4⽉月13⽇日,腾讯⾼高级⼯工程师⼩小明在做充值业务时,修改了了苹果 iap ⽀支付配 置,将 JSON 配置增加了了重复的 key 。代码发布后,有⼩小部分使⽤用了了 vivo ⼿手 机的⽤用户反馈充值⻚页⾯面⽩白屏,⽆无法在 Now app 内进⾏行行充值。最后问题定位是: vivo ⼿手机使⽤用了了系统⾃自带的 webview ⽽而没有使⽤用0 码力 | 69 页 | 4.33 MB | 1 年前3
electron中文教程
act Developer Tools'); 理论上,Electron 可以加载所有为 chrome 浏览器编写的 DevTools 扩展,但它们必须存放在文件夹里。那些 以 crx 形式发布的扩展是不能被加载的,除非你把它们解压到一个文件夹里。 Electron 目前并不支持 chrome 扩展里的后台运行(background pages)功能,所以那些依赖此特性的 DevTools ./Electron.app/Contents/MacOS/Electron your-app/ Electron.app 里面是 Electron 发布包,你可以在 这里 下载到。 在你完成了你的应用后,你可以按照 应用部署 指导发布一个版本,并且以已经打包好的形式运行应用。 复制并且运行这个库 electron/electron-quick-start。 注意:运行时需要你的系统已经安装了 event Event releaseNotes String - 新版本更新公告 releaseName String - 新的版本号 releaseDate Date - 新版本发布的日期 updateURL String - 更新地址 在更新下载完成的时候触发。 在 Windows 上只有 releaseName 是有效的。 autoUpdater 对象有以下的方法:0 码力 | 203 页 | 2.72 MB | 1 年前3
Hello 算法 1.1.0 Dart版享你的见解,帮助他人进步。 图 0‑7 评论区示例 0.2.5 算法学习路线 从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段。 1. 阶段一:算法入门。我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效 率等方面的内容。 2. 阶段二:刷算法题。建议从热门题目开刷,先积累至少 100 道题目,熟悉主流的算法问题。初次刷题 时,“知识遗忘”可能是一个挑战,但请 刷题计划请见此 GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo 本书的主要受众是算法初学者。如果你已有一定基础,本书能帮助你系统回顾算法知识,书中源代码也 可作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构和算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 ‧ 书中的动画图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。 ‧ 实践乃学习编程之最佳途径。强烈建议运行源代码并亲自敲代码。 ‧0 码力 | 378 页 | 18.45 MB | 1 年前3
共 48 条
- 1
- 2
- 3
- 4
- 5













