Světýlkův blog

Hlášky, myšlenky, čaj a co mě napadne ...
  • Java EE, to je Java Ne-e. –Pavel K.

  • Komiks Z Mysli – Jezevec

    A tak se z mysli vynořil …

  • Snowkiting (level 2): Do kopce a z kopce v Lichnově

    Naše první do kopce/z kopce a musím říct, že mě to bavilo podstatně více, než jen rovinka. Pokud fouká málo, muže člověk nabrat energii tím, že se pomalu nechá vytáhnout na kopec, pak to otočí a může si i za takových podmínek užít rychlou jízdu 🙂 . Čas zkusit level 3 – místa by byly, ale chtělo by to přisněžit.

    PS: Jediné, co mi na tomto spotu v Lichnově nevyhovovalo, byla přítomnost těch trnitých keřů. Jinak jsem si myslel, že tam bude dostatek prostoru i poblíž rodinných domů, ale jsou tam různé studny, dráty, atd …

  • Blbce zrodila existence někoho chytřejšího.

  • Učitel národa: Jan Amos Drozd. –Martin D.

  • Vidíš to, začínáš žít normální život … nestíháš stříhat videa. –Pavel K.

  • Žá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é 🙂 .