upper snake programacion notacion nomenclatura nombres kebab convención convencion constantes camelcase camel android mobile

android - snake - notacion camel c#



Convención de nomenclatura para Android: minúsculas con subrayado vs. camel case (9)

Creo que es bueno si usamos todas las letras pequeñas con guiones bajos.

Solo mira esto (añadiendo a lo que Daniel había respondido)

// Camel Case TextView tvUserName = (TextView) findViewById(R.id.tvUserName);

// Small Caps and Underscores TextView tvUserName = (TextView) findViewById(R.id.tv_user_name);

en mi propia experiencia, tiendo a confundir un poco la convención de casos de camello en xml porque cuando lo vincula a Java, que también usa camel case (porque es el estándar), parece un doppleganger.

Actualmente estoy programando una aplicación para Android. Ahora lo que descubrí es que no puede colocar objetos de recursos, por ejemplo, una imagen en la carpeta dibujable y ponerle el nombre "myTestImage.jpg". Esto le dará un error de compilación ya que la sintaxis de Camel Case no está permitida, por lo que tendrá que cambiarle el nombre como "my_test_image.jpg".

Pero, ¿qué pasa con los identificadores que define en el archivo XML? Digamos que tiene la siguiente definición

<TextView android:id="@+id/myTextViewFirstname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Firstname" />

Esta es una definición válida, compila y funciona perfectamente en mi emulador de Android aunque, como ve, estoy especificando el id en la sintaxis de Camel.

Ahora, las muestras de Android siempre usan minúsculas y guiones bajos. ¿Es esto solo una convención de nombres para usar minúsculas con guiones bajos para las identificaciones o puede causar problemas en el dispositivo real?

Gracias


Creo que está hablando de identificadores dentro de un archivo xml .

p.ej:

android:id="@+id/home_button"

versus

android:id="@+id/HomeButton"

No he encontrado ninguna convención o directriz en este asunto, por lo que los desarrolladores de mi proyecto utilizan ambos métodos indistintamente, lo cual es bastante doloroso :(


Creo que si utilizamos la convención de subrayado para id en archivos xml y la convención de casos camel para los campos de clase, dará una mejor visibilidad a cada desarrollador para distinguir entre identificadores XML y campos de clase.


El dispositivo no se quejará si usa los nombres de identificación camel-case. Para mi primera aplicación escribí todas las identificaciones en camel-case porque creo que se ve mejor en el código Java de esa manera, y funciona muy bien.

Sin embargo, estoy cambiando de opinión en camel-case porque terminas con dos convenciones de nombres diferentes, por ejemplo:

// This must be undescored due to naming constrictions setContentView(R.layout.my_long_layout_name); // Now this looks a little out of place findViewById(R.id.myLongSpecificId);

Yo también me pregunto sobre los estándares aquí. Google es inconsistente en sus ejemplos; a veces usan minúsculas, a veces insertan guiones bajos, y algunas veces usan camel-case.


Los nombres de archivos xml (que es lo que se utiliza en la carpeta dibujable) deben estar en minúsculas separados por el carácter de subrayado _, ya que los nombres de archivo en mayúscula no son compatibles con xml.


Si el compilador de Android está realmente haciendo lo que usted dice que restringe el caso camello (que parece bastante extraño), entonces debe apegarse a las convenciones establecidas.

Ir contra la corriente solo causará confusión innecesaria. Mantenga las cosas consistentes en todos los lugares donde sea posible.


Si mira algunas de las muestras de la aplicación Google, como:

https://github.com/google/iosched

Usan guiones bajos. Entonces ... ¿quizás así es como deberíamos hacerlo?


Si observa los campos android.R.id.* , Notará que todos están en camel-case. Entonces, si los ID de Android están escritos en camel-case, creo que debemos seguir esta convención :)


android:id="@+id/frag_account_button" frag_account_button = ((ListView)view.findViewById(R.id.frag_account_button)); android:id="@+id/fragAccountButton" fragAccountButton = ((ListView)view.findViewById(R.id.fragAccountButton));

Antes que nada, no hay un cierto estándar para definir cuál es más válido, pero tengo algunas razones para probarlo. Mi idea es razonable para mantener XML id y Java variable en el mismo nombre con camel-case convencional.

1-) es fácil llegar a la variable buscando el proyecto tanto en XML como en Java.

2-) definición de la biblioteca butterKnife

@BindView(R.id.infoTextView) TextViewFont infoTextView;

es más apropiado para mantenerse de esta manera.