SlideShare une entreprise Scribd logo
1  sur  19
Brunch	
  


Jan	
  Monschke	
  
Student	
  /	
  Freelance	
  developer	
  
@thede8one	
  
github.com/janmonschke	
  
Evolu@on	
  of	
  client-­‐side	
  
                              development	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
„Oh	
  no,	
  you‘re	
  using	
  
                             JavaScript?	
  It‘s	
  evil!!“	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
„Fuck	
  Yeah,	
  AJAX!“	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
„JavaScript	
  ALL	
  THE	
  WAY“	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
•  Lightweight	
  library	
  to	
  help	
  structuring	
  your	
  code	
  

       •  MVC-­‐ish	
  principles	
  

       •  Works	
  out-­‐of-­‐the-­‐box	
  with	
  all	
  REST-­‐backends	
  *	
  

       •  Backbone.js	
  +	
  CoffeeScript	
  =	
  <3	
  
       	
  
       •  Great	
  community	
  (support	
  &	
  plug-­‐ins)	
  




Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
•  Examples	
  are	
  mostly	
  wricen	
  in	
  single	
  files	
  -­‐>	
  does	
  NOT	
  work	
  
          for	
  complex	
  applica@ons	
  

       •  You	
  need	
  to	
  setup	
  your	
  own	
  directory	
  structure	
  

       	
                                               (...)	
  
                        <script	
  src="src/models/unicorn.js"></script>	
  
                        <script	
  src="src/models/user.js"></script>	
  
                        <script	
  src="src/controllers/user_controller.js"></script>	
  
                        <script	
  src="src/controllers/main_controller.js"></script>	
  
                        <script	
  src="src/views/user.js"></script>	
  	
  	
  
                        <script	
  src="src/views/user_list.js"></script>	
  
                        <script	
  src="src/main.js"></script>	
  
                                                                      (...)	
  


Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
•  Templates	
  in	
  index.html,	
  srsly?	
  
       	
    <script	
  type="text/template"	
  id="stats-­‐template">	
  
       	
    	
  	
  	
  	
  	
  	
  <%	
  if	
  (total)	
  {	
  %>	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  <span	
  class="todo-­‐count">	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <span	
  class="number"><%=	
  remaining	
  %></span>	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <span	
  class="word"><%=	
  remaining	
  ==	
  1	
  ?	
  'item'	
  :	
  'items'	
  %></span>	
  le8.	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  </span>	
  
                    	
  	
  	
  	
  	
  	
  <%	
  }	
  %>	
  
                    	
  	
  	
  	
  	
  	
  <%	
  if	
  (done)	
  {	
  %>	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  <span	
  class="todo-­‐clear">	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <a	
  href="#">	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Clear	
  <span	
  class="number-­‐done"><%=	
  done	
  %></span>	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  completed	
  <span	
  class="word-­‐done"><%=	
  done	
  ==	
  1	
  ?	
  'item'	
  :	
  'items'	
  %></span>	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  </a>	
  
                    	
  	
  	
  	
  	
  	
  	
  	
  </span>	
  
                    	
  	
  	
  	
  	
  	
  <%	
  }	
  %>	
  
                    	
  	
  	
  	
  </script>	
  


Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch

       •  (pre-­‐)Compiles	
  all	
  files	
  (Code	
  +	
  Templates	
  +	
  Styles)	
  

       •  Assembles	
  them	
  into	
  one	
  single	
  file	
  

       •  Watches	
  for	
  file-­‐changes	
  

       •  Provides	
  a	
  proven	
  directory	
  structure	
  
           •  But	
  works	
  with	
  any	
  

       •  Powerful	
  plug-­‐in	
  system	
  




Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch



                                  Backend-­‐agnos@c	
  




Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch

             npm	
  install	
  –g	
  git@github.com:brunch/brunch.git	
  
                                              	
  
                          brunch	
  new	
  <project-­‐name>	
  
                                              	
  
                                         brunch	
  build	
  
                                              	
  
                                brunch	
  watch	
  (-­‐-­‐server)	
  




Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch


                                                  Clean	
  directory	
  structure	
  
                                                  	
  
                                                  /brunch	
  does	
  not	
  get	
  in	
  the	
  way	
  
                                                  	
  
                                                  config.coffee	
  –	
  plugin-­‐ins,	
  vendor-­‐files	
  
                                                  	
  




Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch




            Let‘s	
  dive	
  into	
  some	
  code!	
  
                                  hcp://brunch-­‐colors.com	
  




Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch




                                      Who‘s	
  using	
  it?	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch




              hcp://blossom.io	
  -­‐	
  Lean	
  project	
  management!	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch




              hcp://salon.io	
  -­‐	
  Crea@ve	
  proqolios	
  	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch



       I	
  probably	
  forgot	
  a	
  ton	
  of	
  things	
  ;)	
  	
  
                                	
  
       Find	
  more	
  info	
  on	
  hcp://brunch.io	
  	
  



Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  
Brunch




                                             Any	
  ques@ons?	
  




Client-­‐Side	
  development	
  with	
  Brunch	
  –	
  BerlinJS	
  

Contenu connexe

En vedette

Banking In The Survivor's World
Banking In The Survivor's WorldBanking In The Survivor's World
Banking In The Survivor's WorldInfosys Finacle
 
Gruppo Bassilichi @ Branch Transformation 2014
Gruppo Bassilichi @ Branch Transformation 2014Gruppo Bassilichi @ Branch Transformation 2014
Gruppo Bassilichi @ Branch Transformation 2014Bassilichi S.p.A.
 
Managing the Digital Branch
Managing the Digital BranchManaging the Digital Branch
Managing the Digital BranchDavid King
 
Branch Transformation Slide Show
Branch Transformation Slide ShowBranch Transformation Slide Show
Branch Transformation Slide ShowDavid Steele
 
10 Tips to Help You Navigate the Funding Process
10 Tips to Help You Navigate the Funding Process 10 Tips to Help You Navigate the Funding Process
10 Tips to Help You Navigate the Funding Process Comcast Business
 
Building the Digital Branch: Designing Effective Library Websites
Building the Digital Branch: Designing Effective Library WebsitesBuilding the Digital Branch: Designing Effective Library Websites
Building the Digital Branch: Designing Effective Library WebsitesDavid King
 
Bank world conference diebold branch transformation presentation_011813
Bank world conference diebold branch transformation presentation_011813Bank world conference diebold branch transformation presentation_011813
Bank world conference diebold branch transformation presentation_011813Chris Gill
 
Inovation of motorola inc
Inovation of motorola incInovation of motorola inc
Inovation of motorola incgauravamity
 
Branch Bank of the Future – Transforming to Stay Relevant
Branch Bank of the Future – Transforming to Stay RelevantBranch Bank of the Future – Transforming to Stay Relevant
Branch Bank of the Future – Transforming to Stay RelevantInfosys
 
Bank Branch Network Reorganization and Optimization proram
Bank Branch Network Reorganization and Optimization proramBank Branch Network Reorganization and Optimization proram
Bank Branch Network Reorganization and Optimization prorambrianlfrench
 
Designing the Digital Branch: it's Everyone's Job
Designing the Digital Branch: it's Everyone's JobDesigning the Digital Branch: it's Everyone's Job
Designing the Digital Branch: it's Everyone's JobDavid King
 

En vedette (12)

Banking In The Survivor's World
Banking In The Survivor's WorldBanking In The Survivor's World
Banking In The Survivor's World
 
Gruppo Bassilichi @ Branch Transformation 2014
Gruppo Bassilichi @ Branch Transformation 2014Gruppo Bassilichi @ Branch Transformation 2014
Gruppo Bassilichi @ Branch Transformation 2014
 
Managing the Digital Branch
Managing the Digital BranchManaging the Digital Branch
Managing the Digital Branch
 
Branch Transformation Slide Show
Branch Transformation Slide ShowBranch Transformation Slide Show
Branch Transformation Slide Show
 
10 Tips to Help You Navigate the Funding Process
10 Tips to Help You Navigate the Funding Process 10 Tips to Help You Navigate the Funding Process
10 Tips to Help You Navigate the Funding Process
 
Building the Digital Branch: Designing Effective Library Websites
Building the Digital Branch: Designing Effective Library WebsitesBuilding the Digital Branch: Designing Effective Library Websites
Building the Digital Branch: Designing Effective Library Websites
 
Bank world conference diebold branch transformation presentation_011813
Bank world conference diebold branch transformation presentation_011813Bank world conference diebold branch transformation presentation_011813
Bank world conference diebold branch transformation presentation_011813
 
Inovation of motorola inc
Inovation of motorola incInovation of motorola inc
Inovation of motorola inc
 
Branch Bank of the Future – Transforming to Stay Relevant
Branch Bank of the Future – Transforming to Stay RelevantBranch Bank of the Future – Transforming to Stay Relevant
Branch Bank of the Future – Transforming to Stay Relevant
 
Bank Branch Network Reorganization and Optimization proram
Bank Branch Network Reorganization and Optimization proramBank Branch Network Reorganization and Optimization proram
Bank Branch Network Reorganization and Optimization proram
 
Designing the Digital Branch: it's Everyone's Job
Designing the Digital Branch: it's Everyone's JobDesigning the Digital Branch: it's Everyone's Job
Designing the Digital Branch: it's Everyone's Job
 
Branch of the future
Branch of the futureBranch of the future
Branch of the future
 

Similaire à Client Side Development with Brunch

web development.pptx
web development.pptxweb development.pptx
web development.pptxMohdArbazraza
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopwareSander Mangel
 
Build Your Own Website with HTML/CSS
Build Your Own Website with HTML/CSSBuild Your Own Website with HTML/CSS
Build Your Own Website with HTML/CSSThinkful
 
The What & Why of Pattern Lab
The What & Why of Pattern LabThe What & Why of Pattern Lab
The What & Why of Pattern LabDave Olsen
 
BenScharbach_CorpResume_03202016
BenScharbach_CorpResume_03202016BenScharbach_CorpResume_03202016
BenScharbach_CorpResume_03202016Benjamin Scharbach
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!Tim Geisler
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Againjonknapp
 
Writing plugins for Nagios and Opsview - CAPSiDE Tech Talks
Writing plugins for Nagios and Opsview - CAPSiDE Tech TalksWriting plugins for Nagios and Opsview - CAPSiDE Tech Talks
Writing plugins for Nagios and Opsview - CAPSiDE Tech TalksJose Luis Martínez
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) futureFilip Bruun Bech-Larsen
 
Forced Evolution: Shopify's Journey to Kubernetes
Forced Evolution: Shopify's Journey to KubernetesForced Evolution: Shopify's Journey to Kubernetes
Forced Evolution: Shopify's Journey to KubernetesC4Media
 
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...Serdal Kepil
 
Continuous API Strategies for Integrated Platforms
 Continuous API Strategies for Integrated Platforms Continuous API Strategies for Integrated Platforms
Continuous API Strategies for Integrated PlatformsBill Doerrfeld
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesGeekNightHyderabad
 

Similaire à Client Side Development with Brunch (20)

web development.pptx
web development.pptxweb development.pptx
web development.pptx
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
 
Build Your Own Website with HTML/CSS
Build Your Own Website with HTML/CSSBuild Your Own Website with HTML/CSS
Build Your Own Website with HTML/CSS
 
The What & Why of Pattern Lab
The What & Why of Pattern LabThe What & Why of Pattern Lab
The What & Why of Pattern Lab
 
CV
CVCV
CV
 
BenScharbach_CorpResume_03202016
BenScharbach_CorpResume_03202016BenScharbach_CorpResume_03202016
BenScharbach_CorpResume_03202016
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Again
 
Writing plugins for Nagios and Opsview - CAPSiDE Tech Talks
Writing plugins for Nagios and Opsview - CAPSiDE Tech TalksWriting plugins for Nagios and Opsview - CAPSiDE Tech Talks
Writing plugins for Nagios and Opsview - CAPSiDE Tech Talks
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) future
 
Forced Evolution: Shopify's Journey to Kubernetes
Forced Evolution: Shopify's Journey to KubernetesForced Evolution: Shopify's Journey to Kubernetes
Forced Evolution: Shopify's Journey to Kubernetes
 
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
 
Continuous API Strategies for Integrated Platforms
 Continuous API Strategies for Integrated Platforms Continuous API Strategies for Integrated Platforms
Continuous API Strategies for Integrated Platforms
 
NEXT.JS
NEXT.JSNEXT.JS
NEXT.JS
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web Technologies
 
Nguyen Xuan Hoang
Nguyen Xuan HoangNguyen Xuan Hoang
Nguyen Xuan Hoang
 
Nguyen Xuan Hoang
Nguyen Xuan HoangNguyen Xuan Hoang
Nguyen Xuan Hoang
 
Future of the Web
Future of the WebFuture of the Web
Future of the Web
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Client Side Development with Brunch

  • 1. Brunch   Jan  Monschke   Student  /  Freelance  developer   @thede8one   github.com/janmonschke  
  • 2. Evolu@on  of  client-­‐side   development   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 3. „Oh  no,  you‘re  using   JavaScript?  It‘s  evil!!“   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 4. „Fuck  Yeah,  AJAX!“   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 5. „JavaScript  ALL  THE  WAY“   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 6. •  Lightweight  library  to  help  structuring  your  code   •  MVC-­‐ish  principles   •  Works  out-­‐of-­‐the-­‐box  with  all  REST-­‐backends  *   •  Backbone.js  +  CoffeeScript  =  <3     •  Great  community  (support  &  plug-­‐ins)   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 7. •  Examples  are  mostly  wricen  in  single  files  -­‐>  does  NOT  work   for  complex  applica@ons   •  You  need  to  setup  your  own  directory  structure     (...)   <script  src="src/models/unicorn.js"></script>   <script  src="src/models/user.js"></script>   <script  src="src/controllers/user_controller.js"></script>   <script  src="src/controllers/main_controller.js"></script>   <script  src="src/views/user.js"></script>       <script  src="src/views/user_list.js"></script>   <script  src="src/main.js"></script>   (...)   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 8. •  Templates  in  index.html,  srsly?     <script  type="text/template"  id="stats-­‐template">                <%  if  (total)  {  %>                  <span  class="todo-­‐count">                      <span  class="number"><%=  remaining  %></span>                      <span  class="word"><%=  remaining  ==  1  ?  'item'  :  'items'  %></span>  le8.                  </span>              <%  }  %>              <%  if  (done)  {  %>                  <span  class="todo-­‐clear">                      <a  href="#">                          Clear  <span  class="number-­‐done"><%=  done  %></span>                          completed  <span  class="word-­‐done"><%=  done  ==  1  ?  'item'  :  'items'  %></span>                      </a>                  </span>              <%  }  %>          </script>   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 9. Brunch Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 10. Brunch •  (pre-­‐)Compiles  all  files  (Code  +  Templates  +  Styles)   •  Assembles  them  into  one  single  file   •  Watches  for  file-­‐changes   •  Provides  a  proven  directory  structure   •  But  works  with  any   •  Powerful  plug-­‐in  system   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 11. Brunch Backend-­‐agnos@c   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 12. Brunch npm  install  –g  git@github.com:brunch/brunch.git     brunch  new  <project-­‐name>     brunch  build     brunch  watch  (-­‐-­‐server)   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 13. Brunch Clean  directory  structure     /brunch  does  not  get  in  the  way     config.coffee  –  plugin-­‐ins,  vendor-­‐files     Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 14. Brunch Let‘s  dive  into  some  code!   hcp://brunch-­‐colors.com   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 15. Brunch Who‘s  using  it?   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 16. Brunch hcp://blossom.io  -­‐  Lean  project  management!   Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 17. Brunch hcp://salon.io  -­‐  Crea@ve  proqolios     Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 18. Brunch I  probably  forgot  a  ton  of  things  ;)       Find  more  info  on  hcp://brunch.io     Client-­‐Side  development  with  Brunch  –  BerlinJS  
  • 19. Brunch Any  ques@ons?   Client-­‐Side  development  with  Brunch  –  BerlinJS