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

  • Jim-Y

    veterán

    válasz Zedz #4790 üzenetére

    Hat nezd, en nem jelentenem ki, igy egyertelmuen, hogy az egyik jobb, mint a masik, szerintem nem is lehet. Ez csak egy alternativ fejlesztesi modszer az imperativ programozas mellett. Mig az imperativ modszertanoknal a kozponti szerep az adatokon van. Az adatoknak objektumokat feleltetunk meg, az objektumok letrehozasara osztalyokat definialunk, az objektumokon muveleteket is definialunk, addig a funkcionalis programozasnal a kozponti szerep a fuggvenyeken van, es az adatok es a fuggvenyek kozott laza csatolas van. Hogy a fenti mondat, es a leirt kulonbseg miert jo, az talan nem is olyan egyertelmu. Hozza kell meg venni a kephez, hogy FP-ben az adatok nem valtoztathatok, tehat immutable adatokkal dolgozunk. Az OOP pedig arra epul, hogy az adat allapotat (state) valtoztatjuk. Pl egy objektum belso allapotan az egyik peldanymetodussal valtoztatunk. Ezek a kulonbsegek itt is fel vannak sorolva [link] bar elhiszem, hogy meg ennyitol nem lesz vilagos, hogy miert kene kis FP-t is tanulni. Nezzuk tovabb :)

    En sajat reszrol ezeket a szempontokat tartom fontosnak, hogy miert erdemes kicsit (tenyleg csak picit) megnezni az FP-t.

    * JavaScriptben mar alapbol vannak olyan paradigmak, amik az FP alapjat kepezik.
    -> functions first class citizens
    -> higher order functions
    -> anonymous functions + closures

    * Amikre mar vannak lehetosegeink
    -> Immutability, pl Immutable vagy Mori
    -> Pure functions
    -> ES5 array methods (immutability)

    * JavaScriptben, foleg webes kornyezetben erdemes rovid, tomor fuggvenyeket irni, hogy tehermentesitsuk az event loopot/egyetlen stacket. Tehat ez amugy is egy olyan stilust eredmenyez amiben sok kis fuggvenyunk lesz, amit sokszor adunk at parameterben, sokszor hivjuk meg oket, stb..

    Nagyjabol ezek adjak ki, hogy erdemes ismerni az FP-ben rejlo lehetosegeket. Ejj, sajnos en sem vagyok penge a temaban, igy nem tudom jol leirni, sem azt amit akarok, sem azt, hogy miert lenne jo igy programozni, ezert most csak par kosza gondolatot irok meg igy a vegere vitainditonak :B

    immutability -> konkurrens problemak megoldasara
    immutability -> easy undo/redo es state management
    curryzes -> tomorebb, rovidebb, bizonyos esetekben olvashatobb kodot eredmenyez

    Tehat, az FP sem jobb, mint az OOP, csak mas. Ha megnezed a tisztan objektum orientalt nyelvek is nyitnak az FP-s paradigmak fele, mint a Java is a 8-as verziojaval, ahol pedig mar az FP-s cuccok eddig is megvoltak, pl JS, ott pedig az OOP-s paradigmak fele, lasd ES6 class syntax, ami egyebkent meg mindig prototipusos, csak OOP-s kontosben.

    Szerintem ezert nem szabad megrekedni az OOP-nel es ismerni kell az alternativakat is. Illetve nekem tetszik, ha a ket stilust otvozzuk.

    Plusz egy link: Ramda

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

Hirdetés