2016,你最不应该错过的热门技术文章

本文首发在“美团技术团队”微信公众号,内容已覆盖截止至2017年1月23日最新的技术文章。

1955年3月15日,爱因斯坦给刚去世的密友Michele Besso家人的信中说:

“像我们这样信仰物理学的人都知道,过去、现在和未来之间的分别只不过是持久而顽固的幻觉。”

然而,临近岁末,我们这些普通人还是难以免俗地做一番回顾与展望。

算起来,“美团技术团队”这个公众号始自2014年9月,已经运营两年多了。

公众号对应的美团技术博客开始得更早,是2013年的12月。那时候,美团创立不到4年,千团大战还在如火如荼,美团酒旅和美团外卖都刚刚开始不久。

而现在,美团外卖今天刚刚宣布日订单突破900万,离美团酒旅按间夜数也已成为业界第一。

在美团,我们信仰耐心和坚持的力量,愿意持续去做一些正确、有积累、可能表面看上去不那么重要实则非常关键的事情。

正如美团联合创始人穆荣均在今年一次Hackathon上说的: “这个世界不缺乏有勇气的人,很多人都会想做各种惊天动地的事业。而最缺乏的,是耐心和坚持。”

技术博客和技术公众号正是耐心与坚持的结果。

从2013年的4篇文章开始,我们多年来一直坚持把团队在一线实践中获得的经验和思考写成文章,对外发布。

2016年,我们发表了55篇技术文章,终于实现了最初公司老大给我们提出的每周一篇的目标(耶!)。

让我们一起来倒数美团技术博客/公众号的年度Top 10(基于微信和博客网页浏览量统计数字,第10名也超过了1万,最高的接近3万),看看你是否错过了珠玑。

2016年,美团和大众点评两大平台实现了非常高效的融合,原来一南一北两个技术团队也迅速实现了融合,大家互相学习,获益良多。我们公众号也非常高兴地增加了来自美团上海团队的给力作者群。

李力这篇文章的主题是一个高可用系统的演进,可以视为另一篇上海团队经验总结《高可用性系统在大众点评的实践与经验》的案例。由于是交易系统,要求更高。文中提出的针对故障渠道的fail-fast机制是亮点之一。

在美团,技术最重要的作用是解决业务问题。这也是我们整个博客和公众号的重点。2016年,这方面优秀的实战文章还有不少,包括新鲜出炉的《美团酒店直连产品数据一致性演进》,和9月上海技术沙龙上分析的《大促活动前团购系统流量预算和容量评估》(这篇文章的作者是今年两位女作者之一),还有一篇重量级的文章《美团业务风控系统构建经验》,介绍了美团的风控系统在与黑色产业斗争中的一些经验以及系统构建过程中的体会。

CAT是美团在公司外应用最为广泛的开源项目,也是目前最优秀的开源分布式监控系统之一。本文作者是项目目前的负责人,在之前介绍性文章的基础上,对设计思路做了更加深入全面的剖析。

美团的监控体系中,在服务器端的CAT之上,还需要客户端监控,这就是美团外卖团队开发的《移动端性能监控方案Hertz》。

目前,美团在基础架构层面已经基本形成体系,除了CAT外,我们今年还介绍了《分布式会话跟踪系统架构设计与实践》。

明年,我们会陆续发表相关的技术文章,包括但不限于:高性能服务框架及服务治理演进、容器集群管理及弹性伸缩平台的设计与实践、大规模分布式KV存储系统、消息中间件设计与实践、分布式会话链跟踪系统设计与实践,等等。

以日订单数计,美团已经成为中国第二大电子商务平台,底层大数据系统的支撑至关重要。而其中,Spark又发挥了核心作用。今年我们一共发布了4篇Spark相关的文章,而且有2篇都进入了Top 10,可见Spark的热度。本文通过多个项目以比较广的视角,介绍了Spark在各种场景的应用。

我们目前的实时计算平台同时接入了Storm和Spark Streaming,这方面推荐阅读《Spark Streaming + Elasticsearch构建App异常监控平台》和《Storm 的可靠性保证测试》。

大数据方面,Hadoop生态仍然是我们的基础平台,今年我们有两篇深入分析HDFS NameNode内存的文章:《HDFS NameNode内存全景》和《HDFS NameNode内存详解》,都是来自实战的经验之谈。

美团外卖3年从0到900万日订单,算是互联网发展历史上的一个奇迹。外卖的实时性非常强,在这样狂飙突进式发展的背后,技术是怎么支撑的,是很好的话题。本文以时间维度,系统地总结了订单核心系统的演进过程。

这只是外卖系统演进系列文章之一,2017年我们会邀请更多美团外卖的同学分享更多领域。

同样是订单系统,大众点评平台华蔚的《大众点评订单系统分库分表实践》分享了数据库切分实践;今天发表的文章《美团团购订单系统优化记》又介绍了团购系统的优化历程。

针对类似数据库问题,外卖团队自行研发了中间件,《MTDDL——美团分布式数据访问层中间件》。

10月的美团技术沙龙是数据库专题,其中《美团的DBProxy实践》介绍了DBA团队基于360的Atlas研发的数据库中间件MTAtlas,现如今已更名为DBProxy,正式开源啦~并且发布了新的博客《美团数据库中间件DBProxy开源》,内附开源地址以及开源后的新功能。《RDS平台介绍》讨论了MySQL自动化服务平台RDS,《美团数据库运维自动化系统构建之路》介绍了我们DBA自动化运维的演进。

刘丁是我们的老作者,特别善于思考和总结。他在负责美团广告部CRM系统开发的过程中,从如何帮助决策者的角度,对CRM这个企业信息系统的核心之一做了全面和深入的思考。在我看来,这篇文章其实不限于CRM,还很好地阐述了互联网+在技术上怎么落地。

各行各业现在都要拥抱互联网,本质上是数字化,而刘丁在本文中提出,数字化分为三个层次:标准化(你的业务概念、数据类型是否能够结构化?)、自动化(你的业务流程是否能规则化、编程化?)和智能化(运用算法来改进流程)。此外他还讨论了数字化最难的方面:组织保证,构建优秀的研发团队。

这些思考虽然还比较初步,但从无到有,弥足珍贵。

类似的,《数据驱动精准化营销在大众点评的实践》也很好地通过精准营销这个场景阐述了大数据如何具体落地。

Android热更新是移动客户端技术的一个热点。Robust基于Google最新的Instant Run技术,与之前的方案相比兼容性更强而且实时生效。文章发表后引起了广泛关注,有好几个业界同行撰写了相关的文章和开源项目。

此外,2016年我们前端和移动端方面的文章还有: Android方面,《Android自定义Lint实践》讲述了我们如何定制Lint做代码静态检查,《如何构建Android MVVM 应用框架》则通过实际实现一个MVVM工具库(代码已经开源),分析了MVVM模式,《Android硬件加速原理与实现简介》介绍了GPU硬件加速技术,让软件开发者能够更好地了解硬件加速。

iOS方面,ReactiveCocoa(RAC)在美团应用广泛,在已有的多篇文章基础上,今年我们又发布了《ReactiveCocoa中潜在的内存泄漏及解决方案》和《ReactiveCocoa核心元素与信号流》。

除了RAC之外,近年来,FRP(Functional Reactive Programming,函数式响应式)思想通过RxJava、RxJS等库逐渐落地,美团的Android和Web团队也有较多应用。后续我们会组织相关的文章。

前端方面,Nodejs的Stream也是FRP的核心概念之一,邹斌的系列文章《Node.js Stream基础篇》、《进阶篇》和《实战篇》作了深入分析。《RestQL:现代化的 API 开发方式》介绍了技术学院研发组的一个数据操作工具,代码已经开源。

每年我们都有几百位同学参加职级晋升答辩,其中必要的环节就包括总结自己的收获。邵晓明同学这篇文章就是他答辩资料的整理。虽然没有特别多高大上的内容,但来自一线总结,非常系统,也非常实用,是很好性能优化的学习资料。

对了,这篇文章是微信公众号上的浏览量冠军。

性能优化方面,另外还推荐大家阅读刘丁去年发表的《性能优化模式》,也是很系统的总结,理论范儿十足。

后端技术方面,2016年还有几篇很扎实的文章,都是相关主题少见的干货: 服务容错模式 分布式系统互斥性与幂等性问题的分析与解决 Cache应用中的服务过载案例研究

Spark虽然以快著称,但在实际使用中如果性能优化不当,反而会显得很慢。本文与姊妹篇《Spark性能优化指南——高级篇》一起介绍了整套的Spark调优方案,包括开发调优、资源调优、数据倾斜调优和shuffle调优。

本文是2016年一系列基础性文章的代表。美团技术栈主要是Java体系,从实战角度对Java语言、平台以及主流框架的深入研究是必不可少的。

同类的文章还有: 红黑树深入剖析及Java实现 Java NIO浅析 聊聊clean code Spring MVC注解故障追踪记 Java Hotspot G1 GC的一些关键技术

消息队列一直是后端技术的热门话题,而且优秀的设计与项目层出不穷。本文的优点是系统全面地介绍了消息队列设计的思路。

除了这篇热文外,刘丁的《分布式队列编程:模型、实战篇》和《分布式队列编程:优化篇》从更抽象的数据结构层面讨论了队列的实践,《高性能队列——Disruptor》介绍了LMAX开发的名动一时的开源队列项目,相得益彰。

2016年的Top 10可以说是目前技术关注点的缩影。

除此之外,还有几个重要方向不能忽视。

第一个是测试,为了提升我们自己的效率,自动化测试、模板、测试工具这些都是必须多多探索的方向。这方面的文章有5篇: 基于 KIF 的 iOS UI 自动化测试和持续集成(本文作者是另一位女同学) 移动App兼容性测试工具Spider 基于 Appium 的 Android UI 自动化测试 使用模板快速编写测试用例 从0到1构建美团压测工具

第二个是云计算,别忘了我们有专门的云计算公司——美团云。2016年团队太忙,只分享了块存储方面的实践:《分布式块存储系统Ursa的设计与实现》和《MGW-美团高性能四层负载均衡》。不用着急,我们的Docker平台、自研的对象存储系统都将出现在明年。

第三个是算法,包括算法的理论与实践,还有特征工程。这方面的文章有5篇: 外卖排序系统特征生产框架 Online Learning算法理论与实践 深入FFM原理与实践

人工智能现在成了最热的技术方向,我们刚刚结束的Hackathon大奖(三部小米赞助的MIX概念手机)也被智能中心的同学摘取了。估计明年会有更多深度学习(CNN、RNN、GAN……)和其他算法的文章涌现。

最后,还有很多2015年以及更早的常青树,获得了很多的访问量,有的甚至在总排行榜上遥遥领先。这充分证明,好的技术内容并不那么容易过时。 MySQL索引原理及慢查询优化 基于Flume的美团日志收集系统 美团Android自动化之旅——生成渠道包 美团Android DEX自动拆包及动态加载简介 机器学习中的数据清洗与特征处理综述 深入理解Objective-C:Category Kafka文件存储机制那些事 Quartz应用与集群原理分析 序列化和反序列化 美团O2O排序解决方案——线上篇

2017年,我们会有更加系统的选题策划,全面覆盖美团大前端、后台、系统、算法、测试、运维六大技术通道,还有餐饮、酒店旅游、到店综合、平台、广告、技术工程与数据平台、金融服务和企业平台各部门技术团队。

2017年,我们会保持每周至少两篇技术实践文章的节奏,除了每月线下技术沙龙之外,还会定期举行线上技术直播,并把这些内容转成文章,分享给无法到场的读者。

2017年,值得期待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 629. K个逆序对数组(DP)

文章目录1. 题目2. 动态规划3. 优化的DP1. 题目 给出两个整数 n 和 k&#xff0c;找出所有包含从 1 到 n 的数字&#xff0c;且恰好拥有 k 个逆序对的不同的数组的个数。 逆序对的定义如下&#xff1a;对于数组的第i个和第 j个元素&#xff0c;如果满i < j且 a[i] > a[…

快速的找出元素是否在list中 python

number [[1,2],[3,2]] num np.array(number) np.argwhere(num2) np.argwhere(num2) array([[0, 1], [1, 1]], dtypeint64) 注意&#xff1a;只能是维度相同的时候&#xff0c;才能用该方法。 om ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or nd…

论文浅尝 | 知识图谱的神经符号推理(上)

笔记整理 | 叶橄强&#xff0c;浙江大学在读硕士&#xff0c;研究方向为知识图谱的表示学习和预训练。知识图谱推理是支撑信息提取、信息检索和推荐等机器学习任务的基础组成部分&#xff0c;并且由于知识图可以看作知识的离散符号表示&#xff0c;自然可以利用符号技术做知识图…

ICML2021 | Self-Tuning: 如何减少对标记数据的需求?

文 | 王希梅&#xff0c;高敬涵&#xff0c;龙明盛&#xff0c;王建民源 | THUML本文介绍ICML2021的中稿论文&#xff1a;Self-Tuning for Data-Efficient Deep Learning&#xff0c;就“如何减少对标记数据的需求”这一重要问题给出了我们的思考。论文标题&#xff1a;Self-Tu…

美团点评Docker容器管理平台

本文是郑坤根据第14期美团点评技术沙龙“你不知道的美团云”演讲内容整理而成&#xff0c;已发表在《程序员》杂志2017年1月刊。 美团点评容器平台简介 本文介绍美团点评的Docker容器集群管理平台&#xff08;以下简称“容器平台”&#xff09;。该平台始于2015年&#xff0c;是…

Python 获取本机或者服务器的 IP 地址

获取计算机名称 hostname socket.gethostname() 获取本机 IP ip socket.gethostbyname(hostname) print(ip) 具体操作 import socket hostname socket.gethostname() ip socket.gethostbyname(hostname) print(ip)通常使用 socket.gethostname() 方法即可获取本机 IP …

LeetCode 754. 到达终点数字(数学推理)

1. 题目 在一根无限长的数轴上&#xff0c;你站在0的位置。终点在target的位置。 每次你可以选择向左或向右移动。第 n 次移动&#xff08;从 1 开始&#xff09;&#xff0c;走 n 步。 返回到达终点需要的最小移动次数。 示例 1: 输入: target 3 输出: 2 解释: 第一次移动…

论文浅尝 | 神经符号推理综述(下)

笔记整理 | 许泽众&#xff0c;浙江大学在读博士3、神经驱动的符号推理相比于之前的两种类型&#xff0c;神经驱动的符号推理的目的是挖掘规则&#xff0c;而神经网络在其中扮演的作用是解决纯符号推理的不确定性&#xff0c;并且能够有效的减少搜索空间。这种类型的方法的基本…

Dockerfile构建python 运行项目运行环境

https://blog.csdn.net/qq_24487005/article/details/123380810 目录 构建思路 DockerFile脚本 环境文件解析 pip.conf sources.list openssl.cnf localtime install.sh startup.sh docker镜像构建 构建思路 1、把容器内需要用到的文件全部复制到容器中 2、设置一个工作目录&am…

没有导师指导,该如何自己选题发CVPR?

| 背景底层计算机视觉技术&#xff0c;如图像增强、图像复原等&#xff0c;一直以来都是一个重要且热门的研究方向。传统的方法多基于稀疏编码、小波变换等技术&#xff0c;近年来&#xff0c;深度学习的兴起为该领域带来了新的发展机遇&#xff0c;同时大幅度提升了方法性能。…

Android硬件加速原理与实现简介

在手机客户端尤其是Android应用的开发过程中&#xff0c;我们经常会接触到“硬件加速”这个词。由于操作系统对底层软硬件封装非常完善&#xff0c;上层软件开发者往往对硬件加速的底层原理了解很少&#xff0c;也不清楚了解底层原理的意义&#xff0c;因此常会有一些误解&…

LeetCode 482. 密钥格式化

1. 题目 给定一个密钥字符串S&#xff0c;只包含字母&#xff0c;数字以及 ‘-’&#xff08;破折号&#xff09;。N 个 ‘-’ 将字符串分成了 N1 组。给定一个数字 K&#xff0c;重新格式化字符串&#xff0c;除了第一个分组以外&#xff0c;每个分组要包含 K 个字符&#xf…

暑期学校 | 东南大学2021年国际暑期学校项目:从感知理解到智能认知 (知识图谱及应用课程)...

国际暑期学校开课啦 项目介绍 从感知理解到智能认知——走近新一代人工智能From perceptual understanding to intelligent cognition-Approaching a new generation of AI本项目是由东南大学计算机科学与工程学院、软件学院、人工智能学院组织&#xff0c;通过开设人工智…

The command ‘/bin/sh -c apt-get install -y vim’ returned a non-zzero code: 100

最近在学习docker时&#xff0c;发现使用ubuntu构建镜像时&#xff0c;如果有apt-get install命令&#xff0c;老是出现以下错误&#xff1a;The command ‘/bin/sh -c apt-get install -y vim’ returned a non-zzero code: 100 查了一下&#xff0c;发现很多人都说是使用ubun…

LeetCode 970. 强整数

文章目录1. 题目2. 解题2.1 暴力法2.2 优化双重循环1. 题目 给定两个正整数 x 和 y&#xff0c;如果某一整数等于 xi yj&#xff0c;其中整数 i > 0 且 j > 0&#xff0c;那么我们认为该整数是一个强整数。 返回值小于或等于 bound 的所有强整数组成的列表。 你可以按…

ACL'21 | 弱标签的垃圾数据,也能变废为宝!

文 | LawsonAbs编 | 小戏是不是感觉 NER 领域效果提升太过困难&#xff1f;最近一篇来自 Amazon 的文章提出使用强弱标签结合的方式来解决 NER 的问题。强弱标签结合其实非常立足实际的数据情况——干净又准确的强标签数据非常稀少&#xff0c;更多的是标注质量存在问题的弱标签…

聊聊clean code

clean code&#xff0c;顾名思义就是整洁的代码&#xff0c;或者说清晰、漂亮的代码&#xff0c;相信大多数工程师都希望自己能写出这样的代码。 也许这是个千人千面的话题&#xff0c;每个工程师都有自己的理解。比如我&#xff0c;从一个天天被骂代码写得烂的人&#xff0c;逐…

会议交流 | “数据智能与知识服务”研讨会的专家报告题目已更新!

“数据智能与知识服务”研讨会的专家报告题目有更新啦&#xff01;这些专家既有久负盛名的国际知名学者、也有具有前瞻洞见的业界领袖&#xff0c;更有精通各种工程实战的技术大咖。他们将围绕“数据智能与知识服务”的核心主题&#xff0c;为您带来一场豪华的学术盛宴&#xf…

dockerfile拉取python3.7镜像

docker构建python3.7镜像&#xff1a;https://zhuanlan.zhihu.com/p/137288195 FROM&#xff1a;需要什么环境 ENV&#xff1a;修改path&#xff0c;即增加/usr/local/bin这个环境变量 ADD&#xff1a;将本地代码放到虚拟容器中&#xff0c;它有两个参数&#xff0c;第一个是 .…

LeetCode 849. 到最近的人的最大距离

1. 题目 在一排座位&#xff08; seats&#xff09;中&#xff0c;1 代表有人坐在座位上&#xff0c;0 代表座位上是空的。 至少有一个空座位&#xff0c;且至少有一人坐在座位上。 亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上。 返回他到离他…