Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

命名的单复数问题

  对于渣英语的我,单复数问题一直是十分苦恼的。我一直都觉得,一个集合的命名应该用名词复数才对,比如系统的用户目录就名叫 Users 而不是 User。可是英语这种蛋疼的语言,其复数也是十分不规范的。很多时候拿出一个词都根本不知道它的复数是什么。
  有人建议整个项目中全使用单数形式来命名,虽然勉强可以接受,但总是觉得逼格不够高。人家老外都用复数命名,为什么我们学习资本主义的奇技淫巧还要带上中国特色呢?其实全用单数不仅仅是逼格不够高的问题,主要是无法区分列表与项。比如 Articles 和 Article 一看就知道哪个是项哪个是列表,如果都写成 Article 就无法区分。或者可能会变成 ArticleList 和 Article,以区分列表与项(其实我挺喜欢这种命名方式的)。
  RESTful 也是个神奇的东西,它对我纠结单复数的贡献可不小。如果文章列表使用 /articles 这样一个 URL 来访问的话,那么某一篇文章应该是 /articles/:id 还是 /article/:id 呢?按照我自己对 RESTful 的理解,应该是 /articles/:id 才对,表示某个集合中的项。而后者大概是把斜杆当下划线用了吧?然而前者的情况如果使用 ArticleList 这种风格来命名的话就会出现 /articlelist/:id 这么一坨东西,或者 /article_list/:id 亦或是 /article-list/:id。总之就是如果 URL 中使用了词组就会出现奇怪的东西(URL 中的驼峰写法是不推荐的,因为服务器的操作系统可能不区分大小写)。
  其实这个问题到目前为止我都没很好地解决。不仅是编程上没解决,自然语言本身都很难解决。比如要用日语翻译「从前有座山,山里有座庙」就好像无法直译。因为汉语至少可以省略数词来强调名词单数,而日语就做不到。其实就是英语的 a/an 和 one 在日语里不容易区分。既然自然语言都无法解决,也就意味着这个问题没有自然的解决方案。只有造出一坨奇怪的命名规则(比如 CSS 中的 BEM 命名法 ),也许才能恶心地解决这个问题。   
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^