A “Component” is
much more than
just JavaScript
DenverJS (May 2, 2013)
http://goo.gl/WHCm4
Wil Moore III
@wilmoore
Friday, May 3, 13
Slide 2
Slide 2 text
Full-Stack Web
Application Craftsman,
TDD and Devops
Advocate.
http://github.com/wilmoore
Friday, May 3, 13
Slide 3
Slide 3 text
Old School JS
==
Namespaces
OurCompany.Universal.System.Web.Controls.*
codinghorror.com/blog/2005/01/a-modest-namespace-proposal.html
Friday, May 3, 13
MEH CommonJS,
I’m a front-end
developer
Friday, May 3, 13
Slide 9
Slide 9 text
Compare Package Managers:
https://github.com/wilmoore/frontend-packagers
Friday, May 3, 13
Slide 10
Slide 10 text
Missing the Point
Friday, May 3, 13
Slide 11
Slide 11 text
“There have been many attempts to come up with some
sort of client-side package manager, and some of them
do it very well, however I think they are missing the big
picture; a ‘component’ is much more than just
JavaScript.”
TJ Holowaychuk
Friday, May 3, 13
Slide 12
Slide 12 text
Component.io
github.com/component/component/wiki
Friday, May 3, 13
Slide 13
Slide 13 text
component is more of a concept and
a framework for building and
distributing front-end components.
github.com/component/component/wiki/Spec
Friday, May 3, 13
Slide 14
Slide 14 text
Benefits
Facilitates building modular
components.
Use CommonJS.
Manages app/lib dependencies.
Can build standalone components.
Supports CSS, Images, Fonts, and
JavaScript.
Friday, May 3, 13
Slide 15
Slide 15 text
UI Component
Example
tjholowaychuk.com/post/37832588021/building-a-date-picker-component
Friday, May 3, 13
Slide 16
Slide 16 text
Install, Build, & Attach to DOM
% component install component/datepicker
% component build
Friday, May 3, 13
Slide 17
Slide 17 text
JS Component
Example
Friday, May 3, 13
Slide 18
Slide 18 text
Shameless Plug: selectn
https://github.com/wilmoore/selectn
Friday, May 3, 13
Slide 19
Slide 19 text
The relevant bits
Friday, May 3, 13
Slide 20
Slide 20 text
Standalone Component
% make selectn
Makefile
Friday, May 3, 13
Slide 21
Slide 21 text
Use everywhere
% npm install selectn # use in Node or Browserify
% bower install selectn
% component install wilmoore/selectn
CommonJS
Standalone
Friday, May 3, 13
Slide 22
Slide 22 text
Wiki
github.com/component/component/wiki
Spec
github.com/component/component/wiki/Spec
Workflow Tools
github.com/component/component/wiki/Workflow
Component “Registry”
github.com/component/component/wiki/Components
Documentation
Friday, May 3, 13
Slide 23
Slide 23 text
Modern Client-Side Component Development
webandphp.com/ModernClientSideComponentDevelopment
Google+ Community
plus.google.com/u/0/communities/109771441994395167277
Building better components
github.com/component/component/wiki/Building-better-
components
Building a date picker component
tjholowaychuk.com/post/37832588021/building-a-date-picker-
component
Resources
Friday, May 3, 13
Slide 24
Slide 24 text
on meetup.com
meetup.com/Denver-JS/
events/101355632/
on Twitter
twitter.com/wilmoore
on Github
github.com/wilmoore
Thanks for your feedback
Friday, May 3, 13