Světýlkův blog

Další pohled na věc
  • Žádný spěch a přesto pohyb rychlý.

  • Veselský skowkiting nářez (Den 1.)

    Tak jsem konečně navštívil zdejší proslulý snowkiting spot – Veselský kopec. Nalákala mě především zpráva, že se zde přes víkend budou konat v oba dny kurzy od Hara-kiri. V sobotu jsme se sice s Hara-kirákami téměř minuli, ale počasí bylo parádní. Slunce svítilo a i když se to zpočátku nezdálo, vítr se pak pěkně rozfoukal.

    GPS tracking jsem zapnul sice s opožděním, ale i tak mě naměřené údaje docela potěšily. Zdá se, že jsem během jedné hodiny na lyžích s kitem najel více než za celý život 🙂 (moc jsem nelyžoval).

  • Řekni mi, jaké máš certifikáty a já ti řeknu, jaký jsi člověk. –Petr L.

  • Java tip: For není fór a split není řiť

    For()

    Už jste se někdy přistihli při psaní tohoto cyklu?

    for(int i = 1; i < something; i++) {
        //Do something
    }
    

    Pak vězte, že v (dle mého názoru) opravdu velkém počtu případů je to znamení, že je něco špatně. Buď máte špatný design, anebo to jde celé udělat jinak a mnohem lépe. Ne vždy se tomu člověk vyhne, ale čím častěji, tím líp.

    Split()

    Další věcí je metoda String.split(). Použili jsme ji asi všichni, ale přiznejte se, kolik z vás ji opakovaně používá na parsování Stringu ve smyslu, že pak použijete pouze něco z výsledné množiny? Na to mám pouze jednu odpověď: Naučte se regulární výrazy a vyzkoušejte Rojo 🙂.

    NějakýInterfaceImpl

    Původně jsem se domníval, že je to spíše věc ojedinělá, ale nedávno jsem v praxi narazil již na druhého člověka, který, jak se zdá, má až chorobnou touhu vytvářet interfacy 🙂 . Jedná se především o DAO třídy. Moje představa o použití interfacu z hlediska designu je taková:

    1. Očekává se, že něco může mít vícero implementací
    2. Tyto implementace jsou volány “přes jediné API” / nebo též “stejným způsobem”

    Pokud si tyto dvě otázky položím v případě DAO tříd, tak jsem názoru, že každé DAO má mít vždy pouze jednu jedinou implementaci, a i kdybych připustil, že by někdo někdy chtěl mít pro 1 DAO implementací více, tím hůře si dokážu představit, proč by je chtěl volat stejným způsobem? 🙂 S tímto i úzce souvisí názvosloví končící na Impl, kde vám hned vysvětlím, proč ho nemám rád. Samotná neurčitost názvu na mě působí dojmem, že implementace daného interfacu je skutečně pouze jedna, čímž smysl interfacu samotného vlastně popírá, jinak by se přeci jmenovala nějak smysluplně, nebo ne? Např. měl-li bych interface Service, čekal bych implementace jako FileService, NetworkService, ale rozhodně ne ServiceImpl 🙂 . Z tohoto mi plynou hned dvě ponaučení:

    1. Přemýšlejte nad názvoslovím, protože již ono samotné může odhalit chybu ve vašem myšlení
    2. Nedržte se striktně naučených pouček o čistém kódu, ale běžte více do hloubky daného problému a, zkrátka, přemýšlejte 🙂 . Aneb jak již jednou někdo řekl: “Všechny generalizace jsou mylné, včetně této”.

    PS: Další důvod proč nedělat interfacy tam, kde jsou zjevně zbytečné, je ten, že když si na některou metodu takového objektu v Eclipsu se stiskem CTRL kliknu, nedostanu se přímo do kódu, ale do interfacu samotného, což je strašně otravné 🙂 .

  • Já tančím jako holka, protože holky tancují lépe.

  • Štamprle slouží k aproximaci objemu vypitého alkoholu pomocí množiny přirozených čísel.

  • Pro zaměstnance neexistuje nic více potěšujícího než eskalující pochvala.

  • Snažit se zalíbit svému protějšku je jako koupit si nekompatibilní hardware a pak se ho pomocí nejrůznějších redukcí pokoušet uvést do provozu.

  • Naposledy jsem mu podal ruku, když měl něco s rukou.

  • Očekáváš-li chaos, nic tě nepřekvapí.