Programátorské cvičení I.


Vypsaná školení


Připravil jsem pro vás programátorské cvičení, díky kterému se naučíte něco nového i na zdrojových kódech, které píšete denně. Těch cvičení mám celkem 7 a v průběhu času je všechny projdeme a co bude chtít, adoptujete do své denní praxe. Jak to funguje?

Já vám popíšu nějaký postup. Obvykle se bude jednat o žádoucí praktiku, takže by s tím neměl zaměstnavatel mít problém – navíc se jedná o tipy a triky, které nebudou vyžadovat čas navíc. Vy to zkusíte jeden den praktikovat a podělíte se, jak to šlo. Pokud se rozhodnete používat postup i nadále, tím lépe pro vás!

Takže zadání první.

Nepoužívejte for ani foreach tam, kde se v PHP dá použít array_map, array_filter, array_reduce nebo array_walk.

Co se naučíte?

Zmiňované funkce array_* vedou k některým návykům z funkcionálního programování. Jejich výhodou je sémantičnost. Jejich nevýhodou je, že se to musíte naučit číst (potom se vám už čtou lépe) – s tím mělo už hodně mých kolegů problém. Nicméně naučíte se funkcionálnější postup.

Po chvíli vám bude přístup:

$vysledek = array_map($modifikator, $vstup);

Připadat logičtější, než:

$vysledek = array();
foreach ($vstup as $rada) {
        $vysledek[] = $modifikator($rada);
}

Aby byl váš kód ještě čitelnější a sémantičtější, můžete použít můj nástroj Googy, který funkcionální programování v PHP v mnoha ohledech usnadňuje.

V Googym by takový kus zdrojáku vypadal:

use Googy as _;
$výsledek = _\Arr($vstup)->map($modifikatorMap)->toArray();
$výsledek = _\Arr($vstup)->filter($modifikatorFilter)->toArray();
$výsledek = _\Arr($vstup)->reduceLeft($modifikatorReduce)->toArray();

Array filter se dá redukovat na filter(). Array_walk funguje stejně pomocí map, jen přiřadíte do původní proměnné a array_reduce má obdobu v metodě reduceLeft.

Kategorie

Agile
Cestování
Life Hacking
Minimalismus
Podnikání & Startupy
Použitelnost
Programování

Copyright © 2010 Jiří Knesl; 777 002 104 jiri.knesl@gmail.com RSS
Followujte mě na twitteru