Más que escribir código elegante, un programador tiene el rol de Arquitecto y Oracle. Piensa en la matriz 😛
Para la mayoría del software de la vida real, el cambio será inevitable. Siempre habrá características que aparecerán en el futuro. Por lo tanto, debe ponerse un sombrero como arquitecto y analizar el problema en cuestión, y también diseñar un sistema que brinde flexibilidad para futuros cambios. Un software bien diseñado se puede mantener más fácilmente. Podrá admitir nuevas funciones sin tener que introducir hacks o soluciones alternativas. Hay ventajas y desventajas en todo diseño, ya sea el costo, la complejidad, la eficiencia y la capacidad de adaptarse al cambio. Por lo tanto, pensar en múltiples formas de solucionar el mismo problema es fundamental.
Un ejemplo que puedo recordar es pensar en el cableado eléctrico de su casa. Observe el diseño de cómo funciona una lámpara de mesa junto con una toma de corriente. ¿No sería horrible si tuviera que cambiar la bombilla de luz que se vio obligado a cambiar el cableado de la toma de corriente? O si desea cambiar el interruptor en la pared que controla el tomacorriente, tuvo que desconectar la lámpara. Puede parecer una idea intuitiva, pero con mayor frecuencia los programas se escriben como si fueran un gran paquete de cables interconectados. Un ejercicio que puede realizar la próxima vez que programe es distinguir varios módulos en su código. Mire cómo están ‘conectados’, así que puede desacoplarlos, adivinar cuáles son los más propensos a cambiarlos y desacoplarlos.
- ¿Por qué los gerentes odian a Agile y qué se puede hacer al respecto?
- ¿Qué puedo hacer / construir con Python? ¿Python es mejor para ciertas necesidades de programación? ¿Qué puedes / no puedes hacer con Python?
- ¿Tengo una buena oportunidad para conseguir un trabajo de desarrollador inicial en Austin, TX, con mis credenciales enumeradas en los detalles?
- Como desarrollador de software, ¿cuáles son los 5 libros que deben leerse?
- ¿Es más difícil convertirse en un ingeniero de software que un probador de software?