Terve!
Mitä etuja saavutetaan JavaScript MVC-frameworkeilla, kun kysessä on selaimessa toimiva järjestelmä? Mitkä frameworkit on tällä hetkellä varteenotettavia vaihtoehtoja? Enta mitä suosittelette?
-dartvaneri
Sillä saavutetaan tunnetun patternin mukainen toiminta, versus itse keksimä spagetti. Toki se silti voi spagetiksi muuttua.
Javascriptillä MVC:n sijaan käytetään myös MVVM -patternia (Model-View-Viewmodel, jossa datat bindataan näkymiin, näkymään viskatun modelin sijaan (Tätä patternia toki käytetään myös desktop -kehityksessä, esim MS:n WPF:llä ihan standardinomaisesti).
Suosittuja frameworkkeja ovat mm. Angular (MVC) ja KnockoutJS (MVVM).
Kannattaa myös tutustua esim. ReactJS:ään, joka mallintaa vähän erilaista tapaa toteuttaa JS -applikaatio.
Olen pari kuukautta tehnyt työtä täysipäiväisesti Vue.js:n kanssa ja täytyy kyllä todeta että on helpottanut ohjelman tekemistä huomattavasti. Kyseessä on eräänlainen layout-editori ja kaiken pitää olla dynaamisesti muutettavissa. Tavallisesti olisin käyttänyt jQueryä, mutta kaksisuuntainen data binding oli syy valita parempi kehitystyökalu.
Koodi on paljon luettevampaa ja uusien ominaisuuksien tekeminen on erittäin helppoa kun jokainen palikka hoitaa vain yhden asian. Olihan se aika hyppy vaihtaa Gulp ja perus-jQuery Webpackiin ja kymmeniin erilaisiin muihin kirjastoihin, mutta ehdottomasti tutustumisen arvoinen projekti. Backendinä toimii Node.js:llä kirjoitettu palvelinohjelmisto. Enpä tiedä mitä tapahtuu kun joku projekti tulevaisuudessa vaatii PHP:tä. npm helpottaa ja laiskistaa, ja kun selaimessa ja palvelimella voi hyödyntää samoja komponenttejä, koodaaminen on aivan epätodellisen näppärää...
ReactJS:ää ainaki itselle tyrkytetään joka suunnalta - kuulemma niin modulaarinen ja helposti laajennettavissa.
Tosin, eikös näitä kaikkia mainosteta samoilla argumenteilla?
Joskus yritin vääntää kevyttä SVG-editoria Knockout.js:llä, mutta rajat tuli vastaan eikä se idean ja kehyksen yhteys oikein hahmottunut. (Taisi siihen sekoittua hieman jQuerya ja Raphael kirjastojakin).
Idean / ajatuksen soveltaminen tiettyyn frameworkin ja/tai ohjelmointityyliin vaikuttaa melko haastavalta - tosin, mikäpä ei olisi alkuun haastavaa.
Kokonaisuuden suhteen välillä menee sekaisin gulpit, gruntit, npm, nodejs jne. Sitten, kun sitä syntaksia omaa sieltä ja täältä, niin soppa on valmis.
Joku modernien "ohjelmistokehysten" kansankielinen opas ois aika mukavaa luettavaa...
Aihe on jo aika vanha, joten et voi enää vastata siihen.