Encuentre algunos problemas que deben resolverse mediante mejores estructuras de datos y algoritmos y simplemente resuélvalos o contribuya al código abierto.
Algunos proyectos de muy fácil rendimiento y de fácil entrada pueden ser:
Bundler for Ruby: cada proyecto Ruby tiene un Gemfile que enumera las gemas (bibliotecas) que usa el proyecto. El usuario debería poder ejecutar un comando para determinar la versión más nueva de todas las gemas que podrían instalarse sin causar ningún conflicto (donde existen varias dependencias en diferentes versiones de la misma gema). Teniendo en cuenta la información de semver (versiones semánticas), el usuario debería poder utilizar la utilidad de agrupación para gestionar de forma segura y estratégica las actualizaciones de versiones principales, secundarias y de puntos.
- ¿En qué ciencia necesitas pensar más analítica y lógicamente?
- Cómo convertir [matemáticas] (- 27) _ {10} [/ matemáticas] a una magnitud con signo binario a mano
- ¿Qué problemas abiertos en matemáticas tendrían aplicaciones prácticas inmediatas si se resolvieran?
- ¿Cómo se puede determinar y mostrar la velocidad de un algoritmo (complejo) en notación Big O?
- ¿Cuál es la correlación entre las matemáticas y la informática? ¿Por qué es necesario?
Actualmente, la utilidad solo puede determinar las versiones más recientes de todas las bibliotecas instaladas que se pueden instalar, y no presta atención a las convenciones de semver. También es bastante lento, por lo que, además de la sofisticación algorítmica, también hay espacio para mejoras de rendimiento.
Lo mismo se aplica a las utilidades de gestión de paquetes para los principales lenguajes de programación. Pip para python y npm para javascript.
Las preguntas que el usuario debe responder son:
1) ¿qué bibliotecas pueden actualizarse con riesgo cero según semver?
2) ¿qué bibliotecas impiden que mi proyecto ejecute el código más reciente de la mayoría de las otras bibliotecas?
3) también, idealmente, el usuario podría usar la misma utilidad para hojear el registro de cambios o incluso el código del conjunto de cambios (de git) para todas las bibliotecas que han cambiado.
Por supuesto, para que esto funcione puede ser necesario marcar qué bibliotecas usan semver y cuáles no, pero esto no debería ser demasiado difícil para crear una lista maestra para el desarrollo inicial.