2019-2021 美团技术年货 前端篇
性能优化探索与实践 36 设计稿(UI 视图)自动生成代码方案的探索 56 美团外卖终端容器无关化研发框架 74 一款可以让大型 iOS 工程编译速度提升 50% 的工具 96 从预编译的角度理解 Swift 与 Objective-C 及混编机制 108 美团民宿跨端复用框架设计与实践 165 美团跨端一体化富文本管理技术实践 186 前端 | 2020 202 移动端 在中大型团队的应用实践 610 美团 iOS 工程 zsource 命令背后的那些事儿 627 客户端单周发版下的多分支自动化管理与实践 635 美团外卖前端容器化演进实践 643 Bifrost 微前端框架及其在美团闪购中的实践 664 Litho 的使用及原理剖析 680 Android 兼容 Java 8 语法特性的原理分析 697 美团外卖商家端视频探索之旅 715 让 Flutter 之外再重新开发和维护一套鸿蒙应用,在如今业界越来越注 重开发迭代效率的环境下,所带来的开发成本也是难以估量的。因此,通过打造一套 合适的跨端框架,以相对低的成本移植应用到鸿蒙平台,并利用好该系统的特性能 力,就成为了一个非常重要的选项。 在现有的众多跨端框架当中,Flutter 以其自渲染能力带来的多端高度一致性,在新 系统的适配上有着突出的优势。虽然 Flutter 官方并没有适配鸿蒙的计划,但经过一0 码力 | 738 页 | 50.29 MB | 1 年前3阮一峰 《ECMAScript 6入门》 第三版
,将其插入网页。 ECMAScript 6简介 17 注意,网页实时将 ES6 "presets": ["latest"] }]] } } 在线转换 Babel 提供一个REPL在线编译器,可以在线将 ES6 代码转为 ES5 代码。转换后的 代码,可以直接作为 ES5 代码插入网页运行。 与其他工具的配合 许多工具需要 Babel 进行前置转码,这里举两个例子:ESLint 和 Mocha。 ESLint 用于静态检查代码的语法和风格,安装命令如下。 $ npm install "devDependencies": { "babel-eslint": "...", "eslint": "..." } } Mocha 则是一个测试框架,如果需要执行使用 ES6 语法的测试脚本,可以修 改 package.json 的 scripts.test 。 "scripts": { "test": "mocha --ui qunit0 码力 | 679 页 | 2.66 MB | 1 年前3前端开发者指南(2017)
DNS) 学习 HTTP/Networks(包括 CORS 和 WebSockets) 学习网页寄存(通称虚拟主机) 学习前端开发 学习用户界面/交互设计 学习 HTML 和 CSS 学习搜索引擎优化 学习 JavaScript 学习 Web 动画 学习 DOM、BOM 和 jQuery 学习网页字体 & 图标 2 1.6.1.14 1.6.1.15 1.6.1.16 1.6 1.7.1 1.7.2 1.7.3 1.7.4 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API 的设计 学习 React & Redux 学习渐进式 Web 应用 学习设计 JS API 学习web开发工具 7.36 1.7.37 HTTP / 网络工具 代码编辑工具 浏览器上的神兵利器 HTML 工具 CSS 工具 DOM 工具 JavaScript 工具 静态网页构建工具 无障碍访问工具 应用程序框架工具(台式机、手机、平板电脑等) 渐进式 Web 应用工具 脚手架工具 常规前端开发工具 模版/数据绑定工具 UI 组件 & 组件包 数据可视化工具(例如图表) 图形工具(例如0 码力 | 164 页 | 6.43 MB | 1 年前3阮一峰 JavaScript 教程
API 可以分成三 大类。 浏览器控制类:操作浏览器 DOM 类:操作网页的各种元素 Web 类:实现互联网的各种功能 如果宿主环境是服务器,则会提供各种操作系统的 API,比如文件操 作 API、网络通信 API等等。这些你都可以在 Node 环境中找到。 本书主要介绍 JavaScript 核心语法和浏览器网页开发的基本知识, 不涉及 Node。全书可以分成以下四大部分。 基本语法 的发明目的,就是作为浏览器的内置脚本语言,为网页 开发者提供操控浏览器的能力。它是目前唯一一种通用的浏览器脚本语 言,所有浏览器都支持。它可以让网页呈现各种特殊效果,为用户提供 良好的互动体验。 目前,全世界几乎所有网页都使用 JavaScript。如果不用,网站的 易用性和使用效率将大打折扣,无法成为操作便利、对用户友好的网 站。 对于一个互联网开发者来说,如果你想提供漂亮的网页、令用户满意的 上网体 明了万维网 (World Wide Web),从此可以在网上浏览网页文件。最早的网页 只能在操作系统的终端里浏览,也就是说只能使用命令行操作,网页都 是在字符窗口中显示,这当然非常不方便。 1992年底,美国国家超级电脑应用中心(NCSA)开始开发一个独立的 浏览器,叫做 Mosaic。这是人类历史上第一个浏览器,从此网页可以 在图形界面的窗口浏览。 1994年10月,NCSA 的一个主要程序员0 码力 | 540 页 | 3.32 MB | 10 月前3Hello 算法 1.1.0 JavaScript版
指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 为了获得最佳的阅读体验,建议你通读本节内容。 0.2.1 行文风格约定 ‧ 标题后标注 * 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加下划线(网页版),例如数组(array)。建议记住它们, 以便阅读文献。 ‧ 重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 有特指含义的词句会使用“引号”标注,以避免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 在仓库的 codes 文件夹内 找到对应的源代码文件。源代码文件可一键运行,将帮助你节省不必要的调试时间,让你能够专注于学习内 容。 图 0‑5 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以0 码力 | 379 页 | 18.46 MB | 1 年前3Hello 算法 1.2.0 简体中文 JavaScript 版
指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 为了获得最佳的阅读体验,建议你通读本节内容。 0.2.1 行文风格约定 ‧ 标题后标注 * 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加下划线(网页版),例如数组(array)。建议记住它们, 以便阅读文献。 ‧ 重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 有特指含义的词句会使用“引号”标注,以避免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 在仓库的 codes 文件夹内 找到对应的源代码文件。源代码文件可一键运行,将帮助你节省不必要的调试时间,让你能够专注于学习内 容。 图 0‑5 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以0 码力 | 379 页 | 18.47 MB | 10 月前3Hello 算法 1.0.0 JavaScript版
各位老师和同学批评指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 在仓库的 codes 文件夹内 找到对应的源代码文件。源代码文件可一键运行,将帮助你节省不必要的调试时间,让你能够专注于学习内 容。 图 0‑5 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 8 0.2.4 在提问讨论中共同成长 在阅读本书时,请不要轻易跳过那些没学明白的知识点。欢迎在评论区提出你的问题,我和小伙伴们将竭诚 为你解答,一般情况下可在两天内回复。 如图 0‑7 所示,网页版每个章节的底部都配有评论区。希望你能多关注评论区的内容。一方面,你可以了解 大家遇到的问题,从而查漏补缺,激发更深入的思考。另一方面,期待你能慷慨地回答其他小伙伴的问题,分 享你的见解,帮助他人进步。0 码力 | 376 页 | 17.57 MB | 1 年前3Hello 算法 1.0.0b5 JavaScript版
识体系。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 一个挑战,但请放心,这是很正常的。我们可以按 照“艾宾浩斯遗忘曲线”来复习题目,通常在进行 3‑5 轮的重复后,就能将其牢记在心。 3. 搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体 系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心 得可以在各个社区找到。 如图 0‑7 所示,本书内容主要涵盖“第一阶段 对于算法新手,在初学阶段阅读一本入门书籍至关重要,可以少走许多弯路。 ‧ 书内的动画和图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。 ‧ 实践乃学习编程之最佳途径。强烈建议运行源代码并亲自敲打代码。 ‧ 本书网页版的每个章节都设有讨论区,欢迎随时分享你的疑惑与见解。 9 第 1 章 初识算法 � 一位少女翩翩起舞,与数据交织在一起,裙摆上飘扬着算法的旋律。 她邀请你共舞,请紧跟她的步伐,踏入充满逻辑与美感的算法世界。0 码力 | 375 页 | 30.68 MB | 1 年前3ECMAScript规范 第三版 中文版
...........................................................................................9 4.1 网页脚本................................................................................................. 言的能力变得完备。脚本语言是为了能被专业或非专业程序员所使用而设计的。为了适应 非专 业程序员,语言的一些方面会多少有些不严格。 ECMAScript 从一开始就被设计成一种网页脚本语言(Web scripting language)作为基于网页 的、客户端—服务器端(C/S)构架的建筑师,它能提供一 种机制,用来使浏览器中的网站页面更 加活跃,并展示服务器端的处理情况。ECMAScript 能够为各种主机环境,以及这个文档所描述 Conference Proceedings,pp. 227-C241,Orlando,FL,October 1987. 4.1 网页脚本 网页浏览器为 ECMAScript 提供了一个宿主环境以进行客户端的计算,例如:代表窗口、 菜单、浮动条、对话框、文本区域、锚点、框架、历史、cookies,以及输入/输出功能的对 象。 深入说来,主机环境提供了一套向事件上附加脚本代码的方法,这些事件有焦点的改变,页面0 码力 | 58 页 | 563.06 KB | 1 年前3Hello 算法 1.0.0b1 JavaScript版
知识体系。 书内的代码配有可一键运行的源文件,托管在 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的展示 效果有限,可前往 hello‑algo.com 网页版获得更好的阅读体验。 致谢 本书在开源社区的群策群力下逐步成长,感谢每一位撰稿人,是他们的无私奉献让这本书变得更好,他 们是(按照 GitHub 自动生成的顺序):krahets, justin‑tse 点,但这是很正常的,请不要担心。学习中 有一种概念叫“周期性回顾”,同一道题隔段时间做一次,在重复 3 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用进阶刷题方案,例如按专题分类、一题多解、一解多题等,相关刷题心得可以 在各个社区中找到。 作为一本入门教程,本书内容主要对应“第一阶段 链表结点比数组元素占用更大。 综上,我们不能简单地确定哪种实现更加省内存,需要 case‑by‑case 地分析。 5.1.4. 栈典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就将上一个网页执行 入栈,这样我们就可以通过「后退」操作来回到上一页面,后退操作实际上是在执行出栈。如果要同时 支持后退和前进,那么则需要两个栈来配合实现。 ‧ 程序内存管理。每当调用函数时,系统0 码力 | 185 页 | 14.70 MB | 1 年前3
共 19 条
- 1
- 2