Objective-C类命名约定与Uncle Bob

Ogr*_*amp 7 coding-style objective-c

Chapter 2: Meaningful Names叔叔鲍勃写道:

不要添加无偿的上下文

在一个名为"Gas Station Deluxe"的想象应用程序中,为每个类添加前缀是个坏主意GDS.坦率地说,你正在反对你的工具.您键入G并按下完成键,并获得系统中每个类的一英里长的列表

实际上,这是我在一年多前使用Objective-C的第一天发现的.在Java之后它非常令人失望,但我认为我只是一个对此感到恼火的人:)我明白,"清洁代码"一书大部分时间都指Java,而Java与Objective-C不同,它具有命名空间(包).

如果您正在构建应用程序而不是库,那么您是否在课程中使用了2-3个字母前缀?你觉得怎么样,语言设计不好,语言"功能"还是鲍勃叔叔不在这里?

Cal*_*leb 12

也许这里的关键词是无偿的.在Objective-C中,前缀有助于减少名称冲突的可能性.在Java和C++等其他语言中,对命名空间的支持的存在使得前缀无偿使用(并且违反了经常引用的DRY原则).但是,在Objective-C中,前缀是有意义的,有用的,而不是无偿的.

  • @OgreSwamp关于Objective-C要记住的两件事是,它与C++一样古老(都出现在1983年),在许多情况下,它避开了特性和复杂性,并用惯例和风格取而代之.也许命名空间非常有用,并且会对语言进行一些改进,因此将它们作为语言特性引入是值得的.(我不这么认为.)无论如何,我的目的不是解释前缀,而是指出指南并不意味着前缀是坏的,只有前缀是坏的,如果它们不起作用. (2认同)