Dzisiaj pokażę antypchełkę, czyli jak nie pisać kodu VBA. Żeby zmieścić się w kategorii "Pchełki", tylko sześć linii.
A czemu zagadka?
Proszę powiedzieć co robi poniższy kod 😉
Sub AntyPchelka()
Dim lf As Long, Switchh As Long, L0ng As String
lf = 17
L0ng = "String"
If lf = Switch(L0ng = "Long", 0, L0ng = "String", 17, True, 19) Then Debug.Print Switch(Switchh = 0, 9, False, True, True, False)
End Sub
I proszę nigdy, przenigdy nie stosować takiego stylu programowania. No chyba że ktoś ma zapędy sadystyczno-masochistyczne...
to z cyklu #define TRUE FALSE //Happy debugging suckers ?
Mniej więcej. Z tym, że C (i pochodne) daje w tym kierunku o wiele większe możliwości niż VBA. Dlatego mistrzowie nieczytelności kodu programują w C (i pochodnych) 😉
Takie cos nazywa sie fachowo "code obfuscation" i ja bym nie przedstawial tego jako antywzorca, ale zmyslne ukrycie swojego kodu zrodlowego przed nieporzadanym uzyciem. Sa nawet zawody w tym organizowane, wystarczy pogooglowac.
Bardziej jako antywzorce programowania widzialbym tutaj uzywanie "magic numbers" czy "hardcoded strings", czego osobiscie bardzo nie cierpie.
A wiesz, że przy pisaniu tego wpisu szukałem code obfuscation? Tylko że wszystkie wyniki Gugla prowadziły do oprogramowania wspomagającego CO a nie do przykładów kodu.
A to dziwne, bo mi po wpisaniu "code obfuscation", jednym z pierwszych wynikow jakie wyskoczyly byl link do wikipedii, a tam kilka przykladow. Tyle, ze w C i Perlu (http://en.wikipedia.org/wiki/Obfuscation_%28software%29#Examples). Mozna tez szukac po polskim odpowiedniku "zaciemnianie kodu".
O kurdę, przeoczyłem to. Świetne 😉
Z kolei moje ulubione "dziwactwa" programistyczne to ezoteryczne języki programowania takie jak Brainfuck, Whitespace czy król królów Malbolge (ponoć pierwszy działający program w Malbolge-u udało się napisać dopiero po dwóch latach od stworzenia języka, i to za pomocą osobnego algorytmu).
Kiedys probowalem zrozumiec dzialanie instrukcji w Malbolge, ale dalem sobie spokoj. To zadanie dla prawdziwych pasjonatow. 😉