BarCamp - Zváračský kurz na Web

Juraj Michálek
Juraj MichálekSoftware Manager (Rust) at Espressif Systems (Czech) s.r.o.
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
1 of 49

Recommended

Ať se z kódu nepráší! by
Ať se z kódu nepráší!Ať se z kódu nepráší!
Ať se z kódu nepráší!Juraj Michálek
835 views64 slides
Zváračský kurz na BlazeDS a Google App Engine by
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineJuraj Michálek
473 views42 slides
Vývoj pre Google Android by
Vývoj pre Google AndroidVývoj pre Google Android
Vývoj pre Google AndroidJuraj Michálek
1.5K views63 slides
Bezpečnosť v kontexte RIA technológií by
Bezpečnosť v kontexte RIA technológiíBezpečnosť v kontexte RIA technológií
Bezpečnosť v kontexte RIA technológiíJuraj Michálek
1.2K views89 slides
Programovanie v C++ by
Programovanie v C++Programovanie v C++
Programovanie v C++Juraj Michálek
1K views113 slides
There is much more to C by
There is much more to CThere is much more to C
There is much more to CJuraj Michálek
1.1K views111 slides

More Related Content

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

Cv_sk by
Cv_skCv_sk
Cv_skMichal Lašák
173 views9 slides
Require.JS & Backbone.JS by
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
902 views80 slides
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné... by
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
777 views22 slides
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu by
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 webuWebglobe - Yegon
1.5K views40 slides
Flask vs django by
Flask vs djangoFlask vs django
Flask vs djangoTomáš Drenčák
541 views26 slides
AppMonitor Insight Edition by
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight EditionAdam Lieskovsky
204 views11 slides

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

Require.JS & Backbone.JS by srigi
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
srigi902 views
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné... by Catana0605
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é...
Catana0605777 views
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu by Webglobe - Yegon
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
Webglobe - Yegon1.5K views
Počítačová podpora procesného modelovania s pomocou BPMN by Miroslav Reiter
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 Reiter111 views
Posun od Microsoft Exchange ku Google Apps by Innova Apps
Posun od Microsoft Exchange ku Google AppsPosun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google Apps
Innova Apps476 views
Prezentácia: Diplomový seminár 2 by guest3604661
Prezentácia: Diplomový seminár 2Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2
guest3604661283 views
Design mobilnych aplikacii by SCR®
Design mobilnych aplikaciiDesign mobilnych aplikacii
Design mobilnych aplikacii
SCR®559 views
Deltacloud Presentation OpenHouse 2010 by Michal Fojtik
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010
Michal Fojtik534 views
Drupal ako nízkonákladová platforma pre business web aplikácie by Jozef Toth
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 Toth636 views
Cncf meetup-service-mesh-sk by Juraj Hantak
Cncf meetup-service-mesh-skCncf meetup-service-mesh-sk
Cncf meetup-service-mesh-sk
Juraj Hantak187 views
Mobile first! Plynulý workflow - AIR by Juraj Michálek
Mobile first! Plynulý workflow - AIRMobile first! Plynulý workflow - AIR
Mobile first! Plynulý workflow - AIR
Juraj Michálek1.1K views
Ako si vybrať programovací jazyk a framework? by Jano Suchal
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?
Jano Suchal1.1K views
Daily Web 2015 Bratislava - vývoj online softvéroveho produktu, Ivan Potančok by vibration.sk
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
vibration.sk226 views
Aký programovací jazyk a framework si vybrať a prečo? by 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?
Jano Suchal1K views
Computer graphics on web and in mobile devices by Lukas Tencer
Computer graphics on web and in mobile devicesComputer graphics on web and in mobile devices
Computer graphics on web and in mobile devices
Lukas Tencer423 views

More from Juraj Michálek

Rust Embedded Development on ESP32 and basics of Async with Embassy by
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 EmbassyJuraj Michálek
1.1K views35 slides
Embedded Development on ESP32 - FEKT VUT - UREL by
Embedded Development on ESP32 - FEKT VUT - URELEmbedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - URELJuraj Michálek
105 views27 slides
Embedded Rust on ESP2 - Rust Linz by
Embedded Rust on ESP2 - Rust LinzEmbedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust LinzJuraj Michálek
174 views22 slides
How Open Source Community and Espressif made it possible to use Rust language... by
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...Juraj Michálek
129 views27 slides
C language in our world 2019 by
C language in our world 2019C language in our world 2019
C language in our world 2019Juraj Michálek
2.5K views78 slides
C language in our world 2017 by
C language in our world 2017C language in our world 2017
C language in our world 2017Juraj Michálek
3.1K views101 slides

More from Juraj Michálek(20)

Rust Embedded Development on ESP32 and basics of Async with Embassy by Juraj Michálek
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
Juraj Michálek1.1K views
Embedded Development on ESP32 - FEKT VUT - UREL by Juraj Michálek
Embedded Development on ESP32 - FEKT VUT - URELEmbedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - UREL
Juraj Michálek105 views
Embedded Rust on ESP2 - Rust Linz by Juraj Michálek
Embedded Rust on ESP2 - Rust LinzEmbedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust Linz
Juraj Michálek174 views
How Open Source Community and Espressif made it possible to use Rust language... by Juraj Michálek
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...
Juraj Michálek129 views
Continuous Delivery - FIT VUT by Juraj Michálek
Continuous Delivery - FIT VUTContinuous Delivery - FIT VUT
Continuous Delivery - FIT VUT
Juraj Michálek2.5K views
C++ and Software Engineering 2015 by Juraj Michálek
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015
Juraj Michálek7.2K views
Bigger & Better RnD - GeeCON.cz 2014 by Juraj Michálek
Bigger & Better RnD - GeeCON.cz 2014Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014
Juraj Michálek2.5K views
Gradle and build systems for C language by Juraj Michálek
Gradle and build systems for C languageGradle and build systems for C language
Gradle and build systems for C language
Juraj Michálek4.4K views
The story behind PF2014 - Cordova by Juraj Michálek
The story behind PF2014 - CordovaThe story behind PF2014 - Cordova
The story behind PF2014 - Cordova
Juraj Michálek3.3K views
PowerShell from *nix user perspective by Juraj Michálek
PowerShell from *nix user perspectivePowerShell from *nix user perspective
PowerShell from *nix user perspective
Juraj Michálek2K views

BarCamp - Zváračský kurz na Web