pátek 5. prosince 2008

Už nikdy více NPE

Na posledním projektu jsem ze zabýval archeologickou činností - upravovat aplikaci, která vznikla asi před dvěma lety a od té doby se příliš neměnila. Šlo o poměrně jednoduchou webovou aplikaci, která ukládá data z pár formulářů do databáze. Prostě brnkačka.

Horší to bylo s implementací. Kód byl úplně zamořen následující konstrukcí

if (someString!=null && someString.trim().length()>0) {
// do something
}

nebo ještě v komplikovaněji

if (firstName!=null && firstName.trim().length()>0 && lastName!=null && lastName.trim().length()>0) {
// do something different
}

Kdyby to byl výskyt jen tu a tam, tak nad ním mávnu rukou, ale podobné podmínky tvořili asi 80% celého kódu.

Většinou si programátoři začnou psát svoji vlastní MyUtil třídu, kde soustředí různé malé metody. Co programátor, to další MyUtil třída.

Neznalost neomlouvá, takže - pro tyto účely je už dávno vytvořená, zdokumentovaná a asi milionkrát otestovaná třída StringUtils, která je součástí apache commons lang balíčku (doporučuji prostudovat vše, co v této knihovničce je - pozor je vysoce návyková).

Výsledek vypadá následovně - čitelnost o poznání lepší.

if (StringUtils.isNotBlank(firstName) && StringUtils.isNotBlank(lastName)) {
// do someting
}

Pokud tedy máte pocit, že si chcete napsat svoji vlastní MyUtil třídu vězte, že objevujete znova kolo.

Žádné komentáře: