前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2011年12月13日 Go生态洞察:从零到Go,在谷歌首页上的24小时飞跃

2011年12月13日 Go生态洞察:从零到Go,在谷歌首页上的24小时飞跃

作者头像
猫头虎
发布2024-04-09 17:49:12
710
发布2024-04-09 17:49:12
举报

2011年12月13日 Go生态洞察:从零到Go,在谷歌首页上的24小时飞跃

摘要

🔍 搜索词条:Go语言, Google Doodle, 开发速度, App Engine, 图像处理

🐯 猫头虎博主报道!今天我们来谈谈Go语言在现实世界中的一个精彩案例:如何在短短24小时内,使用Go编写程序,并成功部署在数百万用户访问的谷歌首页上。这不仅是对Go语言性能的证明,更是对开发速度的极致挑战。

引言

谷歌搜索团队的软件工程师Reinaldo Aguiar分享了他开发第一个Go程序并在一天内向数百万观众发布的经历。这是一个关于速度、效率和创造力如何在Go的世界中交汇的故事。

正文

🎨 一个特别的20%项目

Reinaldo参与了一个小而引人注目的项目——2011年的感恩节Google Doodle。这个涂鸦特色是一个火鸡,用户可以通过点击火鸡的不同部分来自定义它的样式。

用户创建的个性化火鸡可以通过点击“分享”按钮分享到Google+。由于有超过8亿种可能的图像组合,显然不可能预先计算它们所有。因此,必须即时生成这些图像快照。

🚀 选择App Engine和Go运行时

面对即刻扩展和高可用性的需求,显而易见的平台选择是Google App Engine。图像处理任务是CPU密集型的,因此性能成为决定因素。Go应用在测试中展现了优于Python 2.7应用的性能,中位延迟仅为32毫秒。

🖼️ 设计与实现

Reinaldo的方法是在URL中编码火鸡的状态,即时绘制和编码快照。这里是一些关键的Go代码片段,用于处理请求和绘制图像:

代码语言:javascript
复制
// dirs 和 urlMap 定义了图像的路径和URL参数映射。
// layoutMap 映射了每个布局元素在背景图像上的位置。
// elements 包含了所有加载到内存的图像元素。
// backgroundImage 是背景图像。
// defaultImage 是出错时返回的默认图像。

// handler 函数解析请求URL,对背景图像进行复制,
// 根据URL中的代码在背景图像上绘制元素,
// 将图像编码为JPEG,并将其作为HTTP响应直接写入。
📊 性能

应用在启动期间的平均请求延迟从未超过60毫秒,中位延迟为32毫秒,这考虑到请求处理程序在即时进行图像操作和编码,是相当快的。

📚 学习资源

Reinaldo利用App Engine的Hello World Go示例、Go包文档和展示Draw包的博客文章作为主要学习资源。

总结

🐯 Reinaldo的经历展示了Go语言的直观、简洁和清晰的语法。Go的优秀文档和从源代码生成的文档使学习变得快速和深入。在不到24小时内,他就能够学习Go并构建出一个超快速、可用于生产的涂鸦生成器。这强调了Go语言在开发速度方面的巨大潜力。本文被猫头虎的Go生态洞察专栏收录,详情点击这里

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2011年12月13日 Go生态洞察:从零到Go,在谷歌首页上的24小时飞跃
    • 摘要
      • 引言
        • 正文
          • 🎨 一个特别的20%项目
          • 🚀 选择App Engine和Go运行时
          • 🖼️ 设计与实现
          • 📊 性能
          • 📚 学习资源
        • 总结
        相关产品与服务
        图像处理
        图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档