Upload
michele-orselli
View
625
Download
0
Embed Size (px)
DESCRIPTION
Lamp stack is dead, long live the lamp stack!A quick overview of the technologies used in the "TISTIMO" project. with @cirpo
Citation preview
BuzzwordDrivenDevelopmentBDD
Build the next cool app (for fun and for profit fun)
@_orso_
@cirpo
disclaimer
WEhPHPJ
L
The act of creating a computer program in the company of your bros.
embrace brogramming
BROGRAMMING
The act of creating a computer program in the company of your bros.
embrace brogramming
BROGRAMMING
#lifeinideato
BROGRAMMING
nodejs
nosqljavascript
gamificationwebsockets
gattini
html5realtime
map/reduce
hadoopmvc
telecommuting
redis
microframeworkboook
backbonejs
agile
tdd
xp
mongodb
css3
cloud
responsive
startup
pair programmingbdd
publish/suscribe
server-side javascript
closure
functional programming
buzzwords
LAMP stack is dead,long live the LAMP
stack!
lamp stack
is PHP dead?
K
Jis PHP dead?
absolutely not!
J
php ecosystem
• big (and funny) community• lots of libraries• history• web oriented language
#lifeinideato
USER STORIES
user story
AS <role>I WANT <do something> SO THAT <benefit>
#lifeinideato
estimation
AS Ua I WANT register to the app SO THAT I can join
#lifeinideato
@_orso_
estimation
#lifeinideato
3
@_orso_
estimation
#lifeinideato
3
@cirpo
estimation
@_orso_
#lifeinideato
23
@cirpo
estimation
@_orso_
{telecommuting,agile}
#lifeinideato
php ecosystem
TISTIMO
{startup,agile}
php ecosystem tistimo
{agile}
php ecosystem tistimo
{agile}
php ecosystem tistimo
{agile}
AS Ua I WANT vedere la lista progetti ancora da stimare
AS Ua I WANT vedere la lista dei progetti stimati
AS Ua I WANT voglio autenticarmi con il mio account twitter
AS Ur I WANT rimanere in attesa che un altro ua si unisca al progetto
AS Ur I WANT visualizzare una storia
AS Ur I WANT votare una storia
AS Ur I WANT voglio assegnare una stima ad una storia senza votarla
AS Ur I WANT voglio vedere le storie stimate fino a quel momento
AS Ur I WANT voglio vedere quante storie mancano alla fine della stima
AS Ur I WANT voglio vedere il mio grado di affinità con i miei colleghi
AS Admin I WANT voglio inserire le storie
tistimo
{agile}
tistimo
{mvc,XP,tdd,closure}
tistimo
{mvc,XP,tdd,closure}
K
tistimo
{mvc,XP,tdd,closure}
K
IT’S TOO MUCH
SILEX
silex silex
J{mvc,XP,tdd,closure,microframework,rest}
SF2 vs SILEX
silex silex
J{mvc,XP,tdd,closure,microframework,rest}
100 MB vs 0.5 mb
Highly configurable vs simple config
Solid base vs prototyping
{mvc,XP,tdd,closure,microframework,rest}
silex silex
J
{bdd,}
B!"#$
behat
J
{bdd,} B!"#$
behat
J
{bdd,} B!"#$
behat
J
{bdd,} B!"#$
behat
J
{bdd,} B!"#$
behat
J
mysql
L
nosql
J{nosql}
nosql
J
every value is accessible by a key (string)
“project”
“user:cirpo”
{nosql}
nosql
JData types
string
hashes
lists
(sorted) sets
{nosql}
nosql
J{noslq}
id User Password Name Surname Created
234 cirpo c1rp0 Alessandro Cinelli 2012-03-03
nosql
J{noslq}
A redis user
“obj_type:id:attribute”
“user:234:name” => “Alessandro”
“user:234:username” => “cirpo”
nosql
J{noslq}
Users“user:username”“user:username:is_logged”“user:username:score” => int
Projects“project:projectname”“project:projectname:estimate_queue” => list
nosql
J{noslq}
User Stories“user_story:id”“user_story:status” => hash
Scores“users_scores” => sorted set“users_affinity” => sorted set
nosql
J{noslq}
w00t!J
tistimo
tistimo
L
tistimo
•php single request
•shared nothing architecture
nodejs
J{nodejs,serverside-javascript,websocketsrealtime}
nodejs
J
code
{nodejs,serverside-javascript,websocketsrealtime}
socket.io
J{nodejs,serverside-javascript,websocketsrealtime}
socket.io
J{nodejs,serverside-javascript,websocketsrealtime}
server side
socket.io
J{websocketsrealtime}
client side
nosql
J
code
{nodejs,serverside-javascript,websocketsrealtime}
backbonejs
J{mvc,javascript}
backbonejs
J{mvc,javascript}
backbonejs
J{mvc,javascript}
backbonejs
J{mvc,javascript}
backbonejs
J{mvc,javascript}
backbonejs
J{mvc,javascript}
nodejs
nosqljavascript
gamificationwebsockets
gattini
html5realtime
map/reduce
hadoopmvc
telecommuting
redis
microframeworkboook
backbonejs
agile
tdd
xp
mongodb
css3
cloud
responsive
startup
pair programmingbdd
publish/suscribe
server-side javascript
closure
functional programming
buzzwords
Who's using Redis?
J
Who's using Redis? (and our beloved PHP!)
JJ +
Who's using nodejs?
J
Who's using backbonejs?
J
• nodejsconf