Marcin Dudek


.Net


Senior Consultant w Infusion, zajmujący się głównie doradztwem i rozwijaniem oprogramowania dla branży inwestycyjnej. Począwszy od Systemów Zarządzania Ryzykiem aż po system do Algorithmic Trading. Przez niemal 10 lat w swojej karierze zajmował się różnymi obszarami związanymi z .NET, aplikacje na Windows oraz webowe jak również rozproszone systemy serwerowe. Specjalizuje się w full stack development oraz automatycznym testowaniu oprogramowania. Fan prostych rozwiązań działających z ideą KISS (Keep it simple, stupid). Sympatyk nowoczesnym rozwijaniem aplikacji webowych oraz miłośnik języka Go. Z Łukaszem (Olbromskim) połączyła go pasja do rozwijania oprogramowania z sensem.


Talks

Jak sensownie debugować aplikacje?

Inspiracją do tej prezentacji są słowa trenera specjalizującego się m.in. w TDD. Powiedział on, że nigdy nie zatrudni osoby, która chwali się umiejętnościami debugowania aplikacji. Uważa on, że taka osoba zamiast pisać kod, to debuguje aplikację i poprawia swoje błędy. A przecież nie o to chodzi. Podczas tej prezentacji przedstawię swoje przemyślenia czy umiejętność debugowania to powód do wstydu, czy może wręcz przeciwnie a osoba specjalizująca się w debugowaniu to skarb? Zademonstruję w jaki sposób unikamy debugowania, analizujemy i poprawiamy błędy w aplikacji. Opowiem o sposobach służących do zapobiegania, żeby dany błąd nie powrócił. Często spotykam się z przekonaniem, że umiejętność debugowania zdobywa się podczas pracy przy źle zaprojektowanym lub nieudokumentowanym systemie. Według mnie debugowanie to coś więcej niż jeden ze sposobów na poznanie systemu i ewentualną poprawę stanu rzeczy. Zdarza się, że umiejętność debugowania to jedyny sposób na naprawienie trudnych błędów wynikających z zużywania zbyt dużej ilości pamięci, źle zdefiniowanych zależności, mutowania stanu aplikacji, czy błędnej synchronizacji kodu. Opowiem również jakie techniki możemy wykorzystać w celu analizy wydajności, bezpieczeństwa, wpływie na jakość i czytelność kodu, czy związku debugowania z testowaniem, logowaniem stanu aplikacji.