Monday, January 22, 2007

Testy jednostkowe

Pamiętam jak Anka Okrasko robiła odbitki litograficzne z wizerunkiem matki boskiej. Rysunek na kamieniu litograficznym zrobiła w oparciu o skserowane z pewnej książki zdjęcie przedstawiające rzeźbę matki boskiej. Mamy więc litografię rysunku kserokopii zdjęcia rzeźby.


Ta długa transformacja przypomniała mi się przy pierwszym kontakcie z Coldfusion - technologią Macromedii w założeniu umożliwiającą nie-programistom tworzenie stron z dynamiczną treścią. Rzecz w tym, że kod Coldfusion jest tłumaczony do JSP, który jest przecież tłumaczony do Servletu, który jest kompilowany do kodu przejściowego który to dopiero jest wykonywany przez środowisko wykonawcze Javy. Cóż za gigantyczne tłumaczenie kodu !

Proponuję spojrzeć na to w ten sposób, że tłumaczenie kodu to pewien specyficzny rodzaj generowania kodu. Mamy więc tutaj wszystkie jego wady, a w szczególności tą najważniejszą: wydłużenie czasu między modyfikacją w kodzie a jego uruchomieniem. W międzyczasie trzeba przecież wygenerować kod.

Zbliża to nas do czasów gdy programy pisało się praktycznie bez testowania. Dziurkowało się je na kartach perforowanych i kilkakrotnie sprawdzano ich poprawność ... w głowie. Pierwsze uruchomienie było jednocześnie pierwszym prawdziwym testem. Zauważcie, że od tamtego czasu testujemy coraz więcej. Dziś testy jednostkowe stają się powszechną praktyką programowania a jednym z nowoczesnych pomysłów na programowanie jest aby testy były w centrum procesu programowania.

Jest to możliwe pod warunkiem, że zaraz po modyfikacji kodu, możemy szybko uruchomić automatyczny test. Zaletą tego podejścia nie jest to, że oprogramowanie będzie bezbłędne - testy jednostkowe tego nie gwarantują - ale zaletą jest to, że podczas programowania możecie się skupić na zasadniczym problemie a drobne błędy pokażą się przy pierwszym teście.

Ciekawe, przeciwne stanowisko w kwestii generowania kodu objął mój idol, Martin Fowler, w artykule: Reflection vs Code generation. Smutek.

Następnym razem będzie mała zagadka z refactoringu i wzorców projektowych, zapraszam.

Monday, January 15, 2007

Sharepoint

Dziś miałem problemy z instalacją SharePoint Services i podczas szukania pomocy, trafiłem na taki oto fragment:

Jeżeli program Windows SharePoint Services jest instalowany po raz pierwszy, należy pobrać i zainstalować ponownie wydaną kompilację tego programu. Wersja ta zawiera aktualizację oprogramowania rozwiązującą problem z weryfikacją podpisów bibliotek DLL. Po jej pobraniu i zainstalowaniu nie należy stosować procedury opisanej w sekcji „Obejście problemu” w tym artykule.

Czyż to nie jest ciekawy sposób powiedzenia "trzeba zainstalować nowszą wersję" ?. A wspomnianej sekcji "Obejście problemu" w tym artykule nie było. Może i lepiej.

Wednesday, January 10, 2007

Visio 2007

Jeśli wziąść pod uwagę, że część moich znajomych już w połowie zeszłego roku instalowała beta produkty Microsoftu z nowej linii Vista/2007, to instalując dziś Visio 2007 nie miałem prawa być tak podekscytowany. Aby zrozumieć to uczucie, musicie wiedzieć, że diagramy Visio od zawsze były bezkonkurencyjnie ładne.

Bezkonkurencyjnie to właściwe słowo, bo w przeciwieństwie do typowych sytuacji, gdy pojawia się innowacyjny produkt a konkurencja z czasem powiela jego mocne strony, piękny Visio mimo upływu lat jest do dziś jedynym sposobem, nie licząc pakietów graficznych typu photoshop, na uzyskanie atrakcyjnego wizualnie diagramu.

Powodem, dla którego w codziennych sytuacjach stosuję MagicDraw, jest niepokojąca częstotliwość z jaką zadawałem sobie pytanie "cholera, czy to rysowanie musi tyle trwać ?". Visio jest wygodny jak twarde zawieszenie nowego Mini lub pierwsze wyszukiwarki internetowe, do których nie wystarczyło wprowadzić frazy i wcisnąć enter. Trzeba było jeszcze potwierdzić swoje zamiary kliknięciem w przycisk "wyślij".

Jednak spoglądając na ekrany moich pionierskich kolegów, ukazujące beta Vistę i zapowiedzi Office 2007, jasno było widać nowy przekaz Microsoftu: "osiągneliśmy zen w zakresie funkcjonalności, czas na zen interfejsu użytkownika". Może właśnie dlatego użyteczność interfejsów stała się ostatnio takim buzz wordem, obowiązkowo obecnym w każdym szanującym się cv z branży.

Mając w pamięci te zapowiedzi zmian wyobraziłem sobie gruntownie przebudowany, sprytny interfejs użytkownika, pozwalający dzięki skrótom klawiaturowym tworzyć diagramy na tyle szybko, na ile myszka i klawiatura mogą pozwolić.

Visio 2007 to zupełnie nowa jakość. Marketingowa. Słusznie założyłem, że funkcjonalnych zmian nie będzie. Microsoft poszedł dalej i zmian interfejsu też nie będzie. Po piętnastu minutach korzystania z nowej wersji nie odnotowałem ŻADNEJ zmiany i zastosowałem sprytny skrót klawiaturowy alt+f4 aby zamknąć ten program na tyle szybko, na ile myszka i klawiatura mogą pozwolić.

Visio wciąż jest narzędziem do pięknych diagramów. W wolne weekendy.