7-王刚-Flutter在Now直播中的工程实践应用,参与手机QQ、 NOW直播、腾讯课堂等产 品的Android客户端。 姓名:王刚 英文:Kirawang 职位:腾讯移动端高级工程师 手机QQ NOW直播 分享目录 uNOW直播与Flutter uNOW直播中Flutter的开发模式 uNOW直播中Flutter的工程实践 u技术思考 关于NOW直播 •腾讯出品的个人直播平台 •2016年初上线 •Top3热门个人直播App •Tens uNOW直播中Flutter的工程实践 u技术思考 开发模式 •纯Flutter开发 •不具备条件 Flutter Native Flutter •混合开发 工程化开发模式Ⅰ •IDE直接集成Flutter产出模式 •快速方便集成 无法同步Dart代码 无法启动调试 Android IOS 工程化开发模式Ⅱ • Flutter工程集成NOW工程模式 • 修改NOW工程结构 • 将D 修改编译脚本 • 支持断点调试 无法跨终端同步及维护Dart代码 工程化开发模式Ⅲ • Gradle/CocoaPods依赖管理 • 跨终端团队协作远程构建产出模式 • Dart代码独立GIT • 远程构建平台配置终端推送地址 • 构建完成自动推送更新 QCI 远程构建平台 Android Git iOS Git 工程化开发模式Ⅲ 1. 拉取Dart分支 2. 拉取Android0 码力 | 35 页 | 5.39 MB | 1 年前3
2019-2021 美团技术年货 前端篇在美团外卖的实践 14 FlutterWeb 性能优化探索与实践 36 设计稿(UI 视图)自动生成代码方案的探索 56 美团外卖终端容器无关化研发框架 74 一款可以让大型 iOS 工程编译速度提升 50% 的工具 96 从预编译的角度理解 Swift 与 Objective-C 及混编机制 108 美团民宿跨端复用框架设计与实践 165 美团跨端一体化富文本管理技术实践 Probe:Android 线上 OOM 问题定位组件 560 活动 Web 页面人机识别验证的探索与实践 580 React Native 工程中 TSLint 静态检查工具的探索之路 589 ESLint 在中大型团队的应用实践 610 美团 iOS 工程 zsource 命令背后的那些事儿 627 客户端单周发版下的多分支自动化管理与实践 635 美团外卖前端容器化演进实践 643 MTFlutter 是美团外卖搭建起的公司级 Flutter 研发生态,它的架构图如下图所示: MTFlutter 架构图 如图所示,MTFlutter 已涵盖研发、调试、测试、发布、线上运维及工程管理整套闭 环,同时落地了动态化解决方案,支撑了公司多个业务发展。在大前端融合的趋势 下,美团外卖商家端持续在探索更优的多端复用方案,通过 MTFlutter 生态的建设, 目前 Flutter0 码力 | 738 页 | 50.29 MB | 1 年前3
TypeScript Handbook(中文版)
命名空间 命名空间和模块 模块解析 声明合并 书写.d.ts文件 JSX Decorators 混入 三斜线指令 如何书写声明文件 结构 规范 举例 深入 发布 使用 工程配置 tsconfig.json NPM包的类型 TypeScript Handbook(中文版) 2 5.3 5.4 5.5 5.6 6 6.1 6.2 6.3 6.4 ts文件 JSX Decorators 混入 三斜线指令 如何书写声明文件 结构 TypeScript Handbook(中文版) 5 介绍 规范 举例 深入 发布 使用 工程配置 tsconfig.json NPM包的类型 编译选项 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this ASP.NET Core。此篇指南需要使用Visual Studio 2015或 2017。 其次,如果你的Visual Studio不带有最新版本的TypeScript,你可以从这里安装。 新建工程 1. 选择 File 2. 选择 New Project (Ctrl + Shift + N) 3. 选择 Visual C# 4. 若使用VS2015,选择 ASP.NET Web Application0 码力 | 557 页 | 7.48 MB | 1 年前3
前端开发者指南(2017)作者:科迪·林黎(Cody Lindley),由「前端大师(Frontend Masters)」倾情赞助。 这是一本可供任何人使用的指南,用于学习前端开发实践。该指南大体上勾勒出了前端工程 的轮廓,同时也讨论了前端工程的实践:2017 年,如何学习前端工程,用什么工具来实践? 笔者有意将本书打造为一份专业资料,为想要或正在实践的前端开发者们提供学习材料和开 发工具。其次,它同样可供主管、CTO、讲师和猎头们深入探索前端开发实践。 领。其价值在于为恰好够用的分类信息搜罗简 洁、聚焦且符合时宜的甄选内容,以免在特别话题下钻了牛角尖。 预期本书每年都迭代一次内容。 本书分为三部分。 第一部分:前端实践 第一部分概述了前端工程实践。 第二部分:学习前端开发 第二部分指出了学习成为一个前端开发者所需的自学资源和教学资源(译者注:教学资源包 括有讲师指导的付费课程、计划、学院和训练营)。 第三部分:前端开发工具 第 app" 这些理念可以归结为一个概念:"JAM Stack"。 展望 2017 16 第一部分. 前端实践 第一部分概述了前端工程实践。 第一部分. 前端实践 17 前端职称 以下是前端职称的描述清单。前端开发者最常用的称呼是 “前端开发者” 或 “前端工程师” 。注 意,通常在名称里包含 “前端”、“客户端”、“web UI”、“HTML”、“CSS” 和 “JavaScript”0 码力 | 164 页 | 6.43 MB | 1 年前3
TypeScript 4.0 使用手册
- 2 - 本文档使用 书栈网 · BookStack.CN 构建 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this 如何书写声明文件 介绍 目录 README - 8 - 本文档使用 书栈网 · BookStack.CN 构建 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this Decorators 混入 三斜线指令 JavaScript文件里的类型检查 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this0 码力 | 683 页 | 6.27 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Dart 版或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例, 位数的整数(例如学号),那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为 ?(??) , 其中 ? 为位数。当数据体量很大时,节省出来的运行时间就能创造较大价值(成本降低、体验变好等)。 在工程领域中,大量问题是难以达到最优解的,许多问题只是被“差不多”地解决了。问题的难易程度一方 面取决于问题本身的性质,另一方面也取决于观测问题的人的知识储备。人的知识越完备、经验越多,分析 问题就会越深入,问题就能被解决得更优雅。 非常贵,随 CPU 打包计价 我们可以将计算机存储系统想象为图 4‑9 所示的金字塔结构。越靠近金字塔顶端的存储设备的速度越快、容 量越小、成本越高。这种多层级的设计并非偶然,而是计算机科学家和工程师们经过深思熟虑的结果。 ‧ 硬盘难以被内存取代。首先,内存中的数据在断电后会丢失,因此它不适合长期存储数据;其次,内存 的成本是硬盘的几十倍,这使得它难以在消费者市场普及。 ‧ 缓存的大容量和高速度难以兼得。随着0 码力 | 378 页 | 18.46 MB | 10 月前3
Hello 算法 1.2.0 简体中文 JavaScript 版或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例, 位数的整数(例如学号),那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为 ?(??) , 其中 ? 为位数。当数据体量很大时,节省出来的运行时间就能创造较大价值(成本降低、体验变好等)。 在工程领域中,大量问题是难以达到最优解的,许多问题只是被“差不多”地解决了。问题的难易程度一方 面取决于问题本身的性质,另一方面也取决于观测问题的人的知识储备。人的知识越完备、经验越多,分析 问题就会越深入,问题就能被解决得更优雅。 非常贵,随 CPU 打包计价 我们可以将计算机存储系统想象为图 4‑9 所示的金字塔结构。越靠近金字塔顶端的存储设备的速度越快、容 量越小、成本越高。这种多层级的设计并非偶然,而是计算机科学家和工程师们经过深思熟虑的结果。 ‧ 硬盘难以被内存取代。首先,内存中的数据在断电后会丢失,因此它不适合长期存储数据;其次,内存 的成本是硬盘的几十倍,这使得它难以在消费者市场普及。 ‧ 缓存的大容量和高速度难以兼得。随着0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.2.0 简体中文 TypeScript 版或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例, 位数的整数(例如学号),那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为 ?(??) , 其中 ? 为位数。当数据体量很大时,节省出来的运行时间就能创造较大价值(成本降低、体验变好等)。 在工程领域中,大量问题是难以达到最优解的,许多问题只是被“差不多”地解决了。问题的难易程度一方 面取决于问题本身的性质,另一方面也取决于观测问题的人的知识储备。人的知识越完备、经验越多,分析 问题就会越深入,问题就能被解决得更优雅。 非常贵,随 CPU 打包计价 我们可以将计算机存储系统想象为图 4‑9 所示的金字塔结构。越靠近金字塔顶端的存储设备的速度越快、容 量越小、成本越高。这种多层级的设计并非偶然,而是计算机科学家和工程师们经过深思熟虑的结果。 ‧ 硬盘难以被内存取代。首先,内存中的数据在断电后会丢失,因此它不适合长期存储数据;其次,内存 的成本是硬盘的几十倍,这使得它难以在消费者市场普及。 ‧ 缓存的大容量和高速度难以兼得。随着0 码力 | 383 页 | 18.49 MB | 10 月前3
阮一峰 JavaScript 教程Association),希望 JavaScript 能够成为国际标准,以此抵抗 微软。ECMA 的39号技术委员会(Technical Committee 39)负 责制定和审核这个标准,成员由业内的大公司派出的工程师组成,目前 共25个人。该委员会定期开会,所有的邮件讨论和会议记录,都是公开 的。 1997年7月,ECMA 组织发布262号标准文件(ECMA-262)的第一 版,规定了浏览器脚本语言的标准,并将这种语言称为 虚拟机,可以运行 Dart 程 序,但 Dart 程序也可以被编译成 JavaScript 程序运行。 历史 - 27 - 本文档使用 书栈(BookStack.CN) 构建 2011年,微软工程师Scott Hanselman提出,JavaScript 将是互 联网的汇编语言。因为它无所不在,而且正在变得越来越快。其他语言 的程序可以被转成 JavaScript 语言,然后在浏览器中运行。 obj 就是一个类似数组的对象。但是,“类似数组的 对象”并不是数组,因为它们不具备数组特有的方法。对象 obj 没有数 组的 push 方法,使用该方法就会报错。 “类似数组的对象”的根本特征,就是具有 length 属性。只要 有 length 属性,就可以认为这个对象类似于数组。但是有一个问题, 这种 length 属性不是动态值,不会随着成员的变化而变化。 1. var0 码力 | 540 页 | 3.32 MB | 10 月前3
Hello 算法 1.1.0 Dart版或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例, 非常贵,随 CPU 打包计价 我们可以将计算机存储系统想象为图 4‑9 所示的金字塔结构。越靠近金字塔顶端的存储设备的速度越快、容 量越小、成本越高。这种多层级的设计并非偶然,而是计算机科学家和工程师们经过深思熟虑的结果。 ‧ 硬盘难以被内存取代。首先,内存中的数据在断电后会丢失,因此它不适合长期存储数据;其次,内存 的成本是硬盘的几十倍,这使得它难以在消费者市场普及。 ‧ 缓存的大容量和高速度难以兼得。随着 两种实现的对比结论与栈一致,在此不再赘述。 5.2.3 队列典型应用 ‧ 淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序处理队列中的订单。在双十一期 间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等, 队列在这些场景中可以有效地维护处理顺序。 5.3 双向队列 在队列中,0 码力 | 378 页 | 18.45 MB | 1 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













