awesome application in 2014
DESCRIPTION
by Giulio De Donato - The last few years have been incredible for PHP, the community, thanks to best practices emerged from the Medieval period. The talk shows the best of the PHP Renaissance, combining concepts and approaches of different philosophies and languages in order to let you create the perfect PHP application. Take part in the Renaissance, today! Warning: - Vintage concepts as Object Oriented Design will be administered to attendees - Violent scenes against monolithic culture, will be shown during the talk - Some practices will be stolen from: SOLID princ., DDD, SOA - You will take PHP seriously.TRANSCRIPT
awesome application
really
reallyreally
really
really
#codemotion @liuggio
awesome application in 2014
really
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
61.526.124
PHP SUCKS
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
YOU
BLACK HOLE
awesome application #codemotion @liuggio
$$ function
awesome application #codemotion @liuggio
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
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