当前位置: 首页 > news >正文

谷歌的技术栈是什么?

走进谷歌的工程文化:技术栈(第二部分)

从语言选择到工程标准,谷歌如何构建属于自己的技术栈?

谷歌拥有庞大且严谨的工程体系,而“技术栈与语言选择”正是支撑其全球业务的核心。在谷歌,语言不是随便选的,每一种语言背后都对应着平台团队、工具链、代码规范和自动化流程。这一篇我们重点聊:谷歌官方支持的编程语言与背后的工程文化。


一、谷歌技术栈核心:官方支持的编程语言

谷歌内部只有少数编程语言被列为“正式支持语言”,这意味着它们拥有:

✅ 专属平台团队
✅ 自动化构建 & 测试工具
✅ 性能优化编译器
✅ 安全性扫描与代码风格规范

这些语言包括:

类型官方支持语言
后端 / 系统层C++、Go、Java、Kotlin、Python
Web 前端TypeScript(正在替代 JavaScript)
移动端Kotlin & Java(Android)、Objective-C & Swift(iOS)、Rust(底层安全场景)、Dart(Flutter)

重点趋势:

  • TypeScript 正式取代 JavaScript
    谷歌工程团队已不允许添加新的 JavaScript 文件,统一迁移至 TypeScript,只允许修改旧 JS 代码。
  • Java 正在被 Kotlin 和 Go 替代
    Kotlin 在谷歌内部已不仅限于 Android,连后端服务也大量使用。新服务开发基本选用 Kotlin 或 Go,Java 被视为“旧系统语言”。
  • Rust 在 Android 系统开发中使用越来越多,尤其用于替代 C/C++ 实现更安全的底层模块。

二、移动端语言体系

谷歌在移动开发上并不单一,而是按平台与目的明确选择:

平台编程语言
AndroidKotlin(主流) + Java(旧项目) + Rust(系统/底层)
iOSObjective-C(旧项目) + Swift(主流)
跨平台Dart + Flutter

✅ Kotlin 是工程师主动推动的语言转型,因其更简洁、安全、支持协程,成为 Android 与部分后端的首选语言。
✅ Dart 主要用于 Flutter,用于开发跨平台 App(Google Ads、YouTube Kids 等都用 Flutter)。


三、谷歌语言规范:写代码要“像谷歌人一样”

谷歌极度重视代码风格统一。每种语言都有对应的“Google Style Guide”,并强制配合自动格式化工具使用。

语言对应规范
JavaGoogle Java Style + Google Java Format
TypeScriptGoogle TypeScript Style
PythonGoogle Python Style
GoGoogle Go Style
C++Google C++ Style Guide(非常严格)

📌 为什么要这么严格?

  • 代码必须在全世界工程师之间看得懂、改得动。
  • 与统一开发工具(Blaze / Bazel、评审系统、自动化测试)无缝协作。
  • 风格不统一,就无法在 Google3 的巨型代码仓库中平滑协作。

四、谷歌语言策略背后的逻辑

谷歌不是为了“技术多样性”,而是为了**“工程规模下的效率和一致性”**:

谷歌语言策略工程逻辑
只支持少数语言才能建立完整工具链 & 测试平台
限制 JavaScriptTypeScript 更安全,可自动类型检查
提倡 Kotlin更简洁、空指针安全、协程支持
引入 Rust提升系统安全性,替代不安全的 C/C++
强制风格指南保证代码可读性、可维护性、跨团队协作

总结

谷歌的语言体系并不是“灵活自由”,而是:

✔ 精选少数语言 → 全面投入 → 打造顶级工程平台
✔ 语言不仅是工具,更是工程文化与效率的体现
✔ TypeScript 替代 JavaScript、Kotlin 替代 Java,是谷歌过去几年最明显的技术趋势之一
✔ 每一行代码都要遵循 Style Guide,被自动检查、自动格式化、自动编译、自动测试

http://www.dtcms.com/a/565900.html

相关文章:

  • Token 存储与安全防护
  • HAProxy 简介及配置
  • 电商系统网站建设网站客户端制作教程
  • 只会后端不会前端如何做网站免费wordpress页面编辑器
  • BIRGMA验厂要求
  • 铝电解电容器用阳极箔:市场格局、技术演进与未来趋势
  • linux服务-vsftpd搭建
  • SAP PP生产报废单功能分享
  • 汇川H5U+HMI仿真运行追飞剪程序
  • 服装设计网站免费临桂住房和城乡建设局网站
  • 原子性与原子操作
  • Java使用okhttp发送get、post请求
  • 两种上传图片的方式——91张先生
  • web3品牌RWA资产自主发行设计方案
  • 网站公司是做什么的长沙做网站备案
  • 【k8s】Kubernetes 资源限制设置规范手册 MB与MiB的概念混淆问题
  • 网站开发需要多长时间互联网有限公司
  • 撰写网站规划书网络服务示范区创建情况
  • 汇川高压变频故障码解析F134 F149 F150 F151 F154 F155 F157 F159 F160
  • 从 C 到 C++20 协程编写方法的演变。第一部分:函数 + 宏 = 协程
  • 采购管理软件选型避坑指南
  • 广州网站搭建多少钱网站的pv uv
  • ubuntu上安装交叉编译工具链说明
  • 【博资考5】网安2025
  • 怎样在别人网站做加强链接宁波网站推广专业服务
  • 做网站申请域名中国定制家具网
  • 合肥网站建设司图石家庄建设局网站怎么打不开
  • 开启学习具身智能之路
  • 使用husky+ commitlint检查提交描述是否符合规范要求
  • 【计算机软件资格考试】软考综合知识题高频考题及答案解析3