Hirdetés

Keresés

Új hozzászólás Aktív témák

  • fordfairlane

    veterán

    válasz Zedz #6693 üzenetére

    Az OO remek találmány, de a Javascript (ES6, typescriptről nem tudok nyilatkozni) classokkal sok probléma van.

    1. Maga az osztály teljesen felesleges, ha csak egyetlen példányt kell belőle gyártani. Csak egy újabb felesleges absztrakció.
    2. Ha több példányt kell csinálni, akkor sincs rá szükség, ha nem használod a típusellenőrzést (Ha típuskonvertálást használsz, az meg valószínűleg tervezési hiba), Javascript alatt simán factory functionnel tudsz objektumokat sorozatgyártani.
    3. Javascript alatt a new operátor (illetve az elhagyása) problémás a dinamikus this binding miatt.
    4. Javascript alatt a class csupán syntactic sugar, ugyanaz a behavior-delegation van a háttérben, mint class nélkül, construktor functionnel a protottype-ra ráhúzott metódusoknál. Persze a class összeszedettebb szintaxis, de ugyanúgy működik (pl. menet közben átdefiniálhatsz metódusokat).
    5. Az öröklés, mint OO kódújrafelhasználás súlyosan problémás módszer, különösen akkor, ha felülbírálsz metódusokat, és nem a SOLID elveknek megfelelően.

    Hirtelen ennyi jut eszembe.

  • martonx

    veterán

    válasz Zedz #6693 üzenetére

    Nem értek egyet. Illetve bizonyos esetekben. :) Attól rosszul vagyok mikor valaki egy kis egyszerű honlaphoz is typescriptben, meg anyámkínja írja meg a classait, amiket összességében 1-200 sornyi js-el össze lehet hozni, még ha spagetti is a kód (már persze milyen az a spagetti kód, amikor maximum 200 sornyi kódról beszélünk). Aztán mikor valakinek odaadják, hogy tessék javítsad, vagy vegyél fel plusz egy eventhandlert, akkor órákig tart a környezet belövése.
    Komolyabb SPA-knál, NodeJS-ről nem is beszélve maximálisan van létjogosultsága az egész nagy infrastruktúrás cuccnak, más kérdés, hogy pont azt az előnyét veszíti el a Javascript, ami a scriptnyelvek előnye, hogy gyorsan, könnyen összedob bennük valamit az ember. Ha már kódot akarok fordítani, meg típust ellenőrizni, és komolyan OOP-zni, akkor személy szerint inkább megírom C#-ban (NodeJs helyett, SPA-nál nyilván marad a JS mint egyetlen alternatíva).

Új hozzászólás Aktív témák