Diferencia entre revisiones de «Políticas Generales de Desarrollo»
(Página creada con « ''Archivo Fuente: http://192.168.9.60:8080/scm/svn/Telstock-Documentation/Documentacion/Desarrollo/TSK%20-%20Pol%C3%ADticas%20Generales%20de%20Desarrollo.docx''») |
|||
Línea 1: | Línea 1: | ||
+ | == Introducción == | ||
+ | |||
+ | === Próposito === | ||
+ | |||
+ | Establecer las políticas que permitan estandarizar el desarrollo de software, logrando la creación de sistemas que sean fáciles de comprender y de mantener, además de permitir tener una mayor cantidad de código reutilizable que sea menos propenso a los errores. | ||
+ | |||
+ | === Alcance === | ||
+ | |||
+ | Después de la aprobación de este documento, las políticas aquí establecidas serán utilizadas para llevar a cabo las revisiones de código (Peer Review) que correspondan. | ||
+ | |||
+ | === Audiencia === | ||
+ | |||
+ | Este documento esta dirigido a Programadores, Líderes Técnicos, Coordinadores de Desarrollo y cualquier persona involucrada directamente con el desarrollo de software. | ||
+ | |||
+ | == Políticas Generales de Desarrollo == | ||
+ | |||
+ | # Archivos | ||
+ | |||
+ | * El nombre de cada archivo debe coincidir con el nombre de la clase o componente que contiene. | ||
+ | * Cualquier clase o componente debe ser fácilmente identificado, a través de su nombre, es decir, el nombre de cada archivo de código debe ser descriptivo. | ||
+ | * Se debe definir una sola responsabilidad por archivo. | ||
+ | * La organización de los archivos deberá respetar el patrón establecido por el lenguaje de programación que se esté utilizando. | ||
+ | * Cada archivo debe abarcar una responsabilidad específica (estilos, scripts, código, etc.), evitar que un archivo contenga más de una responsabilidad, a menos de que así lo indique el lenguaje de programación o framework utilizado. | ||
+ | |||
+ | # Clases | ||
+ | |||
+ | * Cada clase debe tener responsabilidad sobre una sola parte de toda la funcionalidad proporcionada por el sistema y esta funcionalidad debe estar encapsulada en su totalidad por una clase. | ||
+ | * Mantener clases que definen Entidades (Base de Datos, por ejemplo), separadas de aquellas que implementan únicamente funcionalidades. Las clases que definen entidades no implementan métodos. | ||
+ | * Las propiedades de una clase deberán ser colocadas antes que sus métodos. | ||
+ | * El encabezado de la clase deberá estar conformado por un bloque de comentarios que defina el objetivo de la clase y cualquier conjunto de reglas de negocio que sea necesario conocer para el correcto entendimiento de los flujos desarrollados. | ||
+ | * Una vez definida la responsabilidad de cada clase, se debe evitar la adición de cualquier código que distorsione dicha responsabilidad; en su lugar, se deberá hacer uso del concepto de Herencia para extender su funcionalidad. | ||
+ | * Una clase debe evitar cualquier dependencia de código que se pueda producir, a través del uso de Interfaces y de patrones como Inyección de Dependencias. | ||
+ | |||
+ | # Métodos | ||
+ | |||
+ | * Cada método definido deberá contener su correspondiente porción de documentación (definida por cada uno de los lenguajes), especificando el objetivo del método, además del tipo y definición de cada uno de sus parámetros. | ||
+ | * Cada método deberá cumplir con una función específica. Evitar que un mismo método realice más de una actividad específica. | ||
+ | * Evitar que un método genere o integre dependencias. | ||
+ | * Cualquier método que funcione como end point debe retornar un código de respuesta que corresponda con los establecidos para el protocolo HTTP. | ||
+ | |||
+ | # Nombramiento | ||
+ | |||
+ | * Debe existir consistencia en todo el código cuando se nombran variables, clases, métodos y cualquier otro componente que conforme la totalidad del sistema. Esta consistencia abarca también el idioma para la declaración de variables y para la colocación de comentarios de código. | ||
+ | * Se debe respetar el patrón de nombramiento definido para cada uno de los lenguajes utilizados. | ||
+ | * Utilizar la nomenclatura establecida por el lenguaje de programación, para la definición de métodos, variables y cualquier otro elemento. | ||
+ | |||
+ | # Variables | ||
+ | |||
+ | * Evitar la declaración de variables que no sean utilizadas | ||
+ | * Utilizar estructuras globales que permitan mantener un catálogo específico de constantes que puedan ser consideradas por cualquier clase o componente | ||
+ | |||
+ | # Comentarios | ||
+ | |||
+ | * Las partes importantes de código deben estar comentadas (reglas de negocio, consideraciones específicas para un cierto flujo, etc.) | ||
+ | * Evitar líneas de código comentado | ||
+ | |||
+ | # Excepciones | ||
+ | |||
+ | * Cualquier flujo del sistema debe ser controlado a través de excepciones, sin suponer que ciertas circunstancias nunca ocurrirán | ||
+ | * No deben existir bloques catch que no lleven a cabo una acción específica para ejecutar operaciones específicas que permitan tomar decisiones ante cualquier problema | ||
+ | * Mantener un estándar de registro de excepciones | ||
+ | ** Visor de eventos para sistemas legados | ||
+ | ** Archivos de texto para nuevos desarrollos | ||
''Archivo Fuente: http://192.168.9.60:8080/scm/svn/Telstock-Documentation/Documentacion/Desarrollo/TSK%20-%20Pol%C3%ADticas%20Generales%20de%20Desarrollo.docx'' | ''Archivo Fuente: http://192.168.9.60:8080/scm/svn/Telstock-Documentation/Documentacion/Desarrollo/TSK%20-%20Pol%C3%ADticas%20Generales%20de%20Desarrollo.docx'' |
Revisión del 17:54 31 jul 2020
Introducción
Próposito
Establecer las políticas que permitan estandarizar el desarrollo de software, logrando la creación de sistemas que sean fáciles de comprender y de mantener, además de permitir tener una mayor cantidad de código reutilizable que sea menos propenso a los errores.
Alcance
Después de la aprobación de este documento, las políticas aquí establecidas serán utilizadas para llevar a cabo las revisiones de código (Peer Review) que correspondan.
Audiencia
Este documento esta dirigido a Programadores, Líderes Técnicos, Coordinadores de Desarrollo y cualquier persona involucrada directamente con el desarrollo de software.
Políticas Generales de Desarrollo
- Archivos
- El nombre de cada archivo debe coincidir con el nombre de la clase o componente que contiene.
- Cualquier clase o componente debe ser fácilmente identificado, a través de su nombre, es decir, el nombre de cada archivo de código debe ser descriptivo.
- Se debe definir una sola responsabilidad por archivo.
- La organización de los archivos deberá respetar el patrón establecido por el lenguaje de programación que se esté utilizando.
- Cada archivo debe abarcar una responsabilidad específica (estilos, scripts, código, etc.), evitar que un archivo contenga más de una responsabilidad, a menos de que así lo indique el lenguaje de programación o framework utilizado.
- Clases
- Cada clase debe tener responsabilidad sobre una sola parte de toda la funcionalidad proporcionada por el sistema y esta funcionalidad debe estar encapsulada en su totalidad por una clase.
- Mantener clases que definen Entidades (Base de Datos, por ejemplo), separadas de aquellas que implementan únicamente funcionalidades. Las clases que definen entidades no implementan métodos.
- Las propiedades de una clase deberán ser colocadas antes que sus métodos.
- El encabezado de la clase deberá estar conformado por un bloque de comentarios que defina el objetivo de la clase y cualquier conjunto de reglas de negocio que sea necesario conocer para el correcto entendimiento de los flujos desarrollados.
- Una vez definida la responsabilidad de cada clase, se debe evitar la adición de cualquier código que distorsione dicha responsabilidad; en su lugar, se deberá hacer uso del concepto de Herencia para extender su funcionalidad.
- Una clase debe evitar cualquier dependencia de código que se pueda producir, a través del uso de Interfaces y de patrones como Inyección de Dependencias.
- Métodos
- Cada método definido deberá contener su correspondiente porción de documentación (definida por cada uno de los lenguajes), especificando el objetivo del método, además del tipo y definición de cada uno de sus parámetros.
- Cada método deberá cumplir con una función específica. Evitar que un mismo método realice más de una actividad específica.
- Evitar que un método genere o integre dependencias.
- Cualquier método que funcione como end point debe retornar un código de respuesta que corresponda con los establecidos para el protocolo HTTP.
- Nombramiento
- Debe existir consistencia en todo el código cuando se nombran variables, clases, métodos y cualquier otro componente que conforme la totalidad del sistema. Esta consistencia abarca también el idioma para la declaración de variables y para la colocación de comentarios de código.
- Se debe respetar el patrón de nombramiento definido para cada uno de los lenguajes utilizados.
- Utilizar la nomenclatura establecida por el lenguaje de programación, para la definición de métodos, variables y cualquier otro elemento.
- Variables
- Evitar la declaración de variables que no sean utilizadas
- Utilizar estructuras globales que permitan mantener un catálogo específico de constantes que puedan ser consideradas por cualquier clase o componente
- Comentarios
- Las partes importantes de código deben estar comentadas (reglas de negocio, consideraciones específicas para un cierto flujo, etc.)
- Evitar líneas de código comentado
- Excepciones
- Cualquier flujo del sistema debe ser controlado a través de excepciones, sin suponer que ciertas circunstancias nunca ocurrirán
- No deben existir bloques catch que no lleven a cabo una acción específica para ejecutar operaciones específicas que permitan tomar decisiones ante cualquier problema
- Mantener un estándar de registro de excepciones
- Visor de eventos para sistemas legados
- Archivos de texto para nuevos desarrollos
Archivo Fuente: http://192.168.9.60:8080/scm/svn/Telstock-Documentation/Documentacion/Desarrollo/TSK%20-%20Pol%C3%ADticas%20Generales%20de%20Desarrollo.docx