SlideShare a Scribd company logo
1 of 49
Download to read offline
Zváračský kurz na BlazeDS


             BarCamp
              Brno - FI
             26.6. 2010

         Mgr. Juraj Michálek
             SinusGear

 Twitter: http://twitter.com/georgiksk
 Blog: http://georgik.sinusgear.com
Upozornenie!



Prezentované riešenia nie sú silver bullet
         ani magický lektvar.

        Časť problémov vyriešia.
         Nejaké nové prinesú.
Časti kurzu

Ako sa vyvíjú klient-server aplikácie?


     Prínos Google App Enginu.


Zvýšenie účinnosti pomocou BlazeDS.


   Kontinuálna integrácia a PMD.
Máme nápad!



Vytvoríme skvelú aplikáciu!
Klasický model


  Navrhnúť databázu.

Navrhúť dátovú vrstvu.

Navrhúť vrstvu s logikou
    a kontrolérmi.

 ... ešte sme neskončili
Klasický model - klient


   Navrhnúť rozhranie služby.
     (Web services, REST)

Navrhnúť serializáciu na klientovi.

Navhrnúť volanie serverového API.

   Ešte stále sme neskončili...
Klasický model - UI



Navrhnúť logiku na klientovi.

Navrhnúť GUI na klientovi.

      Máme hotovo?
Klasický model - nasadenie

             Nie, nie je hotovo!

            Nájsť/kúpiť hosting.

           Umiestniť na server.

      Testovacia a produkčná verzia.

     Zber logov a chybových hlásení.

A aplikácia nám doteraz nezarobila ani groš.
We're on the highway to hell!
Náklady na klasický model


        Náklady - server.

         Náklady - klient.

 Náklady – komunikácia a hosting.

  Postupný nárast používateľov
Time to market



                Čo prosím?

     Nerozumiem syntaxi vášho kmeňa!

                  Vývojár:
„Ešte nemáme vyladený komunikačný protokol.“
Moment! To ešte nie je všetko!

      Zmeníme schému v DB?

         Musíme zmeniť:

              logiku

          serverové API

       dátovú vrstvu klienta

              klienta
Ako spieva Queens


Too much (love) features
 will kill you in the end.




 Pattern: Feature soup.
Hm?



      Položme si základnú otázku.



Prečo vlastne vôbec niekto vyvíja softvér?
Skúsme to veselšie a radostnejšie




Je vôbec možné zjednodušiť niektoré kroky?

        A tým znížiť cenu vývoja?
Príklad z priemyslu



      Automatizovať.

   Potrebujeme systém.

A hlavne: Potom potrebujeme
      ešte lepší systém.
Google App Engine
Bonusy


       Free hosting (až 10 app).

        Škálováteľnosť (nútená).

         Podpora Python/Java.

Deployment, integrácia s IDE, verzovanie
  aplikácií, SSL cert, sledovanie app,
             meranie výkonu.
GAE + Eclipse
GAE admin console
Log report
Ok, vyrišený hosting




Čo môžeme optimalizovať ďalej?

Databáza a mapovanie na objekty.
ORM a Python
ORM a Java
Podpora GAE (*.jar)


                  JDO

                 Spring

         DataNucleus Enhancer

           Maven GAE Plugin
http://www.kindleit.net/maven_gae_plugin/
JDO




Anotácia z enterprise aplikácii.

DB sa vytvára na základe kódu.
http://code.google.com/appengine/docs/java/datastore/usingjdo.html
Zmena v App




JPA replikuje zmenu
  schémy do DB.

      Milé :-)
Klient / server


       API.

       Au.

  Zmena API?

 Ste sa zbláznili!
Super API na prvý krát?




    Jedine Chuck Norris!
Flash Builder


Pripojenie na web aplikáciu?

     Service discovery.
Zadám adresu a...
Zázrak




Funguje aj drag-n-drop
    do datagridu.
No, ale zmením adresu



A všetky parametre operácie povedia

             pápá :-(

           Evil Wizard?
Remote Discovery Service




Podpora pre PHP, LiveCycle a BlazeDS.

       Zadám URL serveru a...
Discovery




Dokonca funguje aj update API!
Test operácie
Vygenerovanie formuláru
Drag-n-drop výsledkov do tabuľky
Spustíme!



           Jetty server.

Ako to tak chodí u vývojára to ide.

           A v cloude?
Ale veď to poznáte...



          Error!

  Duplicated Session....


           :-O
Drobná úprava


      Patchneme a
     prekompilujeme
       BlazeDS ;-)


         EngineDS
      Maven repository
  Project archetype - JDO
http://maven.sinusgear.com
Kontinuálna integrácia



         SCRUM, Agile
http://www.agilnikonsorcium.cz/


          Hudson CI
            PMD
Plan, Do, Check, Act


         Návrh

         Vývoj

        Kontrola

       Zlepšenie

http://www.goalscape.com
Kontinuálna integrácia




                 Hudson CI
       V spolupráci s Michalom Gronom
http://www.sinusgear.com/hosting/hudson-ci
PMD – don't shoot the messanger
Software Engineering Radio

   Model driven development




     http://www.se-radio.net
Diskusia

      Témy:

Google App Engine
Python, Java, Jetty

 ORM, JPA, JDO
   BlazeDS

      Agile
    Hudson CI
      PMD
Školenia, konzultácie


         Adobe technológie
         Flex, AIR, BlazeDS
           Google, Clouds

Implementácia kontinuálnej integrácie
   a automatizácia SW projektov.

 http://www.sinusgear.com/skolenia
Ďakujem za pozornosť


            BarCamp
             Brno - FI
            26.6. 2010

        Mgr. Juraj Michálek
            SinusGear

Twitter: http://twitter.com/georgiksk
Blog: http://georgik.sinusgear.com

More Related Content

Similar to BarCamp - Zváračský kurz na Web

Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Catana0605
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight Edition
Adam Lieskovsky
 
Počítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMNPočítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMN
Miroslav Reiter
 
Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2
guest3604661
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010
Michal Fojtik
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácie
Jozef Toth
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?
Jano Suchal
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?
Jano Suchal
 

Similar to BarCamp - Zváračský kurz na Web (20)

Cv_sk
Cv_skCv_sk
Cv_sk
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
 
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webuWordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
 
Flask vs django
Flask vs djangoFlask vs django
Flask vs django
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight Edition
 
Počítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMNPočítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMN
 
Posun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google AppsPosun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google Apps
 
Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2
 
Design mobilnych aplikacii
Design mobilnych aplikaciiDesign mobilnych aplikacii
Design mobilnych aplikacii
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácie
 
Cncf meetup-service-mesh-sk
Cncf meetup-service-mesh-skCncf meetup-service-mesh-sk
Cncf meetup-service-mesh-sk
 
Mobile first! Plynulý workflow - AIR
Mobile first! Plynulý workflow - AIRMobile first! Plynulý workflow - AIR
Mobile first! Plynulý workflow - AIR
 
Tastypie
TastypieTastypie
Tastypie
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?
 
Daily Web 2015 Bratislava - vývoj online softvéroveho produktu, Ivan Potančok
Daily Web 2015 Bratislava - vývoj online softvéroveho produktu, Ivan PotančokDaily Web 2015 Bratislava - vývoj online softvéroveho produktu, Ivan Potančok
Daily Web 2015 Bratislava - vývoj online softvéroveho produktu, Ivan Potančok
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?
 
Computer graphics on web and in mobile devices
Computer graphics on web and in mobile devicesComputer graphics on web and in mobile devices
Computer graphics on web and in mobile devices
 
Dev + Ops + Azure = VL
Dev + Ops + Azure = VLDev + Ops + Azure = VL
Dev + Ops + Azure = VL
 

More from Juraj Michálek

More from Juraj Michálek (20)

Rust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyRust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with Embassy
 
Embedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - URELEmbedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - UREL
 
Embedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust LinzEmbedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust Linz
 
How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...
 
C language in our world 2019
C language in our world 2019C language in our world 2019
C language in our world 2019
 
C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017
 
Continuous Delivery - FIT VUT
Continuous Delivery - FIT VUTContinuous Delivery - FIT VUT
Continuous Delivery - FIT VUT
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016
 
Story behind PF 2016
Story behind PF 2016Story behind PF 2016
Story behind PF 2016
 
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015
 
C language in our world 2015
C language in our world 2015C language in our world 2015
C language in our world 2015
 
C++ in our world
C++ in our worldC++ in our world
C++ in our world
 
Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014
 
Gradle and build systems for C language
Gradle and build systems for C languageGradle and build systems for C language
Gradle and build systems for C language
 
The story behind PF2014 - Cordova
The story behind PF2014 - CordovaThe story behind PF2014 - Cordova
The story behind PF2014 - Cordova
 
There is more to C 2013
There is more to C 2013There is more to C 2013
There is more to C 2013
 
PowerShell UIAtomation
PowerShell UIAtomationPowerShell UIAtomation
PowerShell UIAtomation
 
PowerShell from *nix user perspective
PowerShell from *nix user perspectivePowerShell from *nix user perspective
PowerShell from *nix user perspective
 
Libraries and tools for C++
Libraries and tools for C++Libraries and tools for C++
Libraries and tools for C++
 
There is more to C
There is more to CThere is more to C
There is more to C
 

BarCamp - Zváračský kurz na Web