Koliko često “ne poštujete” pravila?

PSR standardi u PHP razvoju su, bar na papiru, nešto što bi svaki ozbiljan programer trebalo da drži kao sveto pravilo. Imena klasa, razmaci, namespace, interfejsi – sve ima svoj red. Ali realnost? Realnost je mnogo prljavija, življa i nepredvidljivija nego što je PSR komitet ikada mogao da zamisli.

Nekada su PSR standardi samo mapa. Lepa je da je imate, ali ako auto zaglavi u blatu, nećete se držati crte na papiru – gurnućete ga, makar ostavili blatnjav trag. Isto je i sa kodom. PSR vas uči disciplini, ali ponekad disciplina usporava. Nekada vam je brže da napišete jednu “ružnu” funkciju koja štedi 200ms na svakoj iteraciji nego da pratite pravilo koje lepo izgleda u PowerPoint prezentaciji na developerskoj konferenciji.

Svaki server je planeta za sebe

Ko nije doživeo da kod radi savršeno na lokalu, a na produkciji se ponaša kao pijanac na ledu? Jedan server ima drugačiji procesor, drugi ima ograničenu memoriju, treći koristi zakrpljenu verziju PHP-a. PSR vam tu ne pomaže mnogo. On ne zna da vaš projekat živi na deset godina staroj mašini sa RAM-om manjim od kalkulatora iz ’90-ih.

U takvim slučajevima, pravila se lome. Ne iz hira, već iz potrebe. Brzina i stabilnost postaju važniji od toga da li vam je { u novom redu ili ne.

Lekcije od mikrokontrolera

Web programeri često zaborave da ispod svih frameworka i biblioteka postoji sirova mašina. Mikrokontroler programeri to znaju do srži. Oni ne pišu kod da bi bio “lep” i “ispravno formatiran”, već da bi stao u 8KB memorije i da bi procesor mogao da diše. U njihovom svetu, bajt nije samo broj – on je razlika između toga da li uređaj radi ili ne.

Mi, web programeri, možemo dosta naučiti iz toga. Ako znaš kako memorija diše, kako procesor žvaće instrukcije, znaćeš i kada da kažeš: “Ovo PSR pravilo ovde usporava stvari.” Jer, na kraju dana, i naš server je samo jedan veliki mikrokontroler na steroidima.

Pravila se lome da bi softver radio

Dakle, da li sam kršio PSR pravila? Naravno. Zašto? Zato što živim u realnom svetu, a ne u PowerPoint prezentaciji. Pravila postoje da bi nas vodila, ne da bi nas ugušila. Nekada moraš da kažeš: “PSR, izvini, ali ovde ide moja verzija.”

U tom trenutku postaješ više od programera koji slepo prati guidelines. Postaješ neko ko razume mašinu ispod koda, kontekst projekta i ono najvažnije – svrhu softvera. A svrha softvera nije da bude PSR-validan, već da radi, da bude brz i da se ne raspadne čim korisnik klikne “submit”.

Hoće li vas osuditi što ste prekršili pravila? Možda, kolega koji se kune u PSR kao u Bibliju. Ali kad se projekat sruši ili server počne da dimi, isti taj kolega će se okrenuti ka vama i pitati: “Možeš li ovo da popraviš?”

Odgovor će biti kratak i jasan: “Mogu. Ali ne po PSR-u.

Vezani članci