Gran pregunta En estos días es menos probable que te encuentres con grandes programas monolíticos. Incluso los núcleos del sistema operativo son algo livianos. Pero en el pasado, cuando la multitarea / subprocesamiento no estaba disponible o era difícil de desarrollar en algunas plataformas, escribí algunos programas enormes. Uno era un sistema de administración de reclamos en una PC (¡cargado desde un disquete, por supuesto!). Eso fue muchas líneas de código fuente C. Pero creo que una mayor cantidad de líneas de código (aún más pequeñas porque estaba escrita en lenguaje ensamblador y compilada en un pequeño ejecutable) era un sistema de tablón de anuncios que escribí para Apple IIgs.
En estos días tengo múltiples procesos y / o hilos a mi disposición, puedo hacer uso de bibliotecas preexistentes y puedo desarrollar mis propias bibliotecas, por lo que el código dedicado a mis programas reales es mucho más pequeño. Además, la mayor parte de mi trabajo se realiza en un entorno de colaboración, por lo que puedo aprovechar el código proporcionado por mis compañeros de trabajo y viceversa. Además de eso, dividir los problemas grandes en trozos más pequeños, reutilizables y fáciles de mantener tiene muchas ventajas sobre el diseño de programas monolíticos. Dudo que alguna vez necesite volver a escribir un gran programa. Por otro lado, estoy seguro de que continuaré desarrollando sistemas grandes.
- ¿Por qué querría un nuevo ingeniero de software graduado unirse a Databricks sobre Cloudera, o viceversa?
- Desarrolladores, si estuvieran aprendiendo a codificar hoy y quisieran llegar al punto en el que pudieran crear aplicaciones en Ruby, ¿por dónde comenzarían?
- Cómo traducir una buena idea de producto en un producto de software real
- ¿Es el aprendizaje en profundidad de tecnologías particulares una pérdida de tiempo en ingeniería de software?
- Cómo diferenciar entre no ser lo suficientemente inteligente frente a no esforzarse lo suficiente