SlideShare a Scribd company logo
Building Modern
Web Apps with
HTML5, JS, and
      Java
 ... and how to stay productive
        with Alex Gyoshev / @alex_gyoshev
{{Insert clever quote}}
“ The secret to building large apps is NEVER build
large apps. Break up your applications into small
 pieces. Then, assemble those testable, bite-sized
         pieces into your big application. ”
          Justin Meyer, JavaScriptMVC
Managing complexity
       Templates
       Data binding
       Data sync
       Widgets
Templates
Why?
separate data and rendering
Template engines
 Underscore             Kendo
 Resig Micro templates doT
 Mustache               jQuery.tmpl
 Handlebars             PURE
 EJS                    Hogan
         ...and many more
Which templates are best?
      Hint: it depends!
Different template engines
     Logic-less vs logic-full
Logic-less example: Mustache
                     Template
 {#tm}
  {ies}
   {#is}
    {frt}
     <i<tog{nm}<srn>/i
      l>srn>{ae}/tog<l>
   {/is}
    {frt}
   {#ik}
    {ln}
     <i< he={ul}>{ae}/>/i
      l>a rf"{r}"{nm}<a<l>
   {/ik}
    {ln}
 {/tm}
  {ies}


                        JSON
 {
     "tm" [
      ies:
        {nm" "e" "is" tu,"r" "Rd}
         "ae: rd, frt: re ul: #e",
        {nm" "re" "ik:tu,"r" "Gen}
         "ae: gen, ln" re ul: #re",
        {nm" "le,"ik:tu,"r" "Bu"
         "ae: bu" ln" re ul: #le}
     ]
 }


                       Usage
 vrhm =Msah.ohm(epae jo)
  a tl  utcet_tltmlt, sn;
Logic-full example: _ and
              Kendo
                     Template
#fr(a i=0 i<ieslnt;i+ {#
  o vr     ;   tm.egh +)
   #i ( = 0 {#
     f i = )
      <i<tog# iesi.ae#/tog<l>
       l>srn>= tm[]nm <srn>/i
   #}es {#
       le
      <i< he=# iesi.r #>=iesi.ae#/>/i
       l>a rf"= tm[]ul "# tm[]nm <a<l>
   #}#
#}#


                       JSON
{
    "tm" [
     ies:
       {nm" "e" "r" "Rd}
        "ae: rd, ul: #e",
       {nm" "re" "r" "Gen}
        "ae: gen, ul: #re",
       {nm" "le,"r" "Bu"
        "ae: bu" ul: #le}
    ]
}


                       Usage
vrhm =tmlt(sn;
 a tl  epaejo)
#protip
Use precompiled templates
   As easy as v r t = _ t m l t ( f o )
               a       .epae"o";
#protip
Get away from the w t
                   ih
       blocks!
  # n m #becomes # i e . a e #
   = ae                  = tmnm
  Speed gains: 10x. Or 1000%.
  Available in most template engines
Data binding
Why?
separate data and logic
Example
           Tightly coupled code
fnto adotps){
 ucin dPs(ot
   / cag dt
    / hne aa
   pssps(ot;
    ot.uhps)

    / eeuecd
     / xct oe
    rnePsspss;
     edrot(ot)

    udtMn(ot)
     paeeupss;
}


                 Decoupled code
/ iiilz
 / ntaie
pssbn(cag" rnePss;
 ot.id"hne, edrot)
pssbn(cag" udtMn)
 ot.id"hne, paeeu;

/ adn nwdt wl atmtclyeeuetecd
 / dig e aa il uoaial xct h oe
pssps( tte " nwps! };
 ot.uh{ il: A e ot" )
Frameworks that provide this
          Backbone
          Kendo (Observable)
          Knockout
          Reactive
          Rivet
          AngularJS
          Flight
          Dojo (Observable)
Data sync
Why?
   separate data and storage
bonus: decouple client and server
  bonus x2: testing gets easier
Example
        Traditional fetching of data
$gt"pss,fnto(aa sau){
 .e(/ot" ucindt, tts
   i (tts= 44 {
    f sau = 0)
      rtr soErr)
       eun hwro(;
   }

     vrpss=dt.ot;
      a ot  aapss

     rnePsspss;
      edrot(ot)
};
 )


      Fetching data with data source
vrdtSuc =nwDtSuc(
 a aaore   e aaore{
   tasot {ra:"pss }
    rnpr:  ed /ot" ,

     shm:{dt:"ot"}
      cea  aa pss
};
 )

dtSuc.id"hne,rnePss;
 aaorebn(cag" edrot)
dtSuc.id"ro" soErr;
 aaorebn(err, hwro)
Frameworks that provide this
         Backbone (Collection)
         Kendo (DataSource)
         AngularJS
         Dojo (Store)
         Y.DataSource
Java
OMG, he said the J word!
DESIGN.
TECHNOLOGY.
 COOL SHIT.
   JAVA?
We have to admit that the
        JVM is...
        Very scalable (Twitter)
        Ubiquitous
Problems with Java for web
      development
     Slow workflow (involves deploy)
     Requires lots of code for simple things
Problems with Java for web
      development
... solved by frameworks and languages
                      Play
                      Scala
                      Lift
                      Wicket

         Refreshing lack of XML included!
Bringing it all together
     Tech demo, yay!
        No livecoding, don't yawn
Has anyone done SCUBA lately?
Building modern web apps with html5, javascript, and java
Share your SCUBA experiences with...
              Bubbles!
      Like smoke signals without the smoke
Tech stack
Play + Kendo
Wrap-up
Modern applications are like jigsaw
              puzzles —
  frameworks give you the pieces,
you fit them into a beautiful picture.
          The above statement is less than 140 chars!
Questions. You has them.
   slides: slideshare.net/alexandergyoshev
 project: github.com/gyoshev/fitc-am13-demo
               @alex_gyoshev
             alex@gyoshev.net

More Related Content

PDF
Boostライブラリ一周の旅
PDF
Artificial Neural Network in a Tic Tac Toe Symfony Console Application - Symf...
PDF
strace for Perl Mongers
PDF
Introduction to JavaFX 2
PDF
JavaFX, because you're worth it
PDF
Proxy OOP Pattern in PHP
PDF
nescala 2013
PDF
Python and rust 2018 pythonkorea jihun
Boostライブラリ一周の旅
Artificial Neural Network in a Tic Tac Toe Symfony Console Application - Symf...
strace for Perl Mongers
Introduction to JavaFX 2
JavaFX, because you're worth it
Proxy OOP Pattern in PHP
nescala 2013
Python and rust 2018 pythonkorea jihun

What's hot (17)

PDF
The Power of CSS
PDF
C++の話(本当にあった怖い話)
PDF
Javascript: The Important Bits
PDF
Theme Development and Customization
PDF
Automated tests - facts and myths
PDF
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
PDF
Introduction to jRuby
ODP
Hom Class
ODP
Hom Class
PDF
מודלים חישוביים - תרגול מס 2 - אוניברסיטת חיפה
PPTX
C++ and Assembly: Debugging and Reverse Engineering
PDF
DeepLearning ハンズオン資料 20161220
KEY
PDF
Playing 44CON CTF for fun and profit
PDF
Python and sysadmin I
PDF
ZCA: A component architecture for Python
The Power of CSS
C++の話(本当にあった怖い話)
Javascript: The Important Bits
Theme Development and Customization
Automated tests - facts and myths
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Introduction to jRuby
Hom Class
Hom Class
מודלים חישוביים - תרגול מס 2 - אוניברסיטת חיפה
C++ and Assembly: Debugging and Reverse Engineering
DeepLearning ハンズオン資料 20161220
Playing 44CON CTF for fun and profit
Python and sysadmin I
ZCA: A component architecture for Python
Ad

Viewers also liked (20)

PPT
JavaScript Frameworks and Java EE – A Great Match
PPT
Building Hybrid Applications using PhoneGap
PPT
Top 10 HTML5 frameworks for effective development in 2016
PPTX
Delivering HTML5 and Modern Apps
PDF
Modern Web App Architectures
PDF
Web app architecture
PPTX
Web Development Technologies
PDF
Structuring web applications with Backbone.js
PPTX
Writing HTML5 Web Apps using Backbone.js and GAE
PDF
How to-choose-the-right-technology-architecture-for-your-mobile-application
PPTX
Introduction To Building Enterprise Web Application With Spring Mvc
PDF
Quick Application Development with Web Frameworks
KEY
Ning presentation
PPT
Top 10 web application development frameworks 2016
PDF
A Simpler Web App Architecture (jDays 2016)
PDF
Web Application Frameworks - Web Technologies (1019888BNR)
PPTX
Intro to modern web technology
PDF
Modern Web 2016: Using Golang to build a smart IM Bot
PPTX
Web Application Development
PPTX
Architecture & Workflow of Modern Web Apps
JavaScript Frameworks and Java EE – A Great Match
Building Hybrid Applications using PhoneGap
Top 10 HTML5 frameworks for effective development in 2016
Delivering HTML5 and Modern Apps
Modern Web App Architectures
Web app architecture
Web Development Technologies
Structuring web applications with Backbone.js
Writing HTML5 Web Apps using Backbone.js and GAE
How to-choose-the-right-technology-architecture-for-your-mobile-application
Introduction To Building Enterprise Web Application With Spring Mvc
Quick Application Development with Web Frameworks
Ning presentation
Top 10 web application development frameworks 2016
A Simpler Web App Architecture (jDays 2016)
Web Application Frameworks - Web Technologies (1019888BNR)
Intro to modern web technology
Modern Web 2016: Using Golang to build a smart IM Bot
Web Application Development
Architecture & Workflow of Modern Web Apps
Ad

Similar to Building modern web apps with html5, javascript, and java (20)

PDF
Introduction to AngularJS
PDF
Zepto and the rise of the JavaScript Micro-Frameworks
PDF
Intro to JSON
PDF
Choosing Javascript Libraries to Adopt for Development
PDF
MongoDB and Web Scrapping with the Gyes Platform
PDF
Json the-x-in-ajax1588
PDF
JSLab.Руслан Шевченко."JavaScript как платформа компиляции"
PDF
Jslab rssh: JS as language platform
KEY
JavaScript Growing Up
PDF
mobl presentation @ IHomer
PDF
JavaScript Lessons 2023 V2
PDF
Building a JavaScript Library
PDF
Not Only Drupal
PPTX
Introduction to JSON and Building Youtube, Twitter and Wikipedia Web Apps
PDF
Huge web apps web expo 2013
PDF
Web polyglot programming
PPTX
Jason programming object oriented programming it- Updated.pptx
PDF
React Native One Day
PDF
mobl
PPTX
DEVNET-1111 Scott Hanselman on Virtual Machines, JavaScript and Assembler
Introduction to AngularJS
Zepto and the rise of the JavaScript Micro-Frameworks
Intro to JSON
Choosing Javascript Libraries to Adopt for Development
MongoDB and Web Scrapping with the Gyes Platform
Json the-x-in-ajax1588
JSLab.Руслан Шевченко."JavaScript как платформа компиляции"
Jslab rssh: JS as language platform
JavaScript Growing Up
mobl presentation @ IHomer
JavaScript Lessons 2023 V2
Building a JavaScript Library
Not Only Drupal
Introduction to JSON and Building Youtube, Twitter and Wikipedia Web Apps
Huge web apps web expo 2013
Web polyglot programming
Jason programming object oriented programming it- Updated.pptx
React Native One Day
mobl
DEVNET-1111 Scott Hanselman on Virtual Machines, JavaScript and Assembler

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
A Presentation on Artificial Intelligence
PDF
Chapter 3 Spatial Domain Image Processing.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
Teaching material agriculture food technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Monthly Chronicles - July 2025
A Presentation on Artificial Intelligence
Chapter 3 Spatial Domain Image Processing.pdf
The AUB Centre for AI in Media Proposal.docx
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
Network Security Unit 5.pdf for BCA BBA.
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
Teaching material agriculture food technology
Encapsulation_ Review paper, used for researhc scholars
“AI and Expert System Decision Support & Business Intelligence Systems”
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Modernizing your data center with Dell and AMD
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Digital-Transformation-Roadmap-for-Companies.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Building modern web apps with html5, javascript, and java