Mam pewne doświadczenie ze scala. Chcę wprowadzić go do nowego projektu z 10 członkami. Ale pomimo całej ekspresji scala, nie jestem pewien, jak prosty kod może zostać zachowany i przeniesiony do nowych członków zespołu. W tej chwili studiowałem tylko jeden duży projekt na scala http://code.google.com/p/factorie/ i niektóre scala DSL (apache wielbłąd). Więc moje pytanie brzmi, ile scala można utrzymywać/wspierać w porównaniu do java, python i groovy dla zespołu programistów średniego poziomu?Czy duży kodek jest obsługiwany?
Odpowiedz
W ogólnie: Konserwacyjność kodzie zależy (by wymienić tylko kilka)
- Wola programistów do projektowania konserwacji
- Umiejętność deweloperów do realizacji swoich zamiarów
- Poziom i dokładność dokumentacji (dokładność w odniesieniu do tego, jak dobrze dokumentacja przedstawia rzeczywisty system, nie w odniesieniu do szczegółowości dokumentacji)
- Umiejętność programistów dbających o utrzymanie
Możesz utworzyć bałagan za pomocą dowolnego dostępnego języka. Możliwe, że możesz stworzyć czysty i łatwy do utrzymania projekt o dowolnej wielkości, używając dowolnego języka programowania, który jest przeznaczony do użytku produkcyjnego.
To powiedziawszy - scala nie powinna być mniej konserwowalna niż java, python lub groovy. Rezultat pierwszego projektu może być jednak mniejszy do utrzymania.
Krótka odpowiedź: Tak
Długa odpowiedź: W porównaniu do Java, bardzo.
Cechy, klasy przypadków, dopasowywanie wzorców, typy wyższych typów, zamknięcia itp. Wszystkie spiskują, aby usunąć skróconą tabelę i ułatwić egzekwowanie zasady DRY. Twoja baza kodowa będzie miała około 1/3 rozmiaru i dużo łatwiej będzie wyodrębnić kluczowe abstrakcje zamiast powielania logiki.
Lepsze ramy testowe znacznie ułatwiają utrzymanie efektywnego zestawu testów.
Oczywiście ... Wszystko to przychodzi po tym, jak Aleksi wskazuje na wolę/umiejętności poszczególnych zaangażowanych deweloperów. Jeśli zespół nie jest aktywnie nastawiony na łatwość konserwacji, najbardziej konserwatywny język na świecie nie pomoże ci!
- 1. Zdobądź obsługiwany kodek dla urządzenia z systemem Android.
- 2. JavaScript - wykrywanie, czy lister zdarzeń jest obsługiwany
- 3. Czy JSON.stringify() jest obsługiwany przez IE 8?
- 4. Czy Spel jest obsługiwany w instrukcjach importu?
- 5. wykryć, czy przesłany plik jest zbyt duży
- 6. Czy element markizy jest już obsługiwany we wszystkich przeglądarkach?
- 7. Czy padding RSA PKCS1-OAEP jest obsługiwany w bouncycastle?
- 8. Czy React Native's LayoutAnimation jest obsługiwany w systemie Android?
- 9. Sprawdź, czy schemat URL jest obsługiwany w javascript
- 10. Android: Czy JDBC jest obsługiwany na urządzeniach z Androidem?
- 11. Czy Snapshot jest obsługiwany przez Greg Young EventStore?
- 12. Jak wykryć, czy formant wejściowy HTML5 jest obsługiwany?
- 13. Czy Visual Basic jest obsługiwany przez .NET Core na Linuksie?
- 14. Jak duży jest sesja Meteor
- 15. Dlaczego kierunek odlewania jest duży lub mały w typach pierwotnych, a mały czy duży w obiektach?
- 16. toLocaleString() nie jest obsługiwany we wszystkich przeglądarkach?
- 17. "Typ tagu NFC nie jest obsługiwany" wiadomość
- 18. Roslyn rzuca Język "C#" nie jest obsługiwany
- 19. Spłaszczyć kodek zagnieżdżony dowolnie?
- 20. Kodek rozszerzający rozszerzony MY_Controller
- 21. addView (View) nie jest obsługiwany w AdapterView
- 22. EF6 Typ kontekstu "System.Data.Entity.Core.Objects.ObjectContext" nie jest obsługiwany
- 23. java.lang.SecurityException: MODE_WORLD_READABLE nie jest już obsługiwany
- 24. OpenGL nie jest obsługiwany przez kierowcę wideo
- 25. Telerik.Web.UI.RadComboBoxContext nie jest obsługiwany, ponieważ implementuje IDictionary
- 26. java.lang.UnsupportedOperationException: To nie jest obsługiwany, należy MenuItemCompat.setOnActionExpandListener()
- 27. java.lang.IllegalArgumentException: Nie jest obsługiwany: tiret numer
- 28. CopyAllFilesToSingleFolderForPackageDependsOn nie jest już obsługiwany przez vs12
- 29. Typ projektu SQL nie jest obsługiwany
- 30. wyjaśniłem kodek H.264
Być może zwrócimy uwagę na programistę.SE, ale nie tutaj. –