Archive

Archive for February, 2009

110% pokrycia kodu

February 23rd, 2009 No comments

Cóż, zdarzają się ludzie, którzy wierzą, że pokrycie testami 100% kodu wystarczy,
aby stwierdzić, że w projekcie są prawidłowe testy.

Osiągnięcie takiego wyniku przy niebanalnym projekcie jest sprawą niełatwą
i czapki z głów przed tymi, którzy to osiągną, ale jednak pokrycie testami kodu mierzy
nic innego niż, cóż, pokrycie testami kodu…

Jeśli ktoś uważa, że pokrycie testami 100% kodu to wszystko co jest potrzebne,
to jest w sporym błędzie. To, że masz pewność, że wykonana została każda linijka
kodu, nie oznacza w ogóle, że kod spełnia wymagania i że zadziała w każdej
z przewidzianych w projekcie sytuacji. Pomijając już kwestie testowania rozmaitych
zakresów parametrów wejściowych lub interakcji z innymi częściami systemu,
może też zdarzyć się, że testami pokryty jest też kod, który w ogóle nie jest potrzebny.

Przytrafiło mi się, że przeglądałem pewien kawałek kodu i po jakimś czasie doszedłem
do wniosku, że część z tego kodu nie jest potrzebna, po prostu tego kodu nie powinno
w ogóle być. Nie robił niczego złego w tym sensie, że projektowana funkcjonalność
była realizowana, a od strony pokrycia kodu wszystko było w porządku, kod wykonywał
się. Szkopuł jednak w tym, że sporo linijek mogłem spokojnie usunąć i funkcjonalność
była nadal zachowana. Miałem więc zmierzone pokrycie kodu, który nie powinien
istnieć. Po pewnym czasie wyszło też, że kod ten wykonywał 4 niepotrzebne SELECT-y,
więc de facto był bugiem. A bugi się ubija :-) .

Wynikają z tego przynajmniej dwie kwestie

  • mierzenie pokrycia kodu to jeszcze nie wszystko co można zrobić
  • przeglądy kodu to bardzo dobra rzecz

@fourthrealm

Share
Categories: Software Tags:

Polskie nazwy państw i miast w strefach czasowych

February 20th, 2009 No comments

Potrzebowaliśmy ostatnio polskich nazw państw i miast znajdujących się w poszczególnych strefach czasowych. Rzecz polega na tym, że nie chcemy aby użytkownicy musieli wybierać swoje strefy czasowe na podstawie przesunięcia względem UTC lub żeby musieli zastanawiać się czy w danym miejscu aktualnie obowiązuje czas CET, WET, WEST, EET lub jakikolwiek inny. O wiele wygodniej jest powiedzieć, że jest się w Warszawie, Kijowie lub na Wyspie Wielkanocnej.

Nie mogłem nigdzie znaleźć takiej sensownej listy polskich nazw, użyłem więc listy popularnych stref czasowych, którą zawiera pytz, biblioteka dla Pythona ułatwiająca pracę z różnymi strefami czasowymi. pytz udostępnia popularne strefy jako pytz.common_timezones, np. Africa/Johannesburg, Asia/Krasnoyarsk czy Europe/Copenhagen, cała sprawa sprowadzała się więc do przetłumaczenia na język polski nazw kontynentów i tych miast, które mają już utrwalone w języku polskim tłumaczenia – np. Rzym, Paryż lub Dżibuti.

Wynik tłumaczenia można pobrać tutaj, na licencji BSD, co w praktyce oznacza, że można go używać w dowolnym celu. Lista posortowana jest według nazw polskich, przy czym część nazw pozostawiłem w formie oryginalnej, np. Córdoba, São Tomé, ale zawsze są to nazwy latin-like, jest więc co prawda Asunción, ale nie ma już tylko Hongkong :-) .

Dla kompletności – tutaj można znaleźć listę stref czasowych z polskimi tłumaczeniami.

@fourthrealm

Share
Categories: Software Tags: , ,