php: standards & fizz buzz

503 views

Published on

slides from a workshop - 2012

coding standars, zend, kata fizz buzz, test driven development

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
503
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

php: standards & fizz buzz

  1. 1. php: standards & tdd Zend Coding Standard & Fizz Buzz Fabio Mora @morafabio http://fabio.mora.name 1giovedì 18 aprile 13
  2. 2. Coding standards • Linee guida per formattare codice e documentazione • Servono sempre: progetti individuali e team • Riguardano 4coding syle,formatting, naming conventions, ambiti: file inline documentation • Aiutanopiùmantenere meno bug, più del codice: a leggibilità, alta la qualità condivisione, più facile da mantenere 2giovedì 18 aprile 13
  3. 3. Coding standards in PHP • PEAR http://pear.php.net/manual/en/standards.php • Zend http://framework.zend.com/manual/en/coding-standard.html • Symfony http://symfony.com/doc/current/contributing/code/standards.html • Drupal http://drupal.org/coding-standards/ 3giovedì 18 aprile 13
  4. 4. Zend Coding Standards File Formatting • Nei file che contengono solo PHP mai il tag di chiusura ?> Generale • Direttiva __HALT_COMPILER() proibita tranne che negli installer • L’indentazione equivale a 4 spazi Indentazione • Sono permessi i tab ma preferiti gli spazi Lunghezza • Obiettivo ultimo è di scrivere linee lunghe 80 caratteri della linea • La lunghezza massima consentita è di 120 caratteri Terminatori • L’unico terminatore di lineaApple eèCRLF (0x0D 0x0A) di Microsoft valido quello Unix: LF (0x0A) • Gli standard CR (0x0D) di di linea non sono validi 4giovedì 18 aprile 13
  5. 5. Zend Coding Standards Naming Conventions • Solo caratteri alfanumerici, numeri permessi ma l’uso ne è scoraggiato, l’underscore è il separatore Classi • La prima lettera di ogni nuova parola è maiuscola, il resto minuscolo • Solo caratteri alfanumerici, undersocre e dash “-”, nessuno spazio File • L’unica estensione valida è .php, a parte per le view • Solo caratteri alfanumerici, numeri permessi ma l’uso ne è scoraggiato, underscore non permesso Funzioni e • La prima lettera minuscola, il resto prima maiuscola (camelCase) Variabili • Essere significativi e verbosi • Nelle classi, le funzioni private e protected iniziano con underscore • Variabili: nomi brevi ($n, $i...) permesse solo nei piccoli loop • Solo caratteri alfanumerici, numeri e underscore. Costanti • Sempre maiuscolo, l’underscore separa le parole 5giovedì 18 aprile 13
  6. 6. Zend Coding Standards Coding Style • Le parentesi graffe sotto il nome della classe • Una classe per file, l’inserimento di altro codice è scoraggiato Classi • Nome classe, interfacce, eredi sulla stessa linea se possibile • Scoraggiato l’uso di variabili pubbliche e del costrutto var • Le parentesi graffe sotto il nome Funzioni e • Funzioni in global scope sono scoraggiate Metodi • Nome e argomenti se possibile sulla stessa riga • Uso delle funzioni: gli argomenti attuali separati da virgola e uno spazio 6giovedì 18 aprile 13
  7. 7. Zend Coding Standards Coding Style Tags PHP • Solo forma piena <?php ?> • $a = Ciao // No interpolazione, single quote • $a = "Ciao $nome" o "Ciao {$nome}" // Intepolazione, double quote Stringhe • $a = "SELECT `id`, `name`" // Evitare l’escape con backslash • $a = Ciao . . Ciao // Concatenando, uno spazio prima e uno dopo, se si va a capo concatenando, il punto ad inizio linea • No indici negativi • Uno spazio dopo ogni virgola Array • Se si va a capo, la prima lettera allineata al primo elemento sopra, in alternativa chiudere l’indentazione allo stesso livello del nome variabile • Per array associative a capo dopo ogni k => v 7giovedì 18 aprile 13
  8. 8. Esercizio: Fizz Buzz • Fizz Buzz è un gioco • Iproseguono finchè:a contare da uno e giocatori iniziano • quando unsi dice “Fizz” suo posto numero è divisibile per 3, al • quando unsi dice “Buzz” suo posto numero è divisibile per 5, al • quando lo è sia per 3 che per 5 si dice “FizzBuzz” 8giovedì 18 aprile 13
  9. 9. Esercizio: Test Driven Development 1. Scrivere il test ed eseguirlo (rosso) 2. Superare il test (verde) 3. Refactoring del codice (verde) 9giovedì 18 aprile 13

×