73
from rags to open-source Raleigh, North Carolina 2014

Sails.js: Rags to...Open Source

Embed Size (px)

Citation preview

Page 1: Sails.js: Rags to...Open Source

from rags to open-source

Raleigh, North Carolina 2014

Page 2: Sails.js: Rags to...Open Source

Mike McNeil

@mikermcneilgithub.com/mikermcneil

Page 3: Sails.js: Rags to...Open Source

bdfl ofthe leading open-source MVC framework for Node.js

Page 4: Sails.js: Rags to...Open Source

the leading open-source MVC framework for Node.js

Page 5: Sails.js: Rags to...Open Source

at least pageviews since 2013830,000

GitHub stars 8,030

over downloads / day1,500

Page 6: Sails.js: Rags to...Open Source

in funding$0

Page 7: Sails.js: Rags to...Open Source
Page 8: Sails.js: Rags to...Open Source

est. feb 2012

Page 9: Sails.js: Rags to...Open Source
Page 10: Sails.js: Rags to...Open Source

(us)

(customer)

(Javascript app)

Page 11: Sails.js: Rags to...Open Source

love at first sightcirca 2011

Node.js...

Page 12: Sails.js: Rags to...Open Source

“We’re doing I/O completely wrong.”

Page 13: Sails.js: Rags to...Open Source

<— “just look at the Unterschied!”

“Not acceptable!”

Page 14: Sails.js: Rags to...Open Source

“Threads should be used by experts only.”

“Concurrency should be easy.”

Page 15: Sails.js: Rags to...Open Source

How is that possible?

(copy the browser)

Page 16: Sails.js: Rags to...Open Source

// synchronous!console.log(‘hi’)

// asynchronous!setTimeout(function (){! console.log(‘hi’);!}, 240000000);

vs.

incredible

Page 17: Sails.js: Rags to...Open Source

could we use

…for everything?

I wondered…

Page 18: Sails.js: Rags to...Open Source

so…

Page 19: Sails.js: Rags to...Open Source
Page 20: Sails.js: Rags to...Open Source

You don't want to be writing all these system calls.

You need something that gives you… an ORM abstraction, or

something.

Page 21: Sails.js: Rags to...Open Source

so Sails.js was born

Page 22: Sails.js: Rags to...Open Source
Page 23: Sails.js: Rags to...Open Source
Page 24: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 25: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 26: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 27: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 28: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 29: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 30: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 31: Sails.js: Rags to...Open Source

Sails is an MVC framework.

Page 32: Sails.js: Rags to...Open Source

first version (late 2011)

Page 33: Sails.js: Rags to...Open Source

December 2012

Page 34: Sails.js: Rags to...Open Source
Page 35: Sails.js: Rags to...Open Source

>=20 other community adapters custom app-specific adapters

Page 36: Sails.js: Rags to...Open Source

January 2013

first halfway-decent docs

http://web.archive.org/web/20130514080123/http://balderdashy.github.io/sails/

Page 37: Sails.js: Rags to...Open Source

posted screencast in early 2013

Page 38: Sails.js: Rags to...Open Source

…woke up to 1000 views

Page 39: Sails.js: Rags to...Open Source

reddit — Feb 2013hacker news — Mar 2013and again two months later

Page 40: Sails.js: Rags to...Open Source
Page 41: Sails.js: Rags to...Open Source

managed to get sailsjs.org online

mid-spring 2013

Page 42: Sails.js: Rags to...Open Source

issues pull requests

questions

Page 43: Sails.js: Rags to...Open Source
Page 44: Sails.js: Rags to...Open Source
Page 45: Sails.js: Rags to...Open Source
Page 46: Sails.js: Rags to...Open Source

????

Page 47: Sails.js: Rags to...Open Source

???????????

Page 48: Sails.js: Rags to...Open Source

v0.9 introduced a new streamlined asset pipeline

Page 49: Sails.js: Rags to...Open Source

asset pipeline????

“what about gulp?!”

“so thirsty…”

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

Page 50: Sails.js: Rags to...Open Source

so v0.10 introduced generators.

Page 51: Sails.js: Rags to...Open Source

feature requests are the hydra

Page 52: Sails.js: Rags to...Open Source

they will never stop.

Page 53: Sails.js: Rags to...Open Source

they will never stop.

ever.

Page 54: Sails.js: Rags to...Open Source

moral of the story

Page 55: Sails.js: Rags to...Open Source

only write code you actually need

if someone else actually needs something, they’ll write a pull request

only merge new code if someone actually needs you to merge it (i.e. there’s no other way, via a

plugin or something)

Page 56: Sails.js: Rags to...Open Source
Page 57: Sails.js: Rags to...Open Source
Page 58: Sails.js: Rags to...Open Source

Supporting the Community

Page 59: Sails.js: Rags to...Open Source

Tools

Metrics

Advice

Page 60: Sails.js: Rags to...Open Source

#sails on freenode (IRC)

issues

groups

Page 61: Sails.js: Rags to...Open Source

Tools

Metrics

Advice

Page 62: Sails.js: Rags to...Open Source

• Github stars

• NPM downloads / day

• Google group membership

• IRC channel activity

• Number of tagged StackOverflow questions(and your answer ratio)

Page 63: Sails.js: Rags to...Open Source

Tools

Metrics

Advice

Page 64: Sails.js: Rags to...Open Source

inline jsdoc comments are not enough

write docs in markdown

compile to HTML

Page 65: Sails.js: Rags to...Open Source

don’t repeat yourself

DRY

Page 66: Sails.js: Rags to...Open Source

don’t repeat ourselves

DRO

the goal of open source

Page 67: Sails.js: Rags to...Open Source

make an IRC channel start a Google group post a YouTube video

so

Page 68: Sails.js: Rags to...Open Source

support !== marketing

but remember

Page 69: Sails.js: Rags to...Open Source

support !== marketing

( )

but remember

Page 70: Sails.js: Rags to...Open Source

far more front-end developers

than back-end developers

Page 71: Sails.js: Rags to...Open Source

far more front-end developers

than back-end developers

eventually everyday backend development

will be commoditized

Page 72: Sails.js: Rags to...Open Source

Questions?

Page 73: Sails.js: Rags to...Open Source

from rags to open-source

@mikermcneil