convención de nomenclatura para proyectos de código abierto iOS / OSX

12

No siempre, pero la mayoría de las veces, encontrará proyectos de código abierto iOS o Mac OS X con nombres que comienzan con las letras iniciales del autor, nombres y apellidos. Si un proyecto fuera creado por Nick Leblanc, el proyecto se leería como NLMyProject .

Ejemplos:

¿De dónde viene eso? ¿Una persona lo escribió de esta manera primero y luego todos los demás lo siguieron?

No pude encontrar nada al respecto, incluso en Directrices de Apple . ¿Ese idioma está escrito en alguna parte?

    
pregunta Stéphane Bruckert 11.10.2014 - 20:02

1 respuesta

16

El objetivo C, como C, no tiene espacios de nombres. Esto significa que si alguien ya ha definido una función foo o una clase Bar , debe ser globalmente única y usted no puede definirla. Esto puede causar muchos dolores de cabeza cuando tienes tu código y luego agregas otra biblioteca y de repente las cosas se rompen en lugares extraños.

Hay es una guía presentada por Apple para esto en Programación con Objective C: Convenciones de la biblioteca para desarrolladores de iOS:

  

Algunos nombres deben ser únicos en tu aplicación

     

Cada vez que cree un nuevo tipo, símbolo o identificador, primero debe considerar el ámbito en el que el nombre debe ser único. A veces, este ámbito puede ser la aplicación completa, incluidos los marcos vinculados; a veces el alcance se limita solo a una clase adjunta o incluso a un bloque de código.

     

Los nombres de clase deben ser únicos en una aplicación completa

     

Las clases de Objective-C deben tener un nombre único, no solo dentro del código que está escribiendo en un proyecto, sino también en cualquier marco o paquete que pueda incluir. Como ejemplo, debes evitar el uso de nombres de clase genéricos como ViewController o TextParser porque es posible que un marco que incluyas en tu aplicación no siga las convenciones y cree clases con los mismos nombres.

     

Para mantener los nombres de clase únicos, la convención es usar prefijos en todas las clases. Te habrás dado cuenta de que los nombres de las clases Cocoa y Cocoa Touch suelen comenzar con NS o UI. Apple reserva los prefijos de dos letras como estos para su uso en clases de marco. A medida que aprenda más sobre Cocoa y Cocoa Touch, encontrará una variedad de otros prefijos que se relacionan con marcos específicos:

     

...

     

Sus propias clases deben usar prefijos de tres letras. Estos pueden estar relacionados con una combinación del nombre de su empresa y el nombre de su aplicación, o incluso con un componente específico dentro de su aplicación. Como ejemplo, si su compañía se llamara Whispering Oak y estuviera desarrollando un juego llamado Zebra Surprise, podría elegir WZS o WOZ como su prefijo de clase.

Entonces, las bibliotecas que mencionas rompen esta convención, pero se encuentran en el centro del problema de la falta de espacios de nombre dentro del Objetivo C.

Lecturas adicionales
Espacios de nombre por NSHipster
¿Cuál es la mejor manera de resolver una colisión de espacio de nombres de Objective-C?
¿Cómo se usan los espacios de nombres en el código objetivo-c de iOS?

    
respondido por el user40980 11.10.2014 - 20:23

Lea otras preguntas en las etiquetas