really really really awesome php application with bdd behat and iterfaces

Post on 17-Jul-2015

605 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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

top related