Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En lo que a desarrollo de software se refiere, como en casi cualquier otra profesión, disponer de un
entorno de trabajo adecuado puede marcar la diferencia entre obtener un gran resultado o que nuestro
trabajo sea un completo desastre.
Al respecto de esto, uno de los aspectos al que más atención deberemos de prestar es al diseño de los
distintos entornos que participan en el ciclo de vida del software y a los procedimientos que definen el
flujo de trabajo entre ellos.
Y para que todos tengamos en mente el mismo concepto de la palabra entorno, lo definiremos cómo un
sistema formado por hardware y software, así como la configuración, circunstancias y estados relativos a
él. En el diseño de nuestro procedimiento podemos establecer varios entornos con distintos fines por los
que debe pasar el software durante su ciclo de vida antes de llegar al definitivo entorno de producción.
Algunos de los factores que pueden influir a la hora de decidir que entornos incluiremos en nuestro flujo
de trabajo y que procedimientos los definirán son el tamaño del proyecto, la complejidad del software, las
tecnologías utilizadas para el desarrollo, la cantidad de desarrolladores implicados en el proyecto, la
metodología de desarrollo elegida o la criticidad del software.
Es el lugar dónde programamos, lo más habitual es que esté localizado en la propia máquina de cada
desarrollador de forma que varias
personas pueden estar trabajando
en un mismo proyecto a la vez sin
molestarse.
1. Integrar el trabajo de los diferentes desarrolladores en un repositorio central, dando como resultado
una versión del código actualizada y consolidada.
2. Automatizar las pruebas de integración y su validación antes de ser movido al siguiente entorno.
3. Enviar el código al siguiente entorno si las pruebas han sido superadas satisfactoriamente.
La forma más habitual de implementar este entorno es mediante un software de control de versiones,
dónde Git es la opción más popular. Una vez consolidado el código utilizamos los hooks para ejecutar las
pruebas definidas, notificar los resultados y enviar a pre-producción si es preciso.
Entorno de pre-producción
Una vez superadas las pruebas de integración en el entorno de integración continua, el código será
movido al entorno de pre-producción. Aquí se realizarán las pruebas de validación al conjunto del
software, teniendo como objetivo localizar cualquier error antes de llegar al entorno de producción y
evitar así los problemas derivados de ellos.
Este entorno será completamente funcional a nivel de usuario, y si hemos recomendado que el entorno
de desarrollo fuese lo más similar posible al entorno de producción, aquí se convierte en algo crítico.
Tanto el software, dónde no solo hablamos de las aplicaciones sino también de sus versiones y
configuraciones, como el hardware y los sets de datos. Cuanto mayor sea la similitud con el entorno de
producción menor será el número de incidencias que nos encontremos cuando el software esté en
productivo.
Entorno de demo
Es un entorno muy similar al de pre-producción, y por lo tanto al de producción. Lo habilitamos para que
el cliente final pueda probar la nueva aplicación o las modificaciones o correcciones realizadas a la
aplicación existente. De aquí extraeremos las impresiones del cliente y localizaremos de una forma
temprana posibles carencias en los requisitos iniciales, en el diseño o en su implementación.
Si en nuestro proyecto la validación del cliente es necesaria, no disponer de este entorno puede suponer
que el cliente valide contra el entorno de pre-producción (o mucho peor aun contra el de desarrollo o de
producción), en cuyo caso pueden darse varias situaciones:
Entorno de producción
Es la culminación de nuestro esfuerzo, el entorno dónde se verán las virtudes y defectos de nuestro
trabajo, el objeto por el que seremos valorados. Los cuatro entornos anteriores están pensados para
llegar aquí de la forma más eficiente posible garantizando la fiabilidad, y la diferencia de calidad sobre el
resultado final puede ser realmente significativa de disponer de un circuito de entornos adecuado a no
disponer de él.
Las pruebas
Uno de los aspectos más significativos de este circuito es que cada entorno debe tener su propio tipo
validación y por lo tanto de pruebas. Lo más habitual es realizar test unitarios en el entorno de
desarrollo, test de integración en el entorno de integración continua y pruebas de validación sobre el
conjunto de la aplicación en el entorno de pre-producción.
Para los test unitarios existen varias herramientas entre las que destacar PHP Unit, aunque si usamos
frameworks como Laravel, el propio framework ya nos proporciona herramientas para realizar este tipo
de pruebas. A partir de ahí existe un amplio abanico de herramientas para ayudarnos a realizar todo tipo
de comprobaciones.
Conclusión
Algoritmo
Conjunto ordenado y finito de operaciones simples a través del cual podemos hallar la solución a un
problema.
Como hemos visto los algoritmos pueden ser muy sencillos y se pueden formar de nuestra cotidianidad,
además te mostramos otros ejemplos que tu podrás resolver según lo aprendido.
Encender la estufa
Cerrar las ventanas
Contestar una llamada
Manejar un auto
Cambiar un neumático
Encender una fogata
Lavarse el cabello
Llenar un vaso de agua
Insertar una tarjeta sim
Podar una rosa
Hornear un pan
Hacer un jugo
Cortar una tabla
Ir a comprar leche
Hacer las maletas
Limpiar una herramienta
Cortar las uñas a una mascota
Los diagramas de flujo representan la secuencia lógica o los pasos que tenemos que dar para realizar
una tarea mediante unos símbolos y dentro de ellos se describen los pasos ha realizar.
Un diagrama de flujo debe proporcionar una información clara, ordenada y concisa de todos los pasos a
seguir.
Por lo dicho anteriormente, podríamos decir que: "Un diagrama de flujo es una representación gráfica o
simbólica de un proceso".