Registrarse

[PROGRAMACIÓN] Tips genéricas para programar de forma elegante y eficiente

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Os dejo unas buenas recomendaciones a la hora de programar EN GENERAL. Algunas cosas son clásicas de C# con Unity, pero son aplicables a cualquier lenguaje. Es válido para todos. Algunos lenguajes tienen diferentes standards (en python es un clásico tener los métodos snake case, por ejemplo), seguidlos.

- Ordenad las cosas por carpetas. Es absurdo ver TODO en la misma carpeta. SED ORDENADOS.
- Código siempre en inglés. Por favor, no hagáis Spanglish.
- Documentad con /// (summary) todos los métodos y clases. Los inline comments, como queráis.
- Usad siempre namespaces. Es horroroso cuando las clases se mezclan por usar nombres comunes. Muchos coinciden siempre como GameManager, SaveManager...
- Si el valor de una variable de clase NO va a ser modificable por OTRA CLASE NO HIJA DE LA MISMA, SIEMPRE es PRIVADA/PROTEGIDA.
- Si necesitamos acceder al valor de la misma, hacemos una property GET.
- NO la hacemos pública solo para visualizarla en inspector, en ese caso debe ser privada/protegida y usamos el attribute [SerializeField]
- Exponed siempre al inspector todo lo que podáis (y necesitéis) referenciar de antemano en la escena.
- usad visibilidad de variables para diferenciar su scope. Yo uso:

- m_ para variables de clase.
- _ para variables por parámetro.
- nada para variables de un método.

Ejemplo:

Código:
public class VP_MyClass
{
    int m_myVar;

    public void SetVar(int _myVar)
    {
        int myVar = _myVar;

        if (myVar == 0)
            m_myVar = 100;
    }
}
- A mi me gusta usar visibilidad en mis clases por igual. Lo podéis ver en el "VP_" del ejemplo anterior. Recordad que la visibilidad sirve para que el auto-completado sea más eficaz, ya que al buscar el "tag" de esa visibilidad os aparecerán únicamente los que la tengan dependiendo de su scope.
- Si usáis visibilidad, hacedlo siempre o no lo hagáis, pero no mezcléis.
- Usad siempre This. o nunca lo uséis. Mezclar queda mal. (en ruby y python es self.)
- Siempre CamelCase para clases y métodos con la primera en mayúscula.
- Variables siempre con la primera en minúscula para diferenciar bien de clases y métodos.
- constantes en mayúscula y snake case.
- Las enumeraciones se pueden considerar constantes, así que las escribo como tal.
- NADA debe ser estático a menos que sea estrictamente necesario (ej: instancias singleton/otros patrones).
- Usad SIEMPRE nombres legibles. No sirve de nada llamar una variable "i, k, j" si luego no vais a saber de qué se trata cuando lo leáis meses después.
- No seáis chapuzas, no hagáis spagetti code. Todo lo escalable, es mejor a la larga.
- Si sois varios en el equipo, intentad definir de antemano las "reglas" a seguir y usad TODOS el mismo estilo.
- Quitad de los comentarios todo link/comentario absurdo que haya. Tener:

// Esta mierda no furula.

No ayuda a nadie.

Y eso es todo. Si queréis aportar lo que sea, es bienvenido. Recordad que algunos lenguajes tienen sus características, pero veréis que hasta Essentials tiene su visibilidad de clases y métodos.

¡Tened un buen día de programación!
 
Última edición:
Arriba