2011-08-22 8 views
6

Ho una certa esperienza con lo scala. Voglio introdurlo in un nuovo progetto con 10 membri. Ma nonostante tutta l'espressività della scala, sono molto insicuro di quanto sia semplice mantenere e trasferire il codice ai nuovi membri del team. Al momento ho studiato solo un grande progetto su una scala http://code.google.com/p/factorie/ e qualche scala DSL (apache cammello). Quindi la mia domanda è: quanto scala è mantenibile/supportabile rispetto a java, python e groovy per il team di sviluppatori di livello medio?È possibile mantenere grande codebase scala?

+1

Forse riceverebbe qualche attenzione su Programmers.SE, ma non qui. –

risposta

11

In generale: la manutenibilità del codice di base dipende (solo per citarne alcuni)

  1. La volontà degli sviluppatori di progettare per la manutenibilità
  2. L'abilità degli sviluppatori per implementare il loro intento
  3. Il livello e l'accuratezza della documentazione (accuratezza rispetto a quanto bene la documentazione ritragga il sistema reale non rispetto a quanto dettagliata è la documentazione)
  4. La competenza degli sviluppatori che si occupano della manutenzione

È possibile creare un pasticcio utilizzando qualsiasi lingua disponibile. Probabilmente è possibile creare un progetto pulito e gestibile di qualsiasi dimensione utilizzando qualsiasi linguaggio di programmazione destinato all'uso in produzione.

Detto questo - scala non dovrebbe essere meno conservabile di java, python o groovy. Il risultato del primo progetto potrebbe tuttavia essere meno gestibile.

6

Risposta breve: Sì

Risposta lunga: Rispetto a Java, molto così.

Tratti, classi di casi, abbinamento di modelli, tipi di caratteri superiori, chiusure, ecc. Cospirano per rimuovere lo standard di riscaldamento e rendono più semplice l'applicazione del principio di ASCIUGATURA. Il tuo codice base sarà di circa 1/3 della dimensione, ed è molto più semplice isolare le astrazioni chiave invece di duplicare la logica.

I quadri di prova più belli rendono anche molto più semplice mantenere una serie efficace di test in atto.

Ovviamente ... Tutto ciò viene dopo i punti di Aleksi sulla volontà/abilità dei singoli sviluppatori coinvolti. Se il team non punta attivamente alla mantenibilità, la lingua più gestibile al mondo non ti aiuterà!

Problemi correlati