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?
risposta
In generale: la manutenibilità del codice di base dipende (solo per citarne alcuni)
- La volontà degli sviluppatori di progettare per la manutenibilità
- L'abilità degli sviluppatori per implementare il loro intento
- 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)
- 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.
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à!
- 1. È possibile compilare programmi Scala ma non è possibile eseguirli
- 2. Quale framework php usare sopra codebase spaghetti?
- 3. Cleanup enorme Perl Codebase
- 4. Mixin dinamico in Scala - è possibile?
- 5. È possibile registrare l'output di Scala REPL?
- 6. È possibile abbinare un intervallo in Scala?
- 7. Controllo ortografico in scala "grande" in Python
- 8. Scala parser combinatore, grande problema di file
- 9. È possibile "thread" Javascript e mantenere l'accesso all'interfaccia utente?
- 10. è possibile mantenere una sessione Oracle da due client oci?
- 11. È possibile mantenere i file .gitignore fuori da SVN?
- 12. È possibile mantenere nuove entità in un listener @ Pre/PostPersist?
- 13. Come rimuovere System.out.println dalla codebase
- 14. Quanto è grande, piccolo, normale, grande e grande?
- 15. Perché GHC è così grande/grande?
- 16. più grande rettangolo possibile di lettere
- 17. richiesta è troppo grande
- 18. È possibile utilizzare Scala per scrivere applicazioni GWT?
- 19. Perché non è possibile sovrascrivere la variabile mutabile in scala?
- 20. È possibile scrivere un tipo di funzione dipendente in Scala?
- 21. Scala: è possibile sovrascrivere il costruttore di case case predefinito?
- 22. È possibile utilizzare lo scalap da uno script di scala?
- 23. In Scala, è possibile comprimere due elenchi di dimensioni diverse?
- 24. Perché non è possibile inferire python come scala?
- 25. È possibile definire una variabile locale del costruttore in Scala?
- 26. Equivalente WiX di "Regasm.exe my.dll/codebase"?
- 27. Trova più grande sottotipo comune di due tipi Scala
- 28. come mantenere il valore restituito quando si accede a scala
- 29. Objective-C: prestazioni di bridging rapido per la codebase esistente
- 30. Quali sono alcuni modi in cui è possibile gestire progetti di linguaggio assembly su larga scala?
Forse riceverebbe qualche attenzione su Programmers.SE, ma non qui. –