为什么 LinkedIn 应用接近半个 GB?
应用体积与可观察到的臃肿
- LinkedIn 的 iOS 应用接近 ~500 MB;线程中的一些分析指出,仅动态框架/插件就有 300 MB+,另外还有一个 Today Extension,尽管已被 Apple 弃用,它却从 <1 MB 增长到了 ~60 MB。
- 许多人把这看作“千刀万剐式死亡”:随着时间推移不断加入框架、插件和重复资源,而不是某个单一大功能导致的。
- 不少人将其与其他臃肿应用(银行、邮件、聊天小组件、登录 SDK)以及 LinkedIn 自己的网页客户端相比较,后者可能会占用 >1 GB 内存并消耗大量 CPU。
本地化与功能广度
- Uber 被举为一个例子:应用体积的一部分来自本地化和地区特定逻辑,包括翻译、货币、支付 SDK,以及按国家或城市划分的不同乘车类型和流程。
- 有人质疑仅仅字符串怎么会占这么大;也有人指出这里的“本地化”还包括功能集合、流程、指南、税务/监管页面,以及地区特定服务。
- 对于 LinkedIn,大家更多猜测的不是旅行相关的本地需求,而是捆绑在一起的全球功能和框架。
组织与激励问题
- 多条评论认为根本原因是组织层面,而不是技术栈:
- 庞大的团队、PM 驱动的“功能狂热”、简历驱动开发,以及奖励发布可见功能而非性能或体积的 OKR 体系。
- 架构师和代码审查被描述为在截止日期压力和政治因素面前几乎无能为力。
- 性能和体积回退会变成新的基线;重构被以“以后修”的工单形式推迟,而这些工单往往永远不会完成。
用户体验、黑暗模式与移动网页
- 很多人抱怨 LinkedIn 的移动网页体验被故意降级,不断弹出提示要求安装应用,使得在应用臃肿的情况下它反而更居于中心地位。
- 类似行为也出现在其他服务上(例如强制更改地区设置、与跟踪同意绑定的基于 cookie 的“个性化”)。
- 有些人认为这对用户不友好、会降低信任,因此完全避免安装这类应用。
对用户和安装量的影响
- 许多人认为应用体积确实会影响安装,尤其是对存储空间或流量受限的用户;也有人指出商店提供的分析可以揭示这一点。
- 反方观点:有人认为对于 LinkedIn 的目标用户来说,存储和带宽已经足够便宜,因此一个 500 MB 的应用是可以接受的。
“体积不是核心问题”观点
- 少数人替大应用辩护:LinkedIn 是一个复杂的“超级应用”,优先开发速度而非严格优化是合理的。
- 他们认为安装体积并不必然意味着运行时性能差,不过其他人则举例反驳,认为臃肿与迟缓显然经常相关。