干嘛不去掉“I”和“Impl”?
这篇文章从编程中的命名惯例切入,探讨了一个看似微小却引发讨论的习惯:为什么接口类总要加上“I”前缀(如`IRepository`),而实现类又必须缀以“Impl”(如`RepositoryImpl`)?作者对这种双重标记的必要性提出了质疑。 核心争议在于,如果接口和实现本就是成对出现的关系,那么同时添加“I”和“Impl”是否显得冗余?文章分析了这种命名方式的历史渊源,指出它在早期IDE跳转和代码导航功能尚不完善时,有助于快速区分类型。然而,在现代开发环境中,类型颜色、图标和智能提示已能清晰标示接口与类,这种命名约定反而可能增加无意义的阅读负担,让代码变得啰嗦。 作者进而对比了不同场景下的权衡:在大型、跨团队的项目中,明确的命名规范有助于降低理解成本;而在追求简洁的领域或小型项目中,去掉冗余前缀能让代码更清爽。文章并未给出一刀切的结论,而是引导读者思考——当工具已经足够智能时,我们是否还应该被旧的命名教条所束缚?这种对“惯例”的反思,对于注重代码整洁与可维护性的开发者来说,提供了一个有意思的审视视角。