Tengo un poco de experiencia con la scala. Quiero presentarlo en un nuevo proyecto con 10 miembros. Pero a pesar de toda la expresividad de la scala, no estoy seguro de cuán simple se puede mantener y transferir el código a los nuevos miembros del equipo. Por el momento, he estudiado solo un gran proyecto en una scala http://code.google.com/p/factorie/ y algo de scala DSL (apache camel). Así que mi pregunta es cuánto scala mantenible/soportable en comparación con Java, Python y Groovy para el equipo de desarrolladores de nivel medio?¿Se puede mantener la base de código scala grande?
Respuesta
En general: la capacidad de mantenimiento de la base de código depende de (por nombrar algunos)
- La voluntad de los desarrolladores a diseñar para el mantenimiento
- La habilidad de los desarrolladores para poner en práctica su intención
- El nivel y la precisión de la documentación (exactitud con respecto a qué tan bien la documentación retrata el sistema real no con respecto a qué tan detallada es la documentación)
- La habilidad de los desarrolladores que se ocupan del mantenimiento
Puede crear un desorden utilizando cualquier idioma disponible. Podría decirse que puede crear un proyecto limpio y mantenible de cualquier tamaño utilizando cualquier lenguaje de programación que esté destinado a la producción.
Dicho eso: scala no debería ser menos sostenible que java, python o groovy. Sin embargo, el resultado del primer proyecto puede ser menos sostenible.
Respuesta corta: Sí
Respuesta larga: En comparación con Java, y mucho.
Los rasgos, las clases de casos, la coincidencia de patrones, los tipos de mayor calidad, los cierres, etc. todos conspiran para eliminar el texto estándar y hacen que sea más fácil para usted aplicar el principio DRY. Su base de código tendrá aproximadamente 1/3 del tamaño, y es mucho más fácil aislar las abstracciones clave en lugar de duplicar la lógica.
Las estructuras de prueba más nítidas también hacen que sea mucho más fácil mantener un conjunto efectivo de pruebas en su lugar.
Por supuesto ... Todo esto viene después de los puntos de Aleksi sobre la voluntad/habilidad de los desarrolladores individuales involucrados. Si el equipo no apunta activamente a la mantenibilidad, ¡el idioma más fácil de mantener del mundo no lo ayudará!
- 1. Escribiendo el código manejado por eventos que se puede mantener
- 2. Cómo mantener el código que se puede mantener después de que el programador original cerró
- 3. ¿Puede Java ejecutar un código scala compilado?
- 4. Modificar un archivo grande en Scala
- 5. ¿Puede Hadoop distribuir tareas y código base?
- 6. mantener la configuración en la base de datos
- 7. No se puede usar la clase Scala en Java
- 8. Mantener una tabla grande de valores únicos en MySQL
- 9. Imprimir base grande 256 matriz en base 10 en c
- 10. ¿Cómo logras mantener las credenciales fuera del código fuente que se puede consultar públicamente?
- 11. ¿Se puede combinar un rango en Scala?
- 12. Llamando al código de Scala desde Java con java.util.List cuando se espera la lista de Scala
- 13. Código scala loop infinito
- 14. ¿Cómo mantener el código detrás de la IU organizada?
- 15. En Scala, cómo usar Ordenar [T] con List.min o List.max y mantener el código legible
- 16. ¿Se puede optimizar este código?
- 17. mantener la historia en una base de datos
- 18. Buenos ejemplos de código scala idiomático
- 19. No se puede conectar a la base de datos .mdf
- 20. No se puede abrir la base de datos-Android
- 21. ¿Se puede configurar la "optimización de base vacía" en GCC?
- 22. Mantener elasticsearch y la base de datos en sincronía
- 23. Convertir automáticamente código de Scala a código de Java
- 24. ¿Cómo se puede mantener mongo corriendo en un servidor remoto?
- 25. Mantener el cursor en TextArea cuando no se puede editar
- 26. Scala, no se puede implementar el método genérico de Java
- 27. código Scala captura de confusión
- 28. diseño de base de datos muy grande para buscar texto
- 29. Código Scala desmitificar
- 30. Generación de código con Scala
Quizás reciba alguna atención en Programmers.SE, pero no aquí. –