Slide 1

Slide 1 text

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

Slide 4

Slide 4 text

Perceived Protection (lies) var YourCo = window.YourCo || {}; YourCo.util = YourCo.util || {}; YourCo.util.Dom = YourCo.util.Dom || {}; Friday, May 3, 13

Slide 5

Slide 5 text

{Module,Script} Loaders Friday, May 3, 13

Slide 6

Slide 6 text

{Node,Common}JS Friday, May 3, 13

Slide 7

Slide 7 text

Tiny API Client Module Friday, May 3, 13

Slide 8

Slide 8 text

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

Slide 25

Slide 25 text

Thank You :) Friday, May 3, 13