2026-07-31
7月24日FIBA国际团结杯,中国男篮残阵出战半场领先喀麦隆19分,三分18中11,郭士强阵容调整见成效。 ... [详细]
|
Java集合框架与《Effective Java》的作者Joshua Bloch在2011年曾发表过一句引人深思的言论。 对于接触过程序员的人来说,这句话的深刻性不言而喻: 不同的IDE,实际上映射出的是程序员们各具特色的文化背景。 因此,当这种个性化的选择偏好在Google这样拥有庞大工程师队伍的公司中蔓延时,一个亟待解决的问题便浮现出来: 如果每位工程师都坚持使用自己偏爱的工具,那么公司的整体开发效率将如何保障? 01 IDE碎片化现象 从个体视角来看,程序员A钟情于vim,程序员B则偏爱IntelliJ,代码提交时并无障碍。 然而,站在Google这样的超级工程组织的立场,事情远非如此简单。 因为,众多基础设施的能力都需要与各种IDE进行适配。 以Google内部广泛使用的Bazel为例,这是Google开源的一款大规模构建系统。 你的代码中可能包含一个BUILD.bazel文件,而普通的IDE对此却一无所知。 这个BUILD.bazel文件详细定义了代码的构建方式以及依赖的模块。 然而,问题接踵而至: 要让IntelliJ支持它,需要开发相应的插件。 同样,VS Code、Eclipse乃至Vim用户也都需要类似的插件支持。 当公司汇聚了数万名工程师,同时存在七八种不同的IDE时,每引入一个新的内部工具,都意味着需要维护一整套插件生态系统,这背后的成本无疑是惊人的。 然而,Google的IDE碎片化现象却持续了多年,这很大程度上得益于Google独特的文化——20%时间政策。 工程师们可以拿出20%的工作时间,投身于自己感兴趣的项目。 许多内部工具,最初就是在这20%的时间里诞生的。 比如,有人觉得IntelliJ对Bazel的支持不够完善,便利用业余时间进行改进。 如果这一改进得到了更多工程师的认可,其他人便会继续贡献代码,逐渐形成一个内部项目,甚至可能最终发展成一个正式的团队。 Google早期使用Eclipse时也遇到了类似的问题。Eclipse原本是为“众多小项目+jar包依赖”设计的。 但Google所面对的却是一个截然不同的场景:一个庞大的源码仓库,大量源码之间直接依赖,还有复杂的自动构建系统。 结果,Eclipse经常出现崩溃的情况。 于是,有人利用20%的时间开发了一个名为MagicJar的项目,将Java项目的依赖项构建成可直接导入的jar包,无需解析整个代码树。 这些看似微不足道的改进,最终推动了Google工具链的不断发展和完善。 02 霸主初露锋芒 大约在2013年,Google内部悄然兴起了一个名为Cider的项目。 起初,它并不起眼,只是一个运行在浏览器中的编辑器。 但它却契合了Google长期以来的理念:尽可能将计算能力迁移至云端。 只需打开网页,无需复杂配置,也无需安装庞大的开发环境,即可开始工作。 同时,由于Google使用自己的代码管理系统,开发者在修改文件后,可以直接创建代码变更,经过审核后提交至主代码库。 对于一些简单的文档修改、配置调整等任务,这种体验极为高效,因此Cider在初期深受撰写文档的人员喜爱。 渐渐地,Cider开始融入面向程序员的功能,如通过Language Server Protocol(LSP)提供代码补全、跳转等支持。 后来大家发现,Cider的真正魅力并非在于浏览器中的编辑器界面,那只是冰山一角,真正的魔法在于后台。 在你打开Cider开始编写代码之前,后台已经提前对整个代码库进行了分析和索引。 对于每一个符号(symbol),系统都了如指掌:
要知道,Google采用的是单一代码库(monorepo)模式,大量产品和基础设施代码共享同一个巨型代码仓库,规模高达几十亿行。 (参见相关文章《》) 当后台将这些代码解析、索引,并构建成一个庞大的语义代码图谱时,开发体验将发生翻天覆地的变化。 假设你在Google负责维护一个底层基础设施库:日志系统(Logging Library)。 现在,你打算将:logger.LogWarning(string msg)更改为logger.LogWarn(string msg) 如果是在普通的本地IDE中,它只能分析你下载到电脑里的项目代码,帮助你修改当前工程中的调用。 但问题在于:Gmail后端是否调用了它?YouTube视频服务是否依赖它?Google Maps是否使用了它?广告计费系统是否涉及它? 这些代码可能属于完全不同的团队,甚至根本不在你的电脑里,你不可能将整个公司的代码库全部下载下来。 而在Cider这类云端IDE中,情况则截然不同。 当你在LogWarning方法上点击“查找所有引用”时,IDE背后的代码智能系统已经提前建立好了整个代码库的索引。 分布在不同产品、不同团队中的调用关系将被迅速呈现出来。 你看到的将不再是一个项目中的代码,而是一张覆盖整个公司的软件依赖网络。 这就是超大规模代码库时代IDE的核心能力:尽管开发者面对的是几十亿行代码,但体验却如同在维护一个几万行的小项目。 03 VS Code的加入 然而,Cider也遭遇了一个现实问题。 尽管其后台功能强大,但前端编辑体验却不如IntelliJ、VS Code等成熟IDE。 原因很简单:自行开发一个IDE前端,难度实在太大。 光标移动、文本渲染、快捷键、多窗口、语法高亮、括号匹配……这些看似微不足道的功能,背后都蕴含着巨大的工程量。 更麻烦的是,全公司任何团队(如Android团队、Flutter团队、AI团队)想要在Cider中添加特定工具,都必须排队等待Cider团队为他们编写。Cider团队因此成为了全公司工具链的瓶颈。 那么,为何不直接使用VS Code作为前端呢? 让Cider成为一个平台,各业务线团队可以自行编写VS Code插件并在内部分发,Cider团队只需维护底座即可。 这就是Cider V项目的由来。 当然,Google不能直接使用原版的VS Code。 它需要进行深度改造,以支持内部的版本控制系统Piper,整合代码评审系统Critique,连接Cider后端,实现代码补全和智能重构,建立内部插件市场,并解决安全、权限和分发等问题。 此外,开发者对日常使用的IDE有着极强的习惯依赖(肌肉记忆)。比如:
这些在普通人看来微不足道的改变,在工程师群体中却可能引发激烈的讨论。 这也是为什么Cider V前端即使拥有十几名工程师,仍然花费了数月时间去磨平与老Cider的微小体验差异。 04 走向统一之路 在很多大型企业中,推动工具统一往往依赖于自上而下的行政命令,但这往往容易引发工程师的抵触情绪。 然而,Cider V却与众不同。它并未被强制要求使用,但到了2023年,其占有率却达到了80%!而且这一比例还在持续增长。 对于一家拥有十几万工程师、几十亿行代码的公司来说,这无疑是一件令人惊叹的事情。 我想,原因只有一个:Cider V让程序员们用起来确实非常爽。 统一并非目的,不是要消灭Vim、IntelliJ等个人选择。真正重要的是,让每个工程师都能更快地理解代码、更安全地修改代码、更高效地协作。 随着AI时代的到来,Cider V这种云端架构将更加适合AI开发,其前途不可限量。 许多朋友一直对美国身份充满向往,但投资移民费用高昂,人才类移民门槛又太高,普通家庭难以实现。那么,去美国是否就彻底没戏了呢? 其实,很多人忽略了一种高性价比的方式:EW3雇主担保类移民。这种方式不需要拼学历、拼英语,也不需要雄厚的资金实力。唯一的“门槛”就是时间,需要耐心等待排期。它比较适合有长远规划、不着急拿身份的家庭。可以先在国内安心发展,等拿到绿卡后再过去生活。当然,每个人的情况都不同,找到适合自己的方式才是最重要的。感兴趣的朋友可以扫码详细了解一下! |
2026-07-31
7月24日FIBA国际团结杯,中国男篮残阵出战半场领先喀麦隆19分,三分18中11,郭士强阵容调整见成效。 ... [详细]
2026-03-19
徽声在线深度解析NBA扩军选秀规则,预测30支球队保护名单策略,重点分析杨瀚森入选开拓者阵容的潜在影响,揭秘各队重建方向与球员价值评估 ... [详细]
2026-03-28
曼联与DHL合作修建全天候足球场,达洛特分享曼联生涯感悟,感慨本赛季无缘欧战之痛,期待下赛季重返欧冠赛场。 ... [详细]
2026-05-06
阿尔巴尼斯在成功连任后,其态度愈发强硬:不仅高调宣称要“收回港口”,还积极寻找本土买家接手,甚至在谈判过程中放出狠话,表示“不排除采取强制措施”。然而,直到2026年4月末,随着 ... [详细]
2026-07-18
2026世界人工智能大会上,努比亚全球首款AI智能体手机亮相,致力于革新人机交互,实现一句话跨应用执行复杂任务,将手机升级为智能助手,备受期待。 ... [详细]
啥病人看了这个都得好啊! 副标题 这胸是真的! 副标题 你赢了! 副标题 我是关心这是在哪里
乞丐装的最新境界! 副标题 买家你确定你不是阿宝?? 副标题 这裤子不敢坐下啊! 副标题 颜值
这鼠标垫你看到了什么?邪恶了吧! 副标题 毫无违和感! 副标题 小卖部的这女孩真会选呀! 副
女人真的不容易,怀孕后,内脏被挤压的严重,挺着大肚子干啥都不方便!近日,刘嘉姵和闺蜜集体拍
锤哥的替身也是辣么的帅气! 副标题 锤哥的替身好多啊! 副标题 你杀了你的替身,你可就没替
倪景阳于1979年4月11日出生于黑龙江省, 2001年时因在电视剧《老爸向前冲》中饰演乐乐一
作为是国内高空挑战第一人的吴永宁,很多人应该都不会陌生,很多人都看过他的户外极限挑战
《权力的游戏》这档美国经典的系列电视剧已经告别我们有一段时间,但是剧中的一些经典画