El desarrollo de software se trata realmente de diseñar un modelo para resolver un problema particular de la manera más eficiente. El desafío principal es encontrar la abstracción correcta, que represente la esencia del sistema. Una vez que se encuentra la abstracción correcta, todo fluye naturalmente.
Por ejemplo, Facebook (producto) resuelve el problema de descubrir y conectar personas en línea. Encontraron una abstracción: un gráfico social, que funciona muy bien para construir sus modelos.
La necesidad de presentar interactivamente las actualizaciones de las personas se modeló como el suministro de noticias, que es la consulta en el gráfico social, que es en el nivel inferior una consulta a memcached y mysql.
Memcached y mysql resuelven problemas aún más genéricos utilizando sus propios modelos. Memcached es una tienda de valores clave y MySql es una base de datos relacional.
- ¿Cuáles son las otras oportunidades en el campo de TI aparte de la codificación / desarrollo con conocimientos básicos de programación Java?
- Escalabilidad: ¿Qué desafíos provoca tener un diseño con estado?
- ¿Cuáles son los KPI estándar para medir la calidad del producto y la eficiencia del equipo?
- ¿Los sistemas o el desarrollo web son mejores para mi carrera a largo plazo?
- ¿Te gusta arreglar errores?
Los ingenieros de software asimilan el problema específico a conjuntos de casos específicos a soluciones más genéricas. Luego escriben código o utilizan productos existentes para implementar la solución.