Professional Software Developer

Un anti-pattern pe care l-am intalnit: teste cu folosire excesiva de “verify”. Se testa mai degraba ca implementarea mergea intr-un anume fel, decat ca SoT-ul avea un comportament dorit. E greu de evitat in totalitate, pentru ca, pana la urma, nu tot codul este “functional”, dar cand ai zece call-uri care verifica ca s-au chemat metodele care trebuie, e o problema.

in mod normal codul tau ar trebuie sa fie isolat si sa nu aiba foarte multe dependente.
exemplu

def foo
 r = bar.foo.inject
 x = user.quotes.last
 r/x
end

aceasta metoda cunoaste foarte multe detalii despre alte obiecte. Daca in testele tale faci mock la mai multe dependente, pentru a returna un rezultat, metoda ta este fragila. nici nu stii cand o sa ai un nil cand se incearca parcurgerea obiectelor.

Un tip mult mai smart ca mine: https://www.destroyallsoftware.com/blog/2014/test-isolation-is-about-avoiding-mocks

2 Likes

Gary is our savior! Chiar si acum his classic screencasts are top notch - ceea ce cam demonstreaza ca nu prea tin in mod necesar de Ruby :sunny:

nitpicking: @zitrusgrape what’s with the weird code indentation there?

:slight_smile: prea multe spatii :stuck_out_tongue:

1 Like

In ceea ce priveste maturizarea PHP-ului din ultimii ani cred ca cele mai importante evenimente sunt

  • PHP7 - altfel limbajul parea sa fie un limbaj parasit de catre cei care il dezvoltau. Ca sa nu mai vorbim de performanta
  • Aparitia composer-ului. Librariile s-au subtiat, concentrandu-se pe inovatie, utilizand si alte librarii.
  • PSR-urile. O minima standardizare a unor lucruri (styling, log interface) aduce o oaza de lumina
2 Likes