Jump to content
php.lv forumi
  • 0

Izstrādes efektivitātes uzlabošana lielās, javascriptiskās aplikācijās


codez

Question

Vēletos dzirdēt ieteikumus un varbūt gatavus fw par to, ko jūs darāt, lai uzlabotu izstrādes efektivitāti, izstrādājot javascriptiskas aplikācijas.

Javascriptiskas šijā gadījumā nozīmē, ka lielākā daļa UI tiek ģenerēts ar js, tāpat arī dati tiek saņemti ar ajax json formā.

Pamatā protams tiek izmantots jquery.

 

Pašlaik esmu iedziļinājies 3 punktu padziļinātā izpētē, tāpēc interesē vai kādam nav kādi labas prakses ieteikumi:

1. Efektīva un ērta javascript templeitu sistēma. Šis principā ir atrisināts bet varbūt kādam ir ko ieteikt.

 

2. design pattern-i UI izstrādē, tā, lai tiktu ievēroti loose coupling principi. Par šo googlē nav pārāk daudz. Pagaidām esmu nonācis līdz publicate/subscribe messaging sistēmai un observer paternam. Respektīvi UI widgeti sazinās caur centrālu messaging sistēmu. Tas ļauj diezgan neatkarīgi veidot pēc loģikas cieši saistītas UI komponentes (respektīvi darbības vienā komponenetē var izmainīt otra komponenetes stāvokli).

 

3. Tas, ko varētu saukt par datasource. Par šo googlē atrast var pavisam maz. Tajā ietilpst:

3.1. Kaut kas tāds, kas ļauj no servera atgrieztos datus automātiski ielikt templeitā tā, lai nebūtu jāraksta nekādi konvertācijas kodi ne servera pusē, ne klienta pusē.

3.2. UI widgetu sasaiste ar datu laukiem tā, lai izmainot datu laukus, automātiski mainītos UI widgetu izskats. Ideja būt aptuveni tāda: templeitā ir <div datasource="user.name"></div> un izmainot šī lauka vērtību klienta pusē glabātajos datos, automātiski notiek UI izskata atjaunošana, visās viedās, kuras skar datu izmaiņa.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Iespējams, ka te varētu palīdzēt tāda JS bibliotēka kas saucas Knockout. Šeit tā tiek demosntrēta 20 min garā prezentācijā: http://channel9.msdn...MIX/MIX11/FRM08 .Es paskatījos - man izskatās diezgan iespaidīgi, es noteikti kaut ko tādu izvēlētos šāda tipa webu izstrādē.

 

 

Principā šī bibliotēka realizē MVVM (Model View ViewModel) arhitektūru. Kaut kas līdzīgs MVC arhitektūrai, tikai radusies WPF pasaulē, kur ir tāda lieta kas saucas binding. Ar JS arī ko tādu var realizēt, tapēc arī MVVM arhitektūru var izmantot JS programmēšanā. Par bindingu šajā gadījumā varētu saukt tādu parādību, kad, piemēram, templeits piesaistās datu objektam, un kad objektā mainās dati, automātiski tas atspoguļojas templeitā un otrādi.

 

Galvenie MVVM principi:

  • View - Prezentācijas slānis. Šajā gadījumā HTML kods.
  • Model - Datu slānis. Droši vien klases katrai datu entītijai, gluži kā MVC. (šajā prezentācijā šī daļa netika nekur īpaši pieminēta, citur literatūru neesu skatījies - saku ko zinu no pieredzes realizējot šo arhitektūru WPF aplikācijā)
  • ViewModel - Sasaista View un Model. Te tiek realizēta kaut kāda loģika, kas gluži nepiederās pie paša Model. ViewModel propertiji ar binding palīdzību tiek piesastīti View.

Ieguvumi no tā visa ir tādi, ka ir tīrs HTML kods. Dotajā piemērā tiek parādīta arī templeitu izmantošana netriviāliem gadījumiem. Ar bindingu pilnībā tiek atrisināta problēma 3.2. Tātad nekādu evnet handleru, viss pats no sevis updeitojas. Nojaušu arī, ka šī bibliotēka palīdzēs eleganti atrisināt 3.1.

 

Praksē gan pats neesu ar šo JS risinājumu strādājis, gribējās tikai par patterniem parunāt.

Edited by 101111
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...