Antyjava

…fajna sprawa

Siema, siema – mnie tu nie ma!

  • 7 sierpnia 2011 23:19

Gdzieś jest, lecz nie wiadomo gdzieeeeee,
wyjątek, który wykluł sięeeeeee!
W niewielkiem serwlecie mieszka on,
a pośród (nocnej) ciszy,
rozchodzi się jego dzwooooon!

Ten wyjątek, który tu widzicie zowią niebezpieeeeeeeczny,
mały, głupi ex – catch nieskuteeeeeczny!
Wyjąąąąątek chadza tu i taaaaam!
Looooogi pokazując nam.

Bez dowodów się nie obędzie;)

try....
} catch (Exception ex) {
logger.error(" in " + class + "." + method, ex);
}

Lokomotywa, czyli….

  • 18 lipca 2011 23:30

Stoi w Eclipsie klasa Javova,
wielka i tłusta, jak święta krowa.

Ciężka ogromna i pot z niej spływa –
pamięci ubywa.

Stoi i sapie, dyszy i dmucha,
Wyjątek z rozgrzanego jej brzucha bucha:
Buch – Stack tracem!
Uch – ClassCastem!
Puff – CzyCiastem?
Puff – Exception!

Już ledwo sapie, już ledwo zipie,
A jeszcze Jasiu metodę rypie.
Klasy wewnętrzne podoczepiali
Wielkie i ciężkie, pełne robali.
I pełno zmiennych jest każdej klasie,
Udostępnianych w tym samym czasie.

A w każdej klasie ta sama metoda,
produkujBabol() się w środku chowa.

Lecz kiedy request tę klasę wzruszy,
To ona żwawo nadstawi uszy,
I jak ślimaczek goniący zajęcy,
Przemierzy linii dwadzieścia tysięcy.

Jak się nazywa lokomotywa,
co jej od groma kodu przybywa?

zaczną grać werble….
to…. Turbo Servlet!

Wyjątkowa refleksja przed wyjątkową refleksją

  • 11 lipca 2011 19:53

A gdyby przyszło tysiąc dzieciaczków?,
na każde było tysiąc kubraczków!,
do tego czapki, szaliczki, falbanki,
to nie ubierzesz takiego bez niańki!

Tu tylko Babcia Ponętna Krysia,
da radę ubrać każdego Zdzisia.
Ma swoją pętlę z parametrami
Sprytnie pierwszego bobasa mami.

Chwilą refleksji to się zaczyna
Krysia próbuje najpierw przez głowę,
To nic, że właśnie wkłada skarpetkę,
Więc leci wyjątek przez Bernadetkę.

Krysia zdziwiona łapie NoSuch’a
Lecz nasza Babcia na to nie zważa,
Bierze za ucho małego gówniarza,
I pocierając o małżowinę,
Wciska skarpetkę w niewinną dziecinę.

Tu znów Exception prędko wzlatuje,
Nic jednak Babci nie umykuje.
Łapie i tego, i kolejnego.
Programuj z Krysią Zdolny Kolego!

Krysia próbuje niezmordowanie,
Lecz kiedy żaden z sposobów nie w stanie,
To mając e9 na giętkim stosie,
Krysia komentarz dopisze, co sie
……
Ma ostrzec następną Zosie…

„Nie putuj mi tutaj żadnego message’a
Przeca nikt błędu tu nie zamierza.
To wszystko bardzo się często wydarza,
W wyniku log mi się żwawo rozmnaża.”


public static void setParameters(WorZParametrami req, Bobas bobas) {
Enumeration enumeracyja = req.getParameterNames();
while (enumeracyja.hasMoreElements()) {
String parameter = (String) enumeracyja.nextElement();
String[] petlaParametrow =  req.getParameterValues(parameter);
Object arguments[] = new Object[1];
Method metoda = null;
if (petlaParametrow.length == 1) {
try {
metoda = bobas.getClass().getMethod("set" + StringUtils.capitalize(parameter), new Class[] { String.class });
arguments[0] = petlaParametrow[0];
} catch (NoSuchMethodException e) {
try {
metoda = bobas.getClass().getMethod("set" + StringUtils.capitalize(parameter), new Class[] { String[].class });
arguments[0] = petlaParametrow;
} catch (NoSuchMethodException e2) {
try {
metoda = bobas.getClass().getMethod("set" + StringUtils.capitalize(parameter), new Class[] { int.class });
arguments[0] = new Integer(petlaParametrow[0]);
} catch (NoSuchMethodException e3) {
try {
metoda = bobas.getClass().getMethod("set" + StringUtils.capitalize(parameter), new Class[] { boolean.class });
arguments[0] = new Boolean(petlaParametrow[0].equals("on") ? "true" : "false");
} catch (NoSuchMethodException e4) {
//nie dawaj tu zadnego komentarza, bo czesto sie zdarza, ze tu sie wchodzi i log obrodzi
}}}}}}}

Jako tako z Reksiem mi się kojarzy stawiającym na każdej klatce swoją pieczątkę pasującą jak ulał:


Czołówka Reksia przez annafrida83

Spotkajmy się!

  • 8 maja 2011 20:59

Zasadniczo nie powinienem był tego robić, ale ….
PROGRAMISTO MŁODY,
co ROBISZ???!!
gdy braknie Ci urody…
albowiem wiek masz właściwy i umysł Twój jest już treściwy
i możesz samodzielnie myśleć,
A W KODZIE JEST BŁĄD?

Czy wtedy się spotykasz?
Z kolegami przemykasz,
przez korporacji korytarze,
aż PO GODZINIE rozum Ci wskaże,
podpowiedź od obcych bogów….

ZAJRZYJMY DO LOGÓW!:)

moi Kochani – czyżbym był na bani?

  • 9 stycznia 2011 23:45

nieprawda to!

A jednak wokół mnie wielce nieznajome ciała złożone z nieprzystających do siebie części kołyszą się tu i ówdzie będąc podskubywanymi przez latające, zielone singletony.

przerwa.

Singleton Zdzich łaskocze w piętę jabłko nadęte. Pytanie jedynie, dlaczego w tym młynie, jabłko … ma PIĘTĘ? Albowiem Zdzich wziął mu ją wstawił, co by się później dobrze zabawił. Znalazł sobie metodę setBodyElementList() i wcisnął tam piętę… w te jabłko przeklęte. … i oby nie użył setKolor  z parametrem czarny …. no bo los byłby marny.

przerwa druga.

Singleton Józio się nie rymuje, kiedy tak gruszka smacznie dryfuje, po wannie nowej, choć fioletowej. A skąd ma wanna kolor ów smutny mimo, że wieczór nie jest paskudny? Albowiem Maciek – zuch programista dodał tej wannie set-wodotryska! I odtąd wanna wodą sikając kolor swój zmienia udostępniając, metodę publiczną, brzydką, niechlujną, która ….

przerwa trzecia.

Po co te pola private?, protected?   kiedy settery wsio rozmieszczone i pola owe biorą za żonę, którą już tylko łacno prowadzić i nie trza martwić się, by nie zawadzić, o stan obiektu, aby był spójny, cóż to gdy kolor bywa podwójny!

Starczą trzy przerwy, zaś wyjaśnienie – nadejdzie dla tych, co minęło olśnienie.

Dziś było krótko, choć wężowato, pewnie to wiosna – nadchodzi lato!

Anty yfy z koziej pipy

  • 28 listopada 2010 23:14

Gdzieś, lecz nie wiadomo gdzie…… zwierzęta luźno pasły sieee….
I był między nimi pasterz, który trzody tej doglądał i w miarę potrzeb na smaczne jadło przeznaczał.
I aby wybór był z grubsza prosty, mocno logiczny – biegł chłop przez mosty i zwierzęta swe przez nie prowadził….
Prawy most bykom tylko wadził…. Lewy zaś gadał: „nie rogi? -> toś owca” = tak pasterz ów wodził zwierzęta z manowca.
Jako, że zdolności zaś wsie posiadał, to do proboszcza ów często gadał. A ten mu na to: „awans na lato”. I wsiadł pasterz na swego czarnego kundla i stolicy ostro po… galopował.
I przyszedł nowy… pasterz do zwierząt. Przywiódł ze sobą kozę nieświeżą. I postanowił ją, celem przygody, w szranki żarłoczne posłać w zawody.
Ruszyła koza, przez mosty…. lecz nie dotarła wprost do starosty.
Prawy most spytał „if nieByk? -> zapraszę” – i wyruszyła owca na paszę.
Gdyż nowy pasterz zwykł rozumować, że do nowego zwierzęcia wystarczy most dodać i kawałek zaklęcia…
Gdy na JSP coś programujesz, to pozytywnie to kodujesz.
Jeżeli jesteś zmuszony zawierać logikę na jsp – rób ją pozytywną.

Wpis w rodzaju:
<logic:notEqual name=”formZwierzaki” property=”gatunek” value=”byk”>
<logic:notEqual name=”formZwierzaki” property=”gatunek” value=”rogate”>
coś tam coś tam…
</logic:notEqual></logic:notEqual>

umieszczony gdzieś na początku strony prawdopodobnie nie zostanie zauważony przez innego programistę dodającego obsługę w rodzaju:
<logic:equal name=”formZwierzaki” property=”gatunek” value=”koza”>
beeeeeee
</logic:equal>

I w wyniku tego koza pobiegnie nie do tego oboza…..

Odpowiedzialność metod – czyli dlaczego Królewna „nie dała” Gapciowi…

  • 8 września 2010 22:31

Śniadanie na polanie

Czas zacząć.

Jako,  że chcę posiłkować prawdziwymi sytuacjami, wszystkie opisywane przeze mnie kwiatki zostaną zmodyfikowane tak, aby zachować tajemnicę służbową, a jednocześnie nie pozbawić ich owego niepowtarzalnego smrodku brzydkiego kodu.

Na początku było wymaganie. Trzeba napisać metodę robiącą jadłospis dla krasnoludków.

I metoda public Jadłospis zróbJadłospis() stała się.

Później, pełen werwy programista Gapcio, spostrzegł, iż niekiedy brakuje składników użytych w jadłospisie, co czyni metodę bezużyteczną. I co wtedy począł nasz dzielny Gapcio? Nie… nie sprawdził przed sporządzeniem jadłospisu, z których składników będzie korzystał. Gapcio postąpił według najmodniejszego w królestwie wzorca projektowego o nazwie „metodę A popraw metodą B”!

Dopisał więc metodę public boolean czyJadłospisUżywaIstniejącychSkładników (Jadłospis jadłospis).  A następnie wszystkie je umieścił w metodzie o dumnie brzmiącej nazwie:

public Śniadanie przygotujŚniadanie() {

Jadłospis jadłospis = zróbJadłospis();

Śniadanie śniadanie = null;

if  ( !czyJadłospisUżywaIstniejącychSkładników (jadłospis) ) {

jadłospis = null;

}

if  (jadłospis != null) {

śniadanie = zrobŚniadanieWgJadłospis(jadłospis);

}

return śniadanie;

}

„Ho ho!” – krzyknął dzielny Gapcio!

„Zadbałem,  aby mój cudowny kod wykonał się niezależnie od składników!” – dodał i ruszył w kierunku czającej się za krzesłem, ponętnej królewny.

Kilka chwil później, gdy Gapcio ściągał już w pośpiechu swoje kalesony, aby właściwie zaprezentować się ciemnowłosej piękności, Gburek zląkł się kaloriami, jakie otrzymać każdy dzielny krasnal powinien.

Napisał tedy metodę public Integer obliczKalorie (Jadłospis jadłospis). Jako, że Gburek nie zdążył jeszcze zaznajomić się z JedynieSłusznymiWzorcamiProjektowymi królestwa Krasnoludkowego,  zdecydował samodzielnie sprawdzać, czy dostarczany mu jadłospis jest, aby użyteczny i na początku swojej metody dorzucił właściwy kod rzucający wyjątek.

I co???

public Śniadanie przygotujŚniadanie() {

Jadłospis jadłospis = zróbJadłospis();

Integer czyWystarczającoDużoKaloriiDlaKrólewny = obliczKalorie (jadłospis);

Śniadanie śniadanie = null;

if  ( !czyJadłospisUżywaIstniejącychSkładników (jadłospis) ) {

jadłospis = null;

}

if  (jadłospis != null) {

śniadanie = zrobŚniadanieWgJadłospis(jadłospis);

}

return śniadanie;

}

Było cudnie! Dopóki ożywiony Śpioszek nie rzucił wyjątkiem w Królewnę zdejmującą właśnie spodnie napalonemu Gapciowi.

„OutOfMakaronException!” – zarechotał Śpioszek.

„Dlaczego dajesz mi bezużyteczny Jadłospis zagadnął, zdyszanego Gapcia. Tego dziarskiemu krasnalowi było już za wiele! Szybkim ciosem brodą wbił rozbudzonemu Śpioszkowi do głowy, że jego metoda jest w złym miejscu, i że JedynieSłuszneWzorceProjektowe, i że ….

Królewna wystraszyła się nie na żarty!

„JedynieSłuszneWzorceProjektowe zagrożone!” – krzyknęła, a podniecenie uleciało z niej niczym bocian na wiosnę.

Dlatego Królewna „nie dała” Gapciowi.

Nie zgrywaj chojraka na głodniaka

Metoda publiczna musi mieć swoją odpowiedzialność.
W środku niej powinien znaleźć się kod sprawdzający dostępność składników i rzucający wyjątkiem obsługiwanym gdzieś wyżej. Nie byłoby kłopotów i if’ów.