TrimJunction, MVC-ympäristö JavaScriptilla
TrimJunction näyttää varsin hyvältä alustalta JavaScript-pohjaisten web-sovellusten tekemiseen. Kun siihen liittää TrimQueryn, eli JavaScript-pohjaisen SQL-moottorin (!), alkavat palaset olla kasassa.
En aivan tiedä, mitä mieltä olisin samaa sarjaa olevasta mallinejärjestelmästä JavaScript Templates. Olen hiljalleen alkanut ajatella, että perinteiset, HTML:ää tekstinä käsittelevät mallinejärjestelmät eivät ehkä ole parhaita ratkaisuja. Mielessäni on alkanut pyöriä ajatus sivun tekemisestä DOM-puuna. En sitten tiedä, että olisiko tuossa mitään järkeä, ainakaan palvelimen puolella.
Luulen, että tällä tavalla pystyisi koodista saamaan siistimpää, varsinkin vaikeita rakenteita tehtäessä. Otetaan vaikka esimerkiksi sellainen tilanne, että taulukon solun sisällä saattaa olla tekstiä tai linkki, ja osa tekstistä tai linkin tekstistä on joissain tilanteissa span-elementin sisällä. Koodia tekstinä käsiteltäessä tässä joudutaan aina toistamaan osa koodista, ellei käytetä jotain erikoista sisällyttämisrakennetta. Sen sijaan puuna tuosta voitaisiin kätevästi hypätä linkin oksasta yli.
Viimeistään tässä vaiheessa kannattaa selvittää, mitä Model-View-Controller -malli tarkoittaa. Tämä malli on muun muassa Ruby on Railsin, Cocoan ja monen Java-pohjaisen alustan taustalla. Nyt oli kuitenkin ensimmäinen kerta, kun näin sen JavaScriptissä. Vanha idea, mutta varsinkin Java-toteutukset olivat usein valtavia möhkäleitä ja siksi MVC oli Ruby on Railsiin asti melkeinpä kirosana kun web-sovelluksista oli kyse.
Pitäisi kai yrittää keksiä jokin pikku projekti, jossa voisi kokeilla TrimJunctionia käytännössä.
Kommentit:
MVC-mallin tarkoitus ei ole siirtää kaikkea logiikkaa selaimen vastuulle. Selainta pitäisi oikeastaan ajatella "tyhmänä" renderöijänä, joka vain visualisoi DOM-rakenteen. Tämä DOM-rakenne on joissain tapauksissa kätevää tuottaa selaimessa (esim. paljon muutoksia ja sivulatauksia ei haluta), mutta pääsääntöisesti kontrollilogiikka pitäisi hoitaa palvelimen puolella.
DOM-rakenteen muokkaus Javascriptillä on kyllä joissain tilanteissa kätevää. Yrityksellämme on käytössä Javascriptillä toteutettu WYSIWYG-HTML-editori, joka käsittelee suoraan DOM-rakenteita. Editori on myös sisäisesti toteutettu luomalla dokumenttiin DOM-rakenteita. Itse asiassa 1. versio käsitteli HTML:ää suoraan kirjoittamalla, mutta uudemman version DOM-rakenteiden käsittely osoittautui aivan ylivoimaiseksi tavaksi.
SQL-kyselyitä en koskaan tekisi Javascriptillä, sillä näkisin että se aiheuttaa liikaa tietoturvaongelmia.
Tämä TrimJunction on suunniteltu tilanteisiin, joissa lähes koko sovellus halutaan selaimen puolelle ja palvelin toimii lähinnä tyhmänä tietovarastona ja tallennustilanteissa tiedon oikeellisuuden valvojana. Kun käytössä on myös TrimQuery, antaa palvelin selaimelle taulut, joihin voidaan sitten tehdä kyselyjä mielin määrin selaimen puolella.
Ei varmasti sovi kuin tiettyihin tilanteisiin, jo megatavuluokkaa olevan taulun käsittely on todennäköisesti tukkoista. Mutta pienillä tietomäärillä saadaan näin erinomaiset vasteajat ja mahdollisuus offline-käyttöön.
Unohtui tosiaan mainita, että tämä poikkeaa edellisistä webin MVC-järjestelmistä myös sen osalta, että mallikin annetaan selaimelle. Tarkoituksena on nähtävästi sallia samojen mallien (MVC, relaatiotietokanta) käyttö niin selaimessa kuin palvelimessa. Järkevää? En tiedä. Mielenkiintoista? Ainakin minun mielestäni.
Lähetä kommentti
<< Etusivulle