diff --git "a/\347\254\254\345\233\233\351\203\250\345\210\206\342\200\224\342\200\224\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\344\270\272\345\274\200\346\272\220\351\241\271\347\233\256\345\273\272\347\253\213\350\211\257\345\245\275\347\232\204\345\237\272\347\241\200.md" "b/\347\254\254\345\233\233\351\203\250\345\210\206\342\200\224\342\200\224\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\344\270\272\345\274\200\346\272\220\351\241\271\347\233\256\345\273\272\347\253\213\350\211\257\345\245\275\347\232\204\345\237\272\347\241\200.md" index 04df1d57d8315855c94bce206d94456145b1e292..ad8e9f4050ff206761175243d54b1b5665172990 100644 --- "a/\347\254\254\345\233\233\351\203\250\345\210\206\342\200\224\342\200\224\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\344\270\272\345\274\200\346\272\220\351\241\271\347\233\256\345\273\272\347\253\213\350\211\257\345\245\275\347\232\204\345\237\272\347\241\200.md" +++ "b/\347\254\254\345\233\233\351\203\250\345\210\206\342\200\224\342\200\224\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\344\270\272\345\274\200\346\272\220\351\241\271\347\233\256\345\273\272\347\253\213\350\211\257\345\245\275\347\232\204\345\237\272\347\241\200.md" @@ -1,4 +1,29 @@ ### 项目命名的学问 + +命名对于程序员来说,简直就是编程路上的绊脚石。几乎每一行代码,都深受着类名、变量名、方法名、参数名的折磨。当然,也不是全都无迹可寻。代码中的命名通常可以通过它在上下文中的作用、角色来命名,也可以参考各种设计模式中的习惯命名。 + +但是,给项目命名的话,其实没有那么多条条框框,我们的思维其实可以再发散一下。 + +如果是一种开源框架或者类库,可以用明确的功能来命名,如 ORM 类的框架,可以用 *SQL;如对象映射工具,则用 *Mapper;日志工具,则用 *Log…… + +但是如果我们的项目是一款开源产品,就需要用既有辨识度又能让人易于记忆的名称了。那怎么能让人已于记忆呢? + +我个人的建议是反向利用联想记忆法,从项目的功能或者特点出发,联想到有一些关联又特别的名称。可以从影视作品、文学作品、游戏作品等取材,因为这些作品往往充满想象,拥有丰富的人物、事物设定。特别是从一些深受欢迎,传播深远的作品中获取灵感。 + +再缩小范围,就是技术群体喜欢的科幻、魔幻作品,比如星球大战、漫威、哈利波特、迪士尼等等。我尝试在下面列出一些已有的和我想到的例子: + +| 项目名称 | 项目类型 | 原意 | +| ----------------- | --------------------| ----------------------| +| Azkaban | 工作流 | 哈利波特中的一所监狱 | +| Tars | RPC 框架和配套平台 | 星际穿越"中的机器人 | +| ZooKeeper | 分布式服务注册和治理 | 动物园管理员 | +| Elsa-workflow | 工作流 | 冰雪奇缘公主 | +| Tomcat | Web 服务管理器 | 经典的汤姆猫 | +| SkyWalking | 观察性分析、应用性能管理 | 天空行走,非常形象 | + + +相比还有很多优秀的项目,都有这种让人过目不忘的名称,欢迎继续补充。 + ### 如何打造一个优秀的 Readme ### 为项目撰写文档 ### 开源项目的代码质量要求