Hej jestem noobem z js, i chciałem założyć podobny temat jak skończę obecny temat, ale zacząłem pisać bardziej skomplikowany kod i mnie żeby bolą jak widzę co robię.
W projekcie tworze obiekty na 3 główne, pierwszy
export function makeObj(){
let iAmPrivate = 3.14;
function doSomething(){return iAmPrivate * 2}
return{
someAction:doSomething
}
Trochę to żmudne, ale intelisanse sobie z tym radzi, mogę hermetyzować wartości i generalnie mam wszystko pod kontrolą, ale dziedziczenie/reuzywanie jest problematyczne.
Drugim sposobem jest tworzenie klas, niby jest bardziej reuzywalne i niby nie trzeba pamiętać o tych wszystkich dwukropach i przecinkach, ale bolą mnie zęby, jak upubliczniam zmienne, i waru innych sytuacjach też.
Trzecim sposobem są indeksery obj[imStringVar]
np do wycięcia i sprawdzenia wybranych pól przed serializacją lub do walidacji wartości od użytkownika. Inteli sens sobie z tym absolutnie nie radzi, za to po napisaniu jest proste w rozumieniu i użyciu, zielonego pojęcia nie mam jak się skaluje.
Idei prototypów nie do końca rozumiem, i trochę się ich boje.
Jak najlepiej w skalowanym sposób tworzyć obiekty w js, lub funkcje. Mam wrażenie że przez ten cały dynamiczny duck typing i brak hermatyzacji na klasach w js absolutnie nie można polegać. Nie rozumiem po co je w prowadzono.
Ed. to juz nawet nie chodzi o samą hermatyzacje, pisze sam więc skrajnych głupot robić nie będę, ale chciałbym ograniczyć problem np. do start
, stop
, makeStep
i zapomnieć o szczegółach implementacjach, ale nie mogę bo muszę całemu światu i IDE, pokazać że mierze dt między każdym krokiem. Z kolei jak korzystam z pierwszego rozwiązania to przy re-używając kod muszę mieć wszystkie szczegóły z tyłu głowy i uważać zeby nic nie namieszać, co też nie specjalnie mi się podoba.