Skip to content

bevry-archive/client-side

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

Bevry's Client Side Approach

December 4th, 2013 @ Co-Up Berlin Hosted by Hacker Retreat Sponsored by Zanox

Slides + Notes:

https://github.com/bevry/client-side

Agenda

  1. Introduction, why we are here
    1. Helping Bill Murray
    2. Hacker Retreat
    3. Good idea to do a talk about this, to help others too, not just Bill Murray
  2. Where did my knowledge come from
    1. Many years doing javascript
    2. 15th most active user on GitHub
  3. Why is this stuff important?
    1. Overwhelmingly fragemented
  4. What is our approach on it?
    1. Simplify, unite, make stuff
  5. Let's take a look

History

  • 2006
    • Got into AJAX, Prototype, MooTools
  • 2007
    • Got into jQuery (created August 26, 2006)
  • 2008
    • Built jQuery Smarty, first javascript templating engine (even reactive)
  • 2009
    • Switched to JavaScript full-time
  • 2010
  • 2011
    • Built Buildr for Aloha Editor
    • Built History.js
    • Built DocPad
    • Started CoffeeScript
    • Built TaskGroup
    • Government projects with Backbone
  • 2012
    • BugHerd.com with Backbone and QueryEngine
    • DocPad re-written with Backbone instead of vanilla classes
  • 2013
    • DocPad full-time
    • Two failed projects with Backbone
      • Views are to blame
    • Looked into alterantives
      • Discovered Spine, the models sucked
      • Discovered MicroJS, spent all the time researching incompatible modules
      • Discovered component, bower - too complex
    • Came up with a good architecture
      • DocPad
      • NPM + Browserify
      • Backbone Models
      • QueryEngine Collections
      • Spine Views + Routing
        • Now bevry/spine-route and bevry/miniview

Available Architectures

Bevry's Architecture

WebWrite InlineGUI

  • Building

     npm install -g docpad
     mkdir myapp; cd myapp
     docpad run
     docpad install livereload
  • Pre-Processors

    • CoffeeScript
    • CoffeeKup
    • Stylus
     docpad install coffeescript coffeekup stylus
  • Packaging

    • NPM + Browserify
     npm install --save browserify safeps
     open "https://github.com/webwrite/inlinegui/blob/4676a090365ef15c5479e3b92e1e2250255a9176/docpad.coffee#L110-L143"
  • DOM

    • jQuery/Zepto
     open "https://github.com/webwrite/inlinegui/blob/4676a090365ef15c5479e3b92e1e2250255a9176/docpad.coffee#L51-L52"
     $ = window.$
  • Business Logic

    • MiniView
     npm install --save miniview
     MiniView = require('miniview').View
  • Data Logic

    • Backbone's Model + QueryEngine's QueryCollection
     npm install --save query-engine
     open "https://github.com/webwrite/inlinegui/blob/4676a090365ef15c5479e3b92e1e2250255a9176/docpad.coffee#L54-L58"
     class Model extends require('backbone').Model
    
     class Collection extends require('query-engine').QueryCollection
  • Templating

    • Pointers
     npm install --save pointers
     open "https://github.com/bevry/pointers#usage"
  • Server Side Communication

    • jQuery AJAX then to Primus
     open "https://github.com/webwrite/inlinegui/blob/4676a090365ef15c5479e3b92e1e2250255a9176/src/documents/scripts/views/app.js.coffee#L353-L393"
  • Routing

    • Spine Route
     npm install --save spine-route
     open "https://github.com/bevry/spine-route#usage"

About

Bevry's approach to the client-side

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published