"usprawnienie kodu" poprzez podzielenie kodu na moduly

0

Witam,

Prosze o naprowadzenie na wlasciwa droge odnosnie mojego pytania jak ponizej.

  1. Pytanie jest odnosnie Scali lecz zdecydowalem sie na zamieszczenie pytania w temacie Java jakoze Scala opiera sie na JVM a nie widze osobnego watku odnosnie Scali z duza aktywnoscia uzytkownikow.

  2. Ucze sie dopiero Scali przechodzac z Pythona wiec przepraszam za bledy logiczne.

Pytanie:

Jak prawidlowo podzielic kod na moduly i co zrobic z wszystkimi pobraniami bibliotek aby nie pobierac ich kilkukrotnie?

Skladnia wyglada tak:

import 1 ...
...
import 30

//tak mam tyle pobran roznych bibliotek ...

nastepnie jest stworzony obiekt ktory ma kod w ktorym jest wiele funkcji tzn. okolo 10 roznych funkcji. Calosc daje okolo 500 linii kodu.

Zastanawiam sie nad tym aby ten jeden plik / jeden modul podzielic na kilka plikow i pogrupowac funkcje pod katem tego co robia i powrzucac w te osobne moduly.

Nastepnie chce importowac te moduly do glownego modulu aby kod 'wygladal' lepiej.

Pobrania bibliotek zamierzac podzielic i powrzucac we wlasciwe moduly tam gdzie te pobrania sa potrzebne.

Kazdy modul bedzie osobnym pakietem ktory bede importowal do glownego pakiety.

Czy takie rozwiazanie jest wlasciwe?

a moze powinienem obrac inne rozwiazanie?
moze wszystkie pobrania wrzucic do jednego moduly?
moze zastanowic sie nad uzyciem 'traits' w Scali?
zaznaczam ze ten kod jest napisany w Scali pod Sparka ...

za wszelkie opinie bede wdzieczny.

1

Do tworzenia modułów i zarządzania ich zależnościami możesz użyć sbt. Ten podział powinien być nadrzędny względem podziału na pliki, to znaczy pliki i ich struktura składają się na moduły, a moduły na projekt. O ile nie chodzi Ci po prostu o tworzenie wielu plików, bo wtedy zazwyczaj umieszcza się każdą klasą w osobnym pliku, jeśli nie jest to przypadek gdzie konieczne jest zastosowanie 'sealed' lub tworzony jest companion object. Czyli musisz utworzyć klasy w osobnych plikach, a to jakie klasy utworzyć zależy już od Twojej aplikacji. Najlepiej wyznacz sobie co Twoja aplikacja musi robić, jakie elementy aplikacji są potrzebne jej funkcjonalnościom i innym elementom i potwórz do tego wszystkiego klasy. A tworzenie traitów rozważ, gdy jedna utworzona klasa będzie zależeć od drugiej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1