2026-04-11
AI短剧“盗脸”现象频发,从明星到素人都深受其害。平台虽采取措施“打补丁”,但监管与维权之路依旧漫长,需各方共同努力解决。 ... [详细]
|
2011年,Java集合框架和《Effective Java》的作者Joshua Bloch曾说过一句耐人寻味的话,这句话在程序员圈子里引发了广泛共鸣。 如果你和程序员打过交道,就会明白这句话绝非夸张: 不同IDE的选择,实际上折射出程序员群体的文化差异。 当这种偏好延伸到Google这样拥有十几万工程师的科技巨头时,一个现实问题便浮出水面: 如果每个人都坚持使用自己偏爱的开发工具,公司的整体开发效率该如何保障? 01 IDE碎片化之困 从个体视角看,程序员A使用vim,程序员B选择IntelliJ,代码提交到版本控制系统毫无障碍。 但站在Google这样的超级工程组织角度,情况要复杂得多。 因为大量基础设施工具都需要适配不同IDE环境。 以Google内部广泛使用的Bazel构建系统为例,这是Google开源的大规模代码构建工具。 项目代码中会包含BUILD.bazel配置文件,而传统IDE对此一无所知。 这个配置文件定义了代码的构建规则和模块依赖关系。 问题随之而来: 要让IntelliJ支持Bazel,需要开发专属插件; 要让VS Code支持Bazel,同样需要开发插件; Eclipse、Vim等工具也都需要各自的适配方案。 当公司同时存在七八种主流IDE时,每引入一个新的内部工具,就意味着要维护一整套插件生态系统,这个成本之高超乎想象。 Google能够长期维持这种IDE碎片化状态,很大程度上得益于其独特的"20%时间"文化。 工程师可以利用20%的工作时间从事自己感兴趣的项目开发。 许多内部工具正是这样诞生的。 比如有工程师觉得IntelliJ对Bazel的支持不够完善,就利用业余时间进行改进; 如果这个改进获得其他工程师认可,就会吸引更多人参与贡献代码,最终可能发展成正式项目甚至独立团队。 Google早期使用Eclipse时也遇到过类似挑战。Eclipse原本是为"多个小项目+jar包依赖"设计的, 但Google面临的是完全不同的场景:单一巨型代码仓库,大量源码直接依赖,还有复杂的自动构建系统。 这导致Eclipse经常出现崩溃现象。 于是有工程师利用20%时间开发了MagicJar项目,这个工具能将Java项目的依赖项构建成可直接导入的jar包,无需解析整个代码树。 这些看似微小的改进,最终推动了Google工具链的持续进化。 02 云端IDE的崛起 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。 需要对VS Code进行深度改造:支持内部版本控制系统Piper,整合代码评审系统Critique,连接Cider后端实现代码补全和智能重构,建立内部插件市场,解决安全、权限和分发等关键问题。 此外,开发者对日常使用的IDE有着极强的习惯依赖(肌肉记忆)。比如:
这些在普通人看来微不足道的改变,在工程师群体中都会引发激烈讨论。 这也是为什么Cider V前端团队即使有十几名工程师,仍花费数月时间来消除与旧版Cider的细微体验差异。 04 统一背后的逻辑 在许多大型企业,推动工具统一往往依靠自上而下的行政命令,但这容易引发工程师的抵触情绪。 但Cider V的情况截然不同,它没有被强制推行使用,然而到2023年却已达到80%的市场占有率,且这个比例还在持续增长。 对于一家拥有十几万工程师、数十亿行代码的公司来说,这确实是个惊人的成就。 原因其实很简单:Cider V确实让程序员的工作体验得到了显著提升。 统一工具不是目的,不是要消灭Vim、IntelliJ等个人选择,真正重要的是让每个工程师都能:更快地理解代码结构,更安全地修改代码,更高效地与团队协作。 随着AI时代的到来,Cider V这种云端架构将更适应AI开发需求,其发展前景不可限量。 说到移民话题,很多人对美国身份很感兴趣,但投资移民门槛太高,人才类移民要求又很严格,普通家庭似乎难以实现。是不是就彻底没机会了呢? 其实很多人忽略了一种高性价比的方式:EW3雇主担保类移民。这种方式不需要高学历,不需要英语成绩,也不需要雄厚的资金实力。唯一的"门槛"就是需要耐心等待排期,比较适合有长远规划、不急于拿到身份的家庭。可以先在国内安心发展,等拿到绿卡后再考虑移居美国。当然,每个人的情况都不同,找到最适合自己的方式才是最重要的。感兴趣的朋友可以扫码详细了解相关信息! |
2026-04-11
AI短剧“盗脸”现象频发,从明星到素人都深受其害。平台虽采取措施“打补丁”,但监管与维权之路依旧漫长,需各方共同努力解决。 ... [详细]
2026-05-04
赛季初表现没有达到预期的蓝月军团曼城,在瓜迪奥拉的率领下,触底反弹在收官阶段展现出了极强的战斗力,英联杯决赛2球完胜阿森纳如愿捧起了冠军奖杯,联赛上一轮击败伯恩利后也反 ... [详细]
2026-07-06
你能想象吗?两位年龄加起来高达81岁的足坛老将,在世界杯的舞台上奉献了一场让球迷心跳加速、血压飙升的精彩对决。比赛过程跌宕起伏,二十多分钟内三个进球接连被吹,补时阶段的绝 ... [详细]
2026-04-23
曼联续约马奎尔后,将其视为争夺诺丁汉森林中场新星安德森的秘密武器。转会市场风云变幻,曼联能否成功引进安德森或罗杰斯,仍充满悬念。 ... [详细]
啥病人看了这个都得好啊! 副标题 这胸是真的! 副标题 你赢了! 副标题 我是关心这是在哪里
乞丐装的最新境界! 副标题 买家你确定你不是阿宝?? 副标题 这裤子不敢坐下啊! 副标题 颜值
这鼠标垫你看到了什么?邪恶了吧! 副标题 毫无违和感! 副标题 小卖部的这女孩真会选呀! 副
女人真的不容易,怀孕后,内脏被挤压的严重,挺着大肚子干啥都不方便!近日,刘嘉姵和闺蜜集体拍
锤哥的替身也是辣么的帅气! 副标题 锤哥的替身好多啊! 副标题 你杀了你的替身,你可就没替
这个世界上,每个人都有每个人自己的特点,曾经有这么一句话说,世界上的每个人,都是带着自己
美国的马斯克因为发射了一支民用火箭而震惊了全球,使得他的名字开始为大家所熟悉,那马斯
斗牛,是主要盛行于西班牙的一种表演运动,它被当地人们看作是一种很神圣的高贵的艺术行为