2011-08-22 12 views
6

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?

+1

Quizás reciba alguna atención en Programmers.SE, pero no aquí. –

Respuesta

11

En general: la capacidad de mantenimiento de la base de código depende de (por nombrar algunos)

  1. La voluntad de los desarrolladores a diseñar para el mantenimiento
  2. La habilidad de los desarrolladores para poner en práctica su intención
  3. 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)
  4. 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.

6

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á!

Cuestiones relacionadas