Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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,206 views

Published on

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

with @cirpo

Published in: Technology
  • Be the first to comment

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

×