SlideShare a Scribd company logo
1 of 69
Download to read offline
BDD
                                Buzzword
                                Driven
                                Development


Build the next cool app (for fun and for profit fun)
@_orso_        @cirpo

mo@ideato.it   ac@ideato.it
J


       WEhPHP
disclaimer
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
                 startup               map/reduce
                             gattini
publish/suscribe nosql                xp
      realtime redis    javascript
  mvc                     closure hadoop
            backbonejs                       html5
                             gamification
   cloud      websockets
                         microframework
       boook      bdd                 responsive
    pair programming           nodejs
            css3       server-side javascript

buzzwords
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 language



php 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
}




           TISTIMO
php ecosystem
{
agile
}




tistimo
php ecosystem
{
agile
}




tistimo
php ecosystem
{
agile
}




tistimo
php ecosystem
{
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
{
mvc,
XP,
tdd,
closure
}




tistimo
{
mvc,
XP,
tdd,
closure
}




          K
tistimo
{



                     K
mvc,
XP,
tdd,
closure
}




          IT’S TOO
           MUCH
tistimo
{



                          J
mvc,
XP,
tdd,
closure,
microframework,
rest
}




                  SILEX

silex
 silex
{



                                              J
mvc,



                  SF2 vs SILEX
XP,
tdd,
closure,
microframework,
rest
}



                  100 MB vs 0.5 mb

                  Highly configurable vs simple
                  config

                  Solid base vs prototyping


silex
 silex
{



                  J
mvc,
XP,
tdd,
closure,
microframework,
rest
}




silex
 silex
{
bdd,
}
                J

        Behat
behat
{
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) sets

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
}




nosql
J


          w00t!
tistimo
L




tistimo
•     php single request
    •     shared nothing architecture




tistimo
{



                         J
nodejs,
serverside-javascript,
websockets
realtime
}




nodejs
{



                           J
nodejs,
serverside-javascript,
websockets
realtime
}




                    code

nodejs
{



                         J
nodejs,
serverside-javascript,
websockets
realtime
}




socket.io
{



                         J
nodejs,
serverside-javascript,
websockets
realtime
}




  server side




socket.io
J
{
websockets
realtime
}




   client side




socket.io
{



                           J
nodejs,
serverside-javascript,
websockets
realtime
}




                    code

nosql
{


             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
                startup                map/reduce
                             gattini
publish/suscribe nosql                xp
      realtime redis    javascript
  mvc                     closure hadoop
            backbonejs                      html5
                              gamification
   cloud      websockets
                         microframework
       boook     bdd                  responsive
    pair programming           nodejs
            css3       server-side javascript

buzzwords
J




Who's using Redis?
J +                 J




Who's using Redis? (and our beloved PHP!)
J




Who's using nodejs?
J




Who's using backbonejs?
TISTIMO
 github.com/cirpo/tistimo
phpbestpractices.it
• nodejsconf
Thank YOU!


@_orso_            @cirpo

mo@ideato.it       ac@ideato.it

More Related Content

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

Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzkenetzke
 
ngServer and-collaboratived-development-between-san-francisco-and-tokyo
ngServer and-collaboratived-development-between-san-francisco-and-tokyongServer and-collaboratived-development-between-san-francisco-and-tokyo
ngServer and-collaboratived-development-between-san-francisco-and-tokyoSatoshi Tanaka
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBXESUG
 
richard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdfrichard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdfRichard Rodger
 
Apache cassandra en production - devoxx 2017
Apache cassandra en production  - devoxx 2017Apache cassandra en production  - devoxx 2017
Apache cassandra en production - devoxx 2017Alexander DEJANOVSKI
 
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)Stuart Lodge
 
stackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftstackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftNETWAYS
 
CHOReOS Web Services FISL Conference Brazil 2012
CHOReOS Web Services FISL Conference Brazil 2012CHOReOS Web Services FISL Conference Brazil 2012
CHOReOS Web Services FISL Conference Brazil 2012choreos
 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiJackson Tian
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.jsguileen
 
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...Alessandro Confetti
 
Semplificare l'observability per progetti Serverless
Semplificare l'observability per progetti ServerlessSemplificare l'observability per progetti Serverless
Semplificare l'observability per progetti ServerlessLuciano Mammino
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
SnapyX
SnapyXSnapyX
SnapyXekino
 

Similar to BDD - Buzzword Driven Development - Build the next cool app for fun and for... fun (20)

Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzke
 
Huge web apps web expo 2013
Huge web apps web expo 2013Huge web apps web expo 2013
Huge web apps web expo 2013
 
Node.JS briefly introduced
Node.JS briefly introducedNode.JS briefly introduced
Node.JS briefly introduced
 
ngServer and-collaboratived-development-between-san-francisco-and-tokyo
ngServer and-collaboratived-development-between-san-francisco-and-tokyongServer and-collaboratived-development-between-san-francisco-and-tokyo
ngServer and-collaboratived-development-between-san-francisco-and-tokyo
 
Node azure
Node azureNode azure
Node azure
 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBX
 
richard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdfrichard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdf
 
Apache cassandra en production - devoxx 2017
Apache cassandra en production  - devoxx 2017Apache cassandra en production  - devoxx 2017
Apache cassandra en production - devoxx 2017
 
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
 
stackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftstackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure drift
 
CHOReOS Web Services FISL Conference Brazil 2012
CHOReOS Web Services FISL Conference Brazil 2012CHOReOS Web Services FISL Conference Brazil 2012
CHOReOS Web Services FISL Conference Brazil 2012
 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin Shanghai
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.js
 
CQ5 and Sling overview
CQ5 and Sling overviewCQ5 and Sling overview
CQ5 and Sling overview
 
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
 
Semplificare l'observability per progetti Serverless
Semplificare l'observability per progetti ServerlessSemplificare l'observability per progetti Serverless
Semplificare l'observability per progetti Serverless
 
Node js
Node jsNode js
Node js
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
SnapyX
SnapyXSnapyX
SnapyX
 
SnapyX - ParisJS
SnapyX - ParisJSSnapyX - ParisJS
SnapyX - ParisJS
 

More from Alessandro Cinelli (cirpo)

PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolAlessandro Cinelli (cirpo)
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageAlessandro Cinelli (cirpo)
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolAlessandro Cinelli (cirpo)
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolAlessandro Cinelli (cirpo)
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisAlessandro Cinelli (cirpo)
 
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...Alessandro Cinelli (cirpo)
 

More from Alessandro Cinelli (cirpo) (16)

Dear JavaScript
Dear JavaScriptDear JavaScript
Dear JavaScript
 
The evolution of asynchronous JavaScript
The evolution of asynchronous JavaScriptThe evolution of asynchronous JavaScript
The evolution of asynchronous JavaScript
 
The journey to become a solid developer
The journey to become a solid developer The journey to become a solid developer
The journey to become a solid developer
 
The evolution of asynchronous javascript
The evolution of asynchronous javascriptThe evolution of asynchronous javascript
The evolution of asynchronous javascript
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stage
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the fool
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apis
 
Introduzione a GIT - Webinar Zend
Introduzione a GIT - Webinar ZendIntroduzione a GIT - Webinar Zend
Introduzione a GIT - Webinar Zend
 
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
 
Symfony2 and Ror3 friends for an hour
Symfony2 and Ror3 friends for an hourSymfony2 and Ror3 friends for an hour
Symfony2 and Ror3 friends for an hour
 
Git e Git Flow
Git e Git Flow Git e Git Flow
Git e Git Flow
 
Presentazione framework Symfony
Presentazione framework Symfony Presentazione framework Symfony
Presentazione framework Symfony
 
Web 2.0 sviluppare e ottimizzare oggi
Web 2.0 sviluppare e ottimizzare oggiWeb 2.0 sviluppare e ottimizzare oggi
Web 2.0 sviluppare e ottimizzare oggi
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

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

  • 1. BDD Buzzword Driven Development Build the next cool app (for fun and for profit fun)
  • 2. @_orso_ @cirpo mo@ideato.it ac@ideato.it
  • 3. J WEhPHP disclaimer
  • 5. BROGRAMMING The act of creating a computer program in the company of your bros. embrace brogramming
  • 6. BROGRAMMING The act of creating a computer program in the company of your bros. embrace brogramming
  • 8. telecommuting agile functional programming mongodb tdd startup map/reduce gattini publish/suscribe nosql xp realtime redis javascript mvc closure hadoop backbonejs html5 gamification cloud websockets microframework boook bdd responsive pair programming nodejs css3 server-side javascript buzzwords
  • 9. LAMP stack is dead, long live the LAMP stack! lamp stack
  • 11. is PHP dead? J absolutely not!
  • 12. J • big (and funny) community • lots of libraries • history • web oriented language php ecosystem
  • 13. USER STORIES #lifeinideato
  • 14. AS <role> I WANT <do something> SO THAT <benefit> user story
  • 15. AS Ua I WANT register to the app SO THAT I can join estimation #lifeinideato
  • 16. @_orso_ estimation #lifeinideato
  • 17. @_orso_ estimation 3 #lifeinideato
  • 18. @_orso_ @cirpo estimation 3 #lifeinideato
  • 19. @_orso_ @cirpo estimation 3 2 #lifeinideato
  • 21. { startup, agile } TISTIMO php ecosystem
  • 25. { 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
  • 28. { K mvc, XP, tdd, closure } IT’S TOO MUCH tistimo
  • 29. { J mvc, XP, tdd, closure, microframework, rest } SILEX silex silex
  • 30. { J mvc, SF2 vs SILEX XP, tdd, closure, microframework, rest } 100 MB vs 0.5 mb Highly configurable vs simple config Solid base vs prototyping silex silex
  • 31. { J mvc, XP, tdd, closure, microframework, rest } silex silex
  • 32. { bdd, } J Behat behat
  • 33. { bdd, } Behat J behat
  • 34. { bdd, } Behat J behat
  • 35. { bdd, } Behat J behat
  • 36. { bdd, } Behat J behat
  • 39. J { nosql } every value is accessible by a key (string) “project” “user:cirpo” nosql
  • 40. J { nosql } Data types string hashes lists (sorted) sets nosql
  • 41. J { noslq } id User Password Name Surname Created 234 cirpo c1rp0 Alessandro Cinelli 2012-03-03 nosql
  • 42. J { noslq } A redis user “obj_type:id:attribute” “user:234:name” => “Alessandro” “user:234:username” => “cirpo” nosql
  • 43. J { noslq } Users “user:username” “user:username:is_logged” “user:username:score” => int Projects “project:projectname” “project:projectname:estimate_queue” => list nosql
  • 44. J { noslq } User Stories “user_story:id” “user_story:status” => hash Scores “users_scores” => sorted set “users_affinity” => sorted set nosql
  • 46. J w00t! tistimo
  • 48. php single request • shared nothing architecture tistimo
  • 49. { J nodejs, serverside-javascript, websockets realtime } nodejs
  • 50. { J nodejs, serverside-javascript, websockets realtime } code nodejs
  • 51. { J nodejs, serverside-javascript, websockets realtime } socket.io
  • 52. { J nodejs, serverside-javascript, websockets realtime } server side socket.io
  • 53. J { websockets realtime } client side socket.io
  • 54. { J nodejs, serverside-javascript, websockets realtime } code nosql
  • 55. { J mvc, javascript } backbonejs
  • 56. { J mvc, javascript } backbonejs
  • 57. { J mvc, javascript } backbonejs
  • 58. { J mvc, javascript } backbonejs
  • 59. { J mvc, javascript } backbonejs
  • 60. { J mvc, javascript } backbonejs
  • 61. telecommuting agile functional programming mongodb tdd startup map/reduce gattini publish/suscribe nosql xp realtime redis javascript mvc closure hadoop backbonejs html5 gamification cloud websockets microframework boook bdd responsive pair programming nodejs css3 server-side javascript buzzwords
  • 63. J + J Who's using Redis? (and our beloved PHP!)
  • 69. Thank YOU! @_orso_ @cirpo mo@ideato.it ac@ideato.it