2026-06-15
根据徽声在线援引外媒的最新消息,部分伊朗裔美国人群体正筹备在洛杉矶发起一场针对伊朗队参与世界杯的抗议活动。据悉,这些伊朗裔美国人计划在当地时间周一,于英格尔伍德洛杉矶 ... [详细]
|
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同样需要插件支持。 Eclipse亦不例外。 甚至Vim用户也渴望获得相关能力。 在拥有数万名工程师、同时存在七八种IDE的公司中,每新增一个内部工具,都意味着需维护一整套插件生态,其背后的成本令人咋舌。 然而,Google的IDE碎片化现象却持续多年,这很大程度上得益于Google独特的文化——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方法上点击Find All References(查找所有引用)时,IDE背后的代码智能系统已提前建立好了整个代码库的索引。 分布在不同产品、不同团队中的调用关系,将迅速呈现。 你看到的将不再是一个项目中的代码,而是一张覆盖整个公司的软件依赖网络。 这就是超大规模代码库时代IDE的核心能力:开发者面对的是数十亿行代码,但体验却如同维护一个几万行的小项目。 03 VS Code的加入 然而,Cider也面临一个现实问题。 其后台功能强大,但前端编辑体验却不如IntelliJ、VS Code等成熟IDE。 原因很简单:自行开发IDE前端,难度极大。 光标移动、文本渲染、快捷键、多窗口、语法高亮、括号匹配……这些看似微不足道的功能,背后均蕴含巨大的工程量。 更棘手的是,全公司任何团队(如Android团队、Flutter团队、AI团队)若想在Cider中添加特定工具,均需排队等待Cider团队编写。Cider团队成为了全公司工具链的瓶颈。 为何不直接使用VS Code作为前端? 让Cider成为平台,各业务线团队可自行编写VSCode插件并在内部分发,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-06-15
根据徽声在线援引外媒的最新消息,部分伊朗裔美国人群体正筹备在洛杉矶发起一场针对伊朗队参与世界杯的抗议活动。据悉,这些伊朗裔美国人计划在当地时间周一,于英格尔伍德洛杉矶 ... [详细]
2026-05-22
上海湾区高新区通过“体育+X”模式创新,将足球赛事与产业发展、生态建设、民生服务深度融合,构建产城人共生共荣新生态,为新型城镇化提供可复制样本。 ... [详细]
2026-08-01
女子考公上岸后遭高中霸凌同学举报,引发社会关注。校园霸凌的伤害不容忽视,政审应成为筛选公职人员的重要关卡。 ... [详细]
2026-04-30
19岁国乒新星温瑞博在太原常规挑战赛中表现出色,男单男双均闯入决赛,有望实现双冠王。他身高1米86,技术不断提升,被看作王楚钦的潜在接班人。 ... [详细]
2026-06-13
公元1367-1370年,汉萨同盟对丹麦发起首次贸易战争,奠定北方霸主地位,揭示地缘经济法则:掌控供应链者更强。本文深度剖析战争背景、过程及影响。 ... [详细]
啥病人看了这个都得好啊! 副标题 这胸是真的! 副标题 你赢了! 副标题 我是关心这是在哪里
乞丐装的最新境界! 副标题 买家你确定你不是阿宝?? 副标题 这裤子不敢坐下啊! 副标题 颜值
这鼠标垫你看到了什么?邪恶了吧! 副标题 毫无违和感! 副标题 小卖部的这女孩真会选呀! 副
女人真的不容易,怀孕后,内脏被挤压的严重,挺着大肚子干啥都不方便!近日,刘嘉姵和闺蜜集体拍
锤哥的替身也是辣么的帅气! 副标题 锤哥的替身好多啊! 副标题 你杀了你的替身,你可就没替
对于古典文学,如果没有那些研究和推广的人,那么我们还真将出现文化断层的局面,因为古典文
原油也就是我们通常所说的石油,一般是指那种直接从油井里开采出来的还没有进行过加工和
说到卢森堡这个国家,大家都知道这是一个比较小的国家,但是卢森堡的经济是相当的发达的,可