really really really awesome php application with bdd behat and iterfaces
TRANSCRIPT
#codemotion @liuggio
awesome PHP application in 2014
really
really
reallyreally
I’m @liuggioa programmer<?php
awesome application #codemotion @liuggio
Language design is hard …
the most famous computer scientists are also language designers.
BUT none of them ever worked on PHP
-- codinghorror
awesome application #codemotion @liuggio
LANGUAGE SUCKS7.380.000 resultsJava sucks
6.030.000 resultsRuby sucks
3.400.000 Python sucks
results
awesome application #codemotion @liuggio
Search “{language} SUCKS” on google:
61.526.124
Search “PHP SUCKS” on google:
TIMESawesome application #codemotion @liuggio
WHY PHP SUCKS
not real objects
big gap between the
community and the
un-polite core-team inconsistencylot-ot-underscore
stream_get_linedisk_free_space
is_objectmcal_day_of_weekset_error_handler
snmp_get_quick_printget_browser
base64_encodeimage_type_to_mime_type
msql_num_fieldsphp_unamestrip_tags
bind_textdomain_codesetcal_to_jdstr_rot13
no-underscore
readlinediskfreespaceissetjddayofweeksetlocalesnmpgetgetallheadersurlencodeimagetypesmysql_numfieldsphpversionstripslashesbindtextdomaingregoriantojdstrpos
awesome application #codemotion @liuggio
LOT OF GREAT COMPANIES USES IT
WordpressFacebook
awesome application #codemotion @liuggio
IS NOT THE OLD PLAIN-PHP THE ECOSYSTEM IS GREAT
GIT COMPOSER SYMFONY2
DDD/TDD/BDD PHP-FIG BEST PRACTICES
awesome application #codemotion @liuggio
The best programming language will not save you to write horrible code.
awesome application #codemotion @liuggio
Sufficiently talented coders
can write great applications
in terrible languages
awesome application #codemotion @liuggio
f**king awesome application
really
reallyreallyreally
really
@liuggio welcometothebundle.com
f**king awesome application
really
reallyreallyreally
really
Coding is 10% of the job
Communication and understanding
Read/Study
Coffee andrelated .
awesome application #codemotion @liuggio
developer =
worker with knowledge
awesome application #codemotion @liuggio
- Modular code- Version Control System (git)- Eager: conferences/books/code- Use frameworks- Contribute famous projects code - Live in the open-source ecosystem- Favourite the discussion- Study design trends (DDD \ BDD…?)- Live in a community, local user group- Test Driven Development
talented developers
awesome application #codemotion @liuggio
TDD
REFACTOR PASSFAIL
awesome application #codemotion @liuggio
- Modular code- Version Control System (git)- Eager: conferences/books/code- Use frameworks- Contribute famous projects code - Live in the open-source ecosystem- Favourite the discussion- Study design trends (DDD \ BDD…?)- Live in a community, local user group- Test Driven Development
TalentedNot talented
Innovation fuel growth
TALENTED CODERS
Have a passion driven mindset&&
Satisfy business with the best technology
=
awesome application #codemotion @liuggio
awesome application #codemotion @liuggio
After the first iteration with the client:
YOU
BLACK HOLE
After the second iteration with the client:
awesome application #codemotion @liuggio
After the third iteration with the client:
$$ function
awesome application #codemotion @liuggio
Translation problems
Application
presentation
awesome application #codemotion @liuggio
Domain model
RESTadapter
WEB
SCRIPT
ADAPTER-y
Use Case A
Use Case B
interfaces
awesome application #codemotion @liuggio
awesome application #codemotion @liuggio
Application
presentation
Domain model
RESTadapter
WEB
SCRIPT
ADAPTER-y
Use Case A
Use Case B
awesome application #codemotion @liuggio
Describe the
behaviours for each
`verb` and ‘noun’
Create the class
and the public
methods
Write a business
example
Explode the example in
lines
Given/When/Then
Discover and visualize
`verbs`, `nouns` and
behaviours
awesome application #codemotion @liuggio
a new cycle1
2
34 5
FAIL
FAIL
FAIL
Describe the
behaviours for each
`verb` and ‘noun’4
Create the class
and the public
methods5
PASS
awesome application #codemotion @liuggio
Application
presentation
Domain model
WEB
Class EmitBill
WWW
The best programming language will not save you to write horrible code.
awesome application #codemotion @liuggio
BUSINESS
awesome application #codemotion @liuggio
be a passionate developer
awesome application #codemotion @liuggio
Questions?ps: see the references I didn’t write any books (yet).
awesome application #codemotion @liuggio