SlideShare a Scribd company logo
1 of 11
Download to read offline
Rob Robbins

email:        mail@robrobbins.info
github:       github.com/robrobbins
twitter:      twitter.com/RobRobbins
blog:         www.robrobbins.info
Curious Ninja

  gets a job...
Style:

You simply must read this:

http://javascript.crockford.com/style1.html

But not yet...
Some Material

github.com/robrobbins/JavaScript-
Bootcamp-2

www.portmantea.us (view sorce w/Firebug
or dev tools)
'C' is for C.A.P.I.E  (sort of).

  Composition
  Abstraction
  Polymorphism
  Inheritance
  Encapsulation
Encapsulation:

https://github.com/robrobbins/JavaScript-Bootcamp-2/blob/master/encapsulation.js


Creating/using namespaces:
   Prevent naming collisions
   Encourage code re-use
   Promote DRYness
   Maintainable
   Scalable
   Makes Douglas Happy
Inheritance:

https://github.com/robrobbins/JavaScript-Bootcamp-2/blob/master/inheritance.js


What is a class anyway?
...
Is-A?
...
But Javascript Doesn't have classes!
...
Hey look Examples!
...
Composition

https://github.com/robrobbins/JavaScript-Bootcamp-2/blob/master/composition.js


Has-A?
...
Ooh, more examples
...
foo.hasOwnProperty(bar)?
...
Can I get some Is-A with my Has-A?
Polymorphism:

From the Inheritance code examples:
    Are the greet() and myPet() examples polymorphic?
   Hint: yes
   Are these 'virtual'?
   What about 'interfaces'?
This was a page of much
         code
     then I abstracted it
Reading:

The good parts - Douglas Crockford

The Definitive Guide - D Flannigan

High Performance JavaScript - N Zakas

More Related Content

Similar to Curious Ninja Gets A Job

Monkeybars in the Manor
Monkeybars in the ManorMonkeybars in the Manor
Monkeybars in the Manormartinbtt
 
Ruby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developerRuby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developergicappa
 
Your java script library
Your java script libraryYour java script library
Your java script libraryjasfog
 
IronRuby for the Rubyist
IronRuby for the RubyistIronRuby for the Rubyist
IronRuby for the RubyistWill Green
 
Writing Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScriptWriting Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScriptSusan Potter
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworksYuri Visser
 
GUI Programming with MacRuby
GUI Programming with MacRubyGUI Programming with MacRuby
GUI Programming with MacRubyErik Berlin
 
Comparing groovy and_j_ruby(neal_ford)
Comparing groovy and_j_ruby(neal_ford)Comparing groovy and_j_ruby(neal_ford)
Comparing groovy and_j_ruby(neal_ford)Dmitry Nosenko
 
Buildr In Action @devoxx france 2012
Buildr In Action @devoxx france 2012Buildr In Action @devoxx france 2012
Buildr In Action @devoxx france 2012alexismidon
 
Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...
Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...
Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...Chris Shenton
 
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsBoxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsPuppet
 
Ruby for .NET developers
Ruby for .NET developersRuby for .NET developers
Ruby for .NET developersMax Titov
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamposcon2007
 
XRuby_Overview_20070831
XRuby_Overview_20070831XRuby_Overview_20070831
XRuby_Overview_20070831dreamhead
 

Similar to Curious Ninja Gets A Job (20)

Monkeybars in the Manor
Monkeybars in the ManorMonkeybars in the Manor
Monkeybars in the Manor
 
Ruby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developerRuby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developer
 
Your java script library
Your java script libraryYour java script library
Your java script library
 
A Life of breakpoint
A Life of breakpointA Life of breakpoint
A Life of breakpoint
 
IronRuby for the Rubyist
IronRuby for the RubyistIronRuby for the Rubyist
IronRuby for the Rubyist
 
Writing Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScriptWriting Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScript
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
 
GUI Programming with MacRuby
GUI Programming with MacRubyGUI Programming with MacRuby
GUI Programming with MacRuby
 
Comparing groovy and_j_ruby(neal_ford)
Comparing groovy and_j_ruby(neal_ford)Comparing groovy and_j_ruby(neal_ford)
Comparing groovy and_j_ruby(neal_ford)
 
In Vogue Dynamic
In Vogue DynamicIn Vogue Dynamic
In Vogue Dynamic
 
Scala FS 2012
Scala FS 2012Scala FS 2012
Scala FS 2012
 
From dot net_to_rails
From dot net_to_railsFrom dot net_to_rails
From dot net_to_rails
 
Buildr In Action @devoxx france 2012
Buildr In Action @devoxx france 2012Buildr In Action @devoxx france 2012
Buildr In Action @devoxx france 2012
 
Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...
Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...
Squeezing Machine Learning into Serverless for Image Recognition - AWS Meetup...
 
Why MacRuby Matters
Why MacRuby MattersWhy MacRuby Matters
Why MacRuby Matters
 
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsBoxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
 
Ruby for .NET developers
Ruby for .NET developersRuby for .NET developers
Ruby for .NET developers
 
Ruby
RubyRuby
Ruby
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamp
 
XRuby_Overview_20070831
XRuby_Overview_20070831XRuby_Overview_20070831
XRuby_Overview_20070831
 

Curious Ninja Gets A Job