# Revízia kódu (code review)

> Revízia kódu WordPress webu — bezpečnosť, výkon, architektúra kódu a osvedčené postupy. Dohliadneme, aby bol tvoj kód bez chýb, bezpečný, optimalizovaný a dodržiaval WordPress štandardy.

služby

## Revízia kódu (code review)

### Prečo potrebuješ revíziu kódu a čomu sa tým dá predísť?

**Pomalé načítanie** webstránky a nadmerné zaťažovanie hardvérových prostriedkov. To spôsobuje nepríjemné čakanie pre tvojich návštevníkov a tvoj web sa stáva v očiach Google horšie použiteľný, čo ti znižuje ranking.

**Problémy s bezpečnosťou** môžu radikálne narušiť chod a integritu tvojej webovej stránky. Nenechávaj nič na náhodu a neotváraj dobrovolne dvere individuám, ktoré idú po tvojich dátach, alebo sa ťa snažia zdiskreditovať v očiach tvojej konkurencie a samotných návštevníkov webu.

Dodržiavanie **[WordPress štandardov](https://make.wordpress.org/core/handbook/best-practices/coding-standards/)** okrem iného zarúčí, že tvoj webový projekt nespadne pri najbližšej **aktualizácii jadra** alebo zle napísaný kód nespôsobí viac škody ako úžitku. Zabezpečíme, že všetky použité pluginy a téma sú **kompatibilné medzi sebou**. Taktiež **otestujeme funkcionalitu** na tvojom webe, aby nenastali zbytočné problémy.

### Na čo sa konkrétne pozeráme?

- **[Bezpečnosť](#security)**
- **[Výkon](#performance)**
- **[Architektúra kódu](#code-architecture)**
- **[Osvedčené postupy](#best-practices)**

Dohliadneme, aby bol tvoj kód **bez chýb a kompatibilný medzi sebou, dobre čitateľný a prehľadný, bezpečný a stabilný, čo najlepšie optimalizovaný, rýchly a v neposlednom rade, aby dodržiaval [WordPress štandardy](https://make.wordpress.org/core/handbook/best-practices/coding-standards/) a naozaj robil len to čo má bez zbytočného balastu.**

K tomu všetkému na základe našho dlhoročného know-how pridáme tipy ako sa o tvoj WordPress starať čo najlepšie, či už si vývojár alebo ho len obsluhuješ.

#### Bezpečnosť

- Validation, sanitization and escaping ([?](https://codex.wordpress.org/Data_Validation))
  - Prevencia [XSS](https://www.google.com/about/appsecurity/learning/xss/) (Cross Site Scripting) v JavaScripte ([?](https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet))
  - Kontrola hodnôt pri vkladaní a zobrazovaní
  - Enkódovanie hodnôt pri generovaní URL
- Ukladanie JavaScriptu alebo CSS do databázy
- Nepoužívať Flash (.swf)
- Kontrola nad odosielanými emailami
- Serializované dáta v PHP majú [bezpečnostné riziko](https://www.owasp.org/index.php/PHP_Object_Injection), JSON je všeobecne vhodnejší formát
- Pri použítí locate\_template(), get\_template\_part(), include() alebo require() s dynamickými hodnotami je potrebné ich kontrolovať pomocou validate\_file() alebo detekovať reťazec „..“
- Treba sa vyvarovať priamemu vkladaniu HTML do _DOM_u (.html(), .innerHTML()) a radšej použiť .append(), .prepend(), .before(), .after()…

#### Výkon

- Používanie funkcií, ktoré nepracujú s cache
- Nepoužívať AJAX volania na admin-ajax.php pri každom načítaní (implementovať vlastné endpointy)
- Ošetriť MySQL dotazy, ktoré používajú ORDER BY RAND pri veľkých databázach
- Neukladať dáta väčšie ako 1MB do „wp\_options“ tabuľky
- Vyhnúť sa automatickým zápisom do databázy na front-ende
  - Nepoužívať _\*\_meta_ pre ukladanie počtu (hlasovanie, pozretia…)
- Funkcie switch\_to\_blog() a get\_site\_\*() radšej vôbec nepoužiť
- Dotazy na databázu bez LIMITu, posts\_per\_page (alebo numberposts) „-1“ a podobne
- Cron spúštaných príliš často (menej ako 15 minút), alebo na príliš náročné operácie
- Dotazy na základy „meta\_value“ sú náročné a treba sa im vyhnúť (index je na „meta\_key“)
- Použitie post\_\_not\_in radikálne spomalí dotaz na databázu, odporúča sa radšej preskočiť nežiadúce príspevky v PHP

#### Architektúra kódu

- Udržiavateľnosť a čitateľnosť
- Unikátne predpony pre funkcie, konštanty, slugy…
- Kontrola návratových hodnôt
- Zmena pomocou nastavení ini\_set() alebo konfigurácie error\_reporting() sa neodporúča
- Nemeniť časovú zónu na servery
- Nerobiť priame dotazy na databázu
- Alterácia databázy
- Zapisovanie do súborového systému
- Nepristupovať priamo ku konštantám (napr. TEMPLATEPATH a STYLESHEETPATH)
- Vyvarovať sa použitiu SESSIONs (kvôli distribuovaným multi-server prostrediam)
- [Anonymné funkcie](https://www.php.net/manual/en/functions.anonymous.php) namiesto _eval()_ a _create\_function()_ (prehľadnejšie a bezpečnejšie)
- Pluginy majú využívať register\_activation\_hook() a register\_deactivation\_hook()

#### Osvedčené postupy

- Licencie všetkého kódu kompatibilné s GPL (každý potom môže opraviť ak je niečo pokazené, nezabezpečené alebo potrebuje vylepšiť…)
- Nenahrávať subory potrebné len na vývoj (napríklad .git, .gitignore, config.rb, sass-cache, grunt/gulp súbory, PHPUnit testy…)
- Pri minifikovaných súboroch (JavaScript) je dobré pribaliť aj ich originálne súbory, lebo inak sú praktické nečitateľné
- Odstrániť nepoužívaný a odkomentovaný kód, ako aj všetky výstupy pre ladenie (debug)
- Nastavenie správnych hlavičiek pre emaily (filtre ako [wp\_mail\_from](https://developer.wordpress.org/reference/hooks/wp_mail_from/), [wp\_mail\_from\_name](https://developer.wordpress.org/reference/hooks/wp_mail_from_name/)…)
- reCaptcha pomôže s prevenciou nevyžiadaných emailov
- Netreba zabudnúť použiť flush\_rewrite\_rules() po zmene štruktúry trvalých odkazov

### Chceš vedieť, v akej kondícii je tvoj web? **Napíš nám!**

[Chcem revíziu kódu](/kontakt/)

---

Source: https://webikon-web.pages.dev/revizia-kodu/
