BDD                                Buzzword                                Driven                                Developme...
@_orso_        @cirpomo@ideato.it   ac@ideato.it
J       WEhPHPdisclaimer
L
BROGRAMMING   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
telecommuting            agile                       functional programming   mongodb                  tdd                ...
LAMP stack is dead,      long live the LAMP            stack!lamp stack
Kis PHP dead?
is PHP dead?   Jabsolutely   not!
J    • big (and funny) community    • lots of libraries    • history    • web oriented languagephp ecosystem
USER         STORIES#lifeinideato
AS <role>  I WANT <do something>  SO THAT <benefit>user story
AS Ua I WANT register to the app SO THAT I can join                              estimation#lifeinideato
@_orso_                estimation#lifeinideato
@_orso_                estimation        3#lifeinideato
@_orso_                 @cirpo                estimation        3#lifeinideato
@_orso_                 @cirpo                estimation        3                     2#lifeinideato
{telecommuting,agile}#lifeinideato
{startup,agile}           TISTIMOphp ecosystem
{agile}tistimophp ecosystem
{agile}tistimophp ecosystem
{agile}tistimophp ecosystem
{agile}AS Ua I WANT vedere la lista progetti ancora da stimareAS Ua I WANT vedere la lista dei progetti stimatiAS Ua I WAN...
{mvc,XP,tdd,closure}tistimo
{mvc,XP,tdd,closure}          Ktistimo
{                     Kmvc,XP,tdd,closure}          IT’S TOO           MUCHtistimo
{                          Jmvc,XP,tdd,closure,microframework,rest}                  SILEXsilex silex
{                                              Jmvc,                  SF2 vs SILEXXP,tdd,closure,microframework,rest}    ...
{                  Jmvc,XP,tdd,closure,microframework,rest}silex silex
{bdd,}                J        Behatbehat
{bdd,}       Behat   Jbehat
{bdd,}       Behat   Jbehat
{bdd,}       Behat   Jbehat
{bdd,}       Behat   Jbehat
Lmysql
J{nosql}nosql
J{nosql}        every value is accessible by a key (string)        “project”        “user:cirpo”nosql
J{nosql}        Data types        string        hashes        lists        (sorted) setsnosql
J{noslq}        id   User    Password     Name       Surname    Created    234      cirpo    c1rp0     Alessandro   Cinel...
J{noslq}        A redis user        “obj_type:id:attribute”        “user:234:name” => “Alessandro”        “user:234:usern...
J{noslq}        Users            “user:username”            “user:username:is_logged”            “user:username:score” =>...
J{noslq}        User Stories            “user_story:id”            “user_story:status” => hash        Scores            “...
J{noslq}nosql
J          w00t!tistimo
Ltistimo
•     php single request    •     shared nothing architecturetistimo
{                         Jnodejs,serverside-javascript,websocketsrealtime}nodejs
{                           Jnodejs,serverside-javascript,websocketsrealtime}                    codenodejs
{                         Jnodejs,serverside-javascript,websocketsrealtime}socket.io
{                         Jnodejs,serverside-javascript,websocketsrealtime}  server sidesocket.io
J{websocketsrealtime}   client sidesocket.io
{                           Jnodejs,serverside-javascript,websocketsrealtime}                    codenosql
{             Jmvc,javascript}backbonejs
{             Jmvc,javascript}backbonejs
{             Jmvc,javascript}backbonejs
{             Jmvc,javascript}backbonejs
{             Jmvc,javascript}backbonejs
{             Jmvc,javascript}backbonejs
telecommuting            agile                      functional programming   mongodb                  tdd                s...
JWhos using Redis?
J +                 JWhos using Redis? (and our beloved PHP!)
JWhos using nodejs?
JWhos using backbonejs?
TISTIMO github.com/cirpo/tistimo
phpbestpractices.it
• nodejsconf
Thank YOU!@_orso_            @cirpomo@ideato.it       ac@ideato.it
Upcoming SlideShare
Loading in …5
×

BDD - Buzzword Driven Development - Build the next cool app for fun and for... fun

1,625 views
1,526 views

Published on

Lamp stack is dead, long live the lamp stack!
A quick overview of the technologies used in the "TISTIMO" project.

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,625
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
52
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

BDD - Buzzword Driven Development - Build the next cool app for fun and for... fun

  1. 1. BDD Buzzword Driven DevelopmentBuild the next cool app (for fun and for profit fun)
  2. 2. @_orso_ @cirpomo@ideato.it ac@ideato.it
  3. 3. J WEhPHPdisclaimer
  4. 4. L
  5. 5. BROGRAMMING The act of creating a computer program in the company of your bros.embrace brogramming
  6. 6. BROGRAMMING The act of creating a computer program in the company of your bros.embrace brogramming
  7. 7. BROGRAMMING#lifeinideato
  8. 8. telecommuting agile functional programming mongodb tdd startup map/reduce gattinipublish/suscribe nosql xp realtime redis javascript mvc closure hadoop backbonejs html5 gamification cloud websockets microframework boook bdd responsive pair programming nodejs css3 server-side javascriptbuzzwords
  9. 9. LAMP stack is dead, long live the LAMP stack!lamp stack
  10. 10. Kis PHP dead?
  11. 11. is PHP dead? Jabsolutely not!
  12. 12. J • big (and funny) community • lots of libraries • history • web oriented languagephp ecosystem
  13. 13. USER STORIES#lifeinideato
  14. 14. AS <role> I WANT <do something> SO THAT <benefit>user story
  15. 15. AS Ua I WANT register to the app SO THAT I can join estimation#lifeinideato
  16. 16. @_orso_ estimation#lifeinideato
  17. 17. @_orso_ estimation 3#lifeinideato
  18. 18. @_orso_ @cirpo estimation 3#lifeinideato
  19. 19. @_orso_ @cirpo estimation 3 2#lifeinideato
  20. 20. {telecommuting,agile}#lifeinideato
  21. 21. {startup,agile} TISTIMOphp ecosystem
  22. 22. {agile}tistimophp ecosystem
  23. 23. {agile}tistimophp ecosystem
  24. 24. {agile}tistimophp ecosystem
  25. 25. {agile}AS Ua I WANT vedere la lista progetti ancora da stimareAS Ua I WANT vedere la lista dei progetti stimatiAS Ua I WANT voglio autenticarmi con il mio account twitterAS Ur I WANT rimanere in attesa che un altro ua si unisca al progettoAS Ur I WANT visualizzare una storiaAS Ur I WANT votare una storiaAS Ur I WANT voglio assegnare una stima ad una storia senza votarlaAS Ur I WANT voglio vedere le storie stimate fino a quel momentoAS Ur I WANT voglio vedere quante storie mancano alla fine della stimaAS Ur I WANT voglio vedere il mio grado di affinità con i miei colleghiAS Admin I WANT voglio inserire le storietistimo
  26. 26. {mvc,XP,tdd,closure}tistimo
  27. 27. {mvc,XP,tdd,closure} Ktistimo
  28. 28. { Kmvc,XP,tdd,closure} IT’S TOO MUCHtistimo
  29. 29. { Jmvc,XP,tdd,closure,microframework,rest} SILEXsilex silex
  30. 30. { Jmvc, SF2 vs SILEXXP,tdd,closure,microframework,rest} 100 MB vs 0.5 mb Highly configurable vs simple config Solid base vs prototypingsilex silex
  31. 31. { Jmvc,XP,tdd,closure,microframework,rest}silex silex
  32. 32. {bdd,} J Behatbehat
  33. 33. {bdd,} Behat Jbehat
  34. 34. {bdd,} Behat Jbehat
  35. 35. {bdd,} Behat Jbehat
  36. 36. {bdd,} Behat Jbehat
  37. 37. Lmysql
  38. 38. J{nosql}nosql
  39. 39. J{nosql} every value is accessible by a key (string) “project” “user:cirpo”nosql
  40. 40. J{nosql} Data types string hashes lists (sorted) setsnosql
  41. 41. J{noslq} id User Password Name Surname Created 234 cirpo c1rp0 Alessandro Cinelli 2012-03-03nosql
  42. 42. J{noslq} A redis user “obj_type:id:attribute” “user:234:name” => “Alessandro” “user:234:username” => “cirpo”nosql
  43. 43. J{noslq} Users “user:username” “user:username:is_logged” “user:username:score” => int Projects “project:projectname” “project:projectname:estimate_queue” => listnosql
  44. 44. J{noslq} User Stories “user_story:id” “user_story:status” => hash Scores “users_scores” => sorted set “users_affinity” => sorted setnosql
  45. 45. J{noslq}nosql
  46. 46. J w00t!tistimo
  47. 47. Ltistimo
  48. 48. • php single request • shared nothing architecturetistimo
  49. 49. { Jnodejs,serverside-javascript,websocketsrealtime}nodejs
  50. 50. { Jnodejs,serverside-javascript,websocketsrealtime} codenodejs
  51. 51. { Jnodejs,serverside-javascript,websocketsrealtime}socket.io
  52. 52. { Jnodejs,serverside-javascript,websocketsrealtime} server sidesocket.io
  53. 53. J{websocketsrealtime} client sidesocket.io
  54. 54. { Jnodejs,serverside-javascript,websocketsrealtime} codenosql
  55. 55. { Jmvc,javascript}backbonejs
  56. 56. { Jmvc,javascript}backbonejs
  57. 57. { Jmvc,javascript}backbonejs
  58. 58. { Jmvc,javascript}backbonejs
  59. 59. { Jmvc,javascript}backbonejs
  60. 60. { Jmvc,javascript}backbonejs
  61. 61. telecommuting agile functional programming mongodb tdd startup map/reduce gattinipublish/suscribe nosql xp realtime redis javascript mvc closure hadoop backbonejs html5 gamification cloud websockets microframework boook bdd responsive pair programming nodejs css3 server-side javascriptbuzzwords
  62. 62. JWhos using Redis?
  63. 63. J + JWhos using Redis? (and our beloved PHP!)
  64. 64. JWhos using nodejs?
  65. 65. JWhos using backbonejs?
  66. 66. TISTIMO github.com/cirpo/tistimo
  67. 67. phpbestpractices.it
  68. 68. • nodejsconf
  69. 69. Thank YOU!@_orso_ @cirpomo@ideato.it ac@ideato.it

×