Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych.

Ankieta

30 sierpnia 2008 | Klucze: Ogólne
12 komentarzy. trackback

Coś mi do głowy strzeliło i postanowiłem zebrać trochę informacji o polskim środowisku programistów Ruby. I umyśliłem sobie, że najlepiej będzie jak zrobię ankietę i poproszę ludzi o jej wypełnienie. Przygotowałem ankietę w serwisie Webankieta. Ankieta jest raczej krótka ma 15 pytań i napewno nie jest przygotowana w sposób profesjonalny ;-), ale mam nadzieję, że zdobędę dzięki niej kilka ciekawych informacji o kolegach ,po fachu'. Zachęcam do wypełnienia.

Wynik oczywiście opublikuję

Ankieta: Poznajmy rubistów

Programista-sadysta

04 sierpnia 2008 | Klucze: programowanie, rails, ruby, Techblog
3 komentarze. trackback

Dziś pokażę kilka metod używanych przez sadystycznych programistów to znęcania się nad swoim kodem źródłowym ... i sobą czasem też.

Flog

Flog to zabaweczka przygotowana przez ruby.sadi.st, a jej zadaniem jest ,,punktowanie'' kodu źródłowego.

% flog model.rb
Total score = 14.1985433422944

Finance#none: (11.8)
     2.2: named_scope
     2.2: belongs_to
     1.6: month
     1.4: ago
     1.3: branch
     1.3: lambda
     1.1: assignment
     1.1: validates_numericality_of
     1.1: validates_length_of
     0.8: lit_fixnum
,,Najciężyszym'' kodem według Floga jest named_scope. Może nie jest to najlepszy przykład na pokazanie jak działa Flog, ale idea myślę jest jasna. Oczywiście byłem ciekaw dlaczego coś otrzymuje 6.0 (eval), a coś innego tylko 0.8. Zapytałem autora, oto odpowiedź:
Because that's what I decided felt right based on experience.

Heckle

Heckle to kolejna zabawka od ruby.sadi.st. Zadaniem Heckla jest mutować napisany przez nas kod tak by if zmienił się na < texttt>unless itp. Nasz kod po zmutowaniu powinien zawalić wszystkie testy. Czasem jego wywołanie może trwac bardzo długo. Przyznaję, że nie jest to moje ulubione narzędzie, praktycznie nie używam.

rcov

O tak! rcov jest tym co lubię i tym czego często używam. Rcov służy do sprawdzenia pokrycia kodu przez testy. W uproszczeniu jest to uruchomienie testu i sprawdzanie, które linie kodu źródłowego zostały uruchomione. Wyniki mogą być prezentowane bezpośrednio na wyjściu lub generowania plików HTML pokazujących pokrycie.

Kolejną zabawką jest Saikuro - analizator złożoności kodu. Sprawdza on długość metod (ilość linii) oraz złożoność tychże. Przykładowe rezultaty Saikuro. Czym większy współczynnik złożoności tym gorzej. Taka metoda jest ciężka do zrozumienia i przetestowania np. by ją w pełni przetestować trzeba uwzględnić 20 przypadków testowych.

Narzędziem, które integruje to wszystko w jedno jest Metric_fu plugin do Railsów. Bardzo fajne efekty można osiągnąć łącząc go z narzędziami do ciągłej integracji.

Może mały konkurs kto ma najwięcej punktów we Flogu i największy wynik w saikuro? Kto się odważy? ;)