Programátorské cvičení II.


Vypsaná školení


Dnes tu máme další programátorské cvičení. Dneska se naučíte, jak se zbavit spousty zbytečných komentářů, zpřehledníte kód a osvojíte si užitečný návyk, který můžete nasadit na prakticky jakémkoliv zdrojáku.

A jak to tedy dneska bude?

Maximální zanoření metody smí být o 2 úrovně (pokud je v metodě if, while, for, foreach, může obsahovat maximálně jednu další úroveň z výčtu). Pokud jste odvážní, snižte si limit na 1 úroveň (tedy je-li v metodě if, while, for, foreach, nesmí obsahovat žádný další if, while, for, foreach).

Použijte 3 způsoby:

Rozdělení do metod

Toto je preferovaná cesta. Jakmile se objeví další úroveň zanoření, udělejte místo ní metodu. Tento postup má plno výhod, ale hlavně vás donutí se zamyslet na významem toho, co se v daném kusu kódu děje. Když to pojmenujete v metodě (a zjednodušíte metodu, z které funkcionalitu trháte), nepotřebujete tolik komentářů.

Občas by se mohlo stát, že by vytržená metoda byla nesmyslná. Pak změňte architekturu metody. V jednom z dalších cvičení se naučíte, jak takovému riziku zabránit v zárodku. Nebo v nějaké smyčce si potřebujete ukládat ještě výsledky pro další výpočet, který proběhne později. I to jde řešit – obvykle atributy objektu.

Vnořené zařaďte za sebe

Není nic horšího, než tři vnořené foreache, které by mohly být za sebou. Srdce objektového puristy trpí při špatně použité dědičnosti, návrhu nebo použití návrhových vzorů. Nic z toho se ale nemusí dlouho projevit. Vložené smyčky jsou nechutní žrouti výkonu a počty prvků nemusí být až tak velké. Pokud existuje způsob, jak udělat M + N + O průchodů místo M * N * O, tak je udělejte.

Jakmile rozdělíte kód do více smyček, stejně zvažte, zda je nedáte do samostatných metod. Tím, že kus kódu dáte do metody, musíte ho pojmenovat. Jakmile něco pojmenujete, osvětlíte, co daný kus kódu dělá, s čím a co je výsledkem.

Zplacaťte kód pomocí převodu na funkcionální

Téměř všude, kde se dá použít foreach, for, while, se dá použít nějaká z array_* funkcí. Tento postup už ovládáte z cvičení 1. Převod na array_* funkce vám vytvoří samostatné closury. I tyto closury musí mít nějaké jméno. Co z toho vyplývá? Obdobné benefity, jako z rozdělení do metod (což byste v tomto případě měli taky rozhodně zvážit).

Good luck a zase dejte vědět, jak se vám zadařilo.

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