C# Guía de estilo
Objetivo: Claridad y facilidad en la lectura de código por otros programadores/desarrolladores.
Descripción: Al seguir una guía de estilo estandarizada, las revisiones de código se vuelven menos sobre cómo se ve el código y más sobre lo que hace.
Tu aplicación es el producto colectivo de personas que podrían pensar de manera diferente entre sí. Una guía de estilo ayuda a controlar esas diferencias para crear un producto final cohesivo. No importa cuántos colaboradores trabajen en un proyecto de Unity, debería parecer que ha sido desarrollado por un solo autor.
Cualquier tonto puede escribir código que una computadora pueda entender. Los buenos programadores escriben código que los humanos pueden entender.
- Martin Fowler, autor de Refactoring.
Una guía de estilo es más que una estructura, también revisa lo siguiente:
https://inmersys.atlassian.net/l/cp/pZCEXMk6
https://inmersys.atlassian.net/wiki/x/AYDdlg
Estructura de las clases
namespace Inmersys
{
public class Example : MonoBehaviour
{
//El uso de las regiones es para legibilidad solo en caso de tener demasiado código.
//Con o sin regiones, respeta el formato de los métodos, campos y demás código.
#region Private fields
//[SerializeField] aquí (EDITOR FIELDS)
//Siempre antes de los campos privados
//Solo campos private/protected aquí
#endregion
#region Public fields
//Solo campos públicos aquí
#endregion
#region MonoBehaviour CallBacks
//Siempre elimina los métodos vacíos
private void Start()
{
}
private void Update()
{
}
#endregion
#region Public methods
//Puedes crear más regiones aquí según lo requieras, solo mantén un códugo limpio y legible.
/// <summary>
/// Siempre usa comentarios XML para los métodos
/// </summary>
public void SampleMethod()
{
}
#endregion
#region Private methods
//Puedes crear más regiones aquí según lo requieras, solo mantén un códugo limpio y legible.
#endregion
#region Private Coroutines
//Todas las corutinas privadas
#endregion
#region Public Coroutines
//Todas las corutinas públicas
#endregion
#region Experimental
//Todos los métodos con propositos de testing o experimentales
//Por ejemplo si estás trabajando en algo nuevo y no es su versión final
#endregion
}
}
El uso de regiones es opcional y únicamente recomendado en casos que se requiera organizar demasiado código dentro de la clase.