Najlepšia prax PHP: Parametre typu
Sú praktiky, ktoré sa učíme v škole, tie, ktoré si osvojujeme z lenivosti, tie, ktoré si osvojujeme zo zvyku, či už tým, že ich vidíme, alebo ich systematickým kopírovaním a vkladaním. S časom a skúsenosťami je jasné, že hľadáme stále jasnejšie metodológie a syntaxe. Napriek trendom, ktoré sa v jednotlivých jazykoch rozlišujú, sme často schopní načítaním kódu určiť, ktorý z nášho tímu má takúto syntax V C # si puristi zvyknú začínať všetky svoje rozhrania s „I“ Napríklad .
Sommaire
PHP, bezplatná syntax... príliš zadarmo?
Ja sám mám niekoľko návykov, ktoré mi umožňujú zostavovať si kód bežným spôsobom. To preto, aby som sa ľahko zorientoval, rýchlo pracoval, ale aj uľahčil kolegom ladenie a čítanie môjho kódu.
Napíšte jeho parametre, na čo? A prečo je to dobrá prax?
V PHP je syntax veľmi voľná. Myslím tým veľmi slobodný tým, že jazyk nie je veľmi podrobný. Bez toho, aby som bol zástancom jazykov, ako je napríklad Java, si myslím, že zadávanie jej parametrov nám môže v našej práci len pomôcť.
Prečo strácať čas písaním typu údajov?
Skutočne, ale poďme si hneď porovnať pre a proti.
V mínusoch, bez toho, aby boli zlé časy, ťažko budem uvádzať iný argument ako ten, ktorý som napísal vyššie.
V kladoch by som mohol uviesť malý zoznam:
- Pomáha mi to zostaviť môj kód. V mojom prototype (deklarácii mojej funkcie) viem, že taký a taký argument musí byť aray ou int.
- To mi umožňuje rýchlejšie ladiť. Ak ste vyhlásili, že chcete argument typu užívateľ vo vašej metóde bude PHP očakávať inštanciu používateľa. Alebo skúste dať aray alebo akýkoľvek iný typ, než je uvedený, spôsobí okamžité zastavenie PHP. Pripúšťame, že chyba môže byť dosť „ťažká“, ale celý zvyšok vášho vývoja pravdepodobne nezlyhá.
- Moji kolegovia radi čítajú môj kód ako knihu. V skutočnosti, keď vieme, že metóda setItem(…) má argument typu foo, pomáha to. nie?
12funkcie setItem($item);funkcie setItem(Foo $item);
Je pravda, že tento zoznam obsahuje iba 3 body, ale naša práca nás zaväzuje byť vždy na vojnovej pôde a vždy objavovať nové cesty, radím vám vyskúšať a presvedčiť sa sami.
Pozastavený problém s typom zmiešaný
Vskutku, aj tak musím priznať slabosť, typ zmiešaný. Hrozný chlap a bude zakázaný. Pre tých, ktorí kódovali v C/C++, je to ako deklarovať ukazovateľ inštancie s (void *).
Odporúčam vám čo najviac tento typ nepoužívať a obmedziť jeho používanie. Príklad ?
Metóda setPoireau(mixed $poireau) berie ako parametre pór, ale keďže nie je napísaný, môžete mu dať aj detskú pečať... Problematické.
Ak ste chceli prinútiť mať pór, viete, čo musíte urobiť, a priznajme si, že máte zvrátenú myseľ a že by ste chceli mať možnosť dávať zeleninu, pozývam vás použiť rozhranie (alebo abstrakt triedy ) a definujte svoju metódu takto.
|
|
Súhlasím s tým, že tento príklad možno nie je najlepší, ale má tú výhodu, že je jasný.
záver
Písanie nie je povinné, ale zostáva dostupné pre každého, kto chce pracovať jasne a čisto. Vrelo vám to odporúčam.
Možno budeme mať jedného dňa právo napísať návrat metódy, ktorá nám pomôže v hľadaní stále lepšej sémantiky.