SlideShare a Scribd company logo
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	
  

More Related Content

Viewers also liked

Banking In The Survivor's World
Banking In The Survivor's WorldBanking In The Survivor's World
Banking In The Survivor's World
Infosys Finacle
 
Gruppo Bassilichi @ Branch Transformation 2014
Gruppo Bassilichi @ Branch Transformation 2014Gruppo Bassilichi @ Branch Transformation 2014
Gruppo Bassilichi @ Branch Transformation 2014
Bassilichi S.p.A.
 
Managing the Digital Branch
Managing the Digital BranchManaging the Digital Branch
Managing the Digital Branch
David King
 
Branch Transformation Slide Show
Branch Transformation Slide ShowBranch Transformation Slide Show
Branch Transformation Slide Show
David 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 Websites
David 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_011813
Chris Gill
 
Inovation of motorola inc
Inovation of motorola incInovation of motorola inc
Inovation of motorola inc
gauravamity
 
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
Infosys
 
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
brianlfrench
 
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
David King
 
Branch of the future
Branch of the futureBranch of the future
Branch of the future
Infosys Finacle
 

Viewers also liked (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
 

Similar to Client Side Development with Brunch

web development.pptx
web development.pptxweb development.pptx
web development.pptx
MohdArbazraza
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
Sander 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/CSS
Thinkful
 
The What & Why of Pattern Lab
The What & Why of Pattern LabThe What & Why of Pattern Lab
The What & Why of Pattern Lab
Dave Olsen
 
CV
CVCV
BenScharbach_CorpResume_03202016
BenScharbach_CorpResume_03202016BenScharbach_CorpResume_03202016
BenScharbach_CorpResume_03202016
Benjamin 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) Again
jonknapp
 
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
Jose Luis Martínez
 
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
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) future
Filip 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 Kubernetes
C4Media
 
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 Platforms
Bill Doerrfeld
 
NEXT.JS
NEXT.JSNEXT.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
GeekNightHyderabad
 
Nguyen Xuan Hoang
Nguyen Xuan HoangNguyen Xuan Hoang
Nguyen Xuan Hoang
Nguyễn Hoàng
 
Nguyen Xuan Hoang
Nguyen Xuan HoangNguyen Xuan Hoang
Nguyen Xuan Hoang
Nguyễn Hoàng
 
Future of the Web
Future of the WebFuture of the Web
Future of the Web
Filip Bruun Bech-Larsen
 

Similar to 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
 

Recently uploaded

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 

Recently uploaded (20)

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 

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