Pod koniec zeszłego roku w “Black Friday” (jak dobrze pamiętam za jakieś 200 zł) kupiłem dodatek do Visual Studio (OzCode), który „niby” miał usprawnić proces dubuggowania. I właśnie o tym narzędziu chciałbym napisać kilka zdań i może w jakimś stopniu zachęcić Was do jego zakupu. Tak w nawiązaniu do poprzedniego wpisu dotyczącego inwestowania w siebie ? I znowu… Nie jest to reklama ?
OzCode w tym momencie w subskrypcji rocznej kosztuje ~$100, studenci zapłacą ~$25.
Po pewnym czasie używania tego narzędzia doszedłem do wniosku, że jest to naprawdę fajny dodatek, który potrafi wspomóc pracę podczas klepania kodu ?. Funkcjonalności, które posiada jest dużo ale dzisiaj chciałbym opisać trzy z nich, które w znacznym stopniu mogą przyspieszyć sprawdzanie błędnych danych w kolekcjach.
Moimi zaleciałościami było nagminne używanie Console.WriteLine() aby podczas działania programu wypisać na konsoli jakieś dane. Wielu z Was pewnie do tej pory używa funkcji alert ? w javaczymś. Od czasu kiedy zacząłem używać OzCode moje podejście do debuggowania nabrało innego wymiaru. Najbardziej jednak zauważalny jest czas jaki spędzam na przeszukiwaniu na przykład list i sprawdzaniu czy w kolekcji powiedzmy 20 elementów dane są poprawne.
Pamiętam ile razy traciłem czas na to aby przeglądnąć całą kolekcje w poszukiwaniu jakiejś zmiany czy niepoprawnego podbicia danych. W miarę prosto jest przeszukać listę stringów ale gorzej już kiedy jest jakiś miej lub bardziej złożony model danych.
Z OzCode zarówno czas jak i cały proces diametralnie się zmienia.
Przypuśćmy, że mamy listę 10 elementów jakiegoś modelu i chcemy znaleźć ten jeden właściwy element nie wiedząc na którym jest miejscu w liście.
Najprostszym sposobem jest dodanie linijki, która w zbiorze danych wyszuka nam tego jednego elementu jak na przykład użycie FirstOrDefault z jakimiś parametrami. No ale potem trzeba sprawdzić czy szukany element nie jest nullem jak nie jest nullem co coś tam a jak jest to lipa bo coś poszło nie tak i najlepiej będzie przeszukać całą listę i upewnić się, że to czego szukamy jest albo rzeczywiście go nie ma.
Kto z Was tak nie miał? ?

I w tym jak i wielu innych przypadkach OzCode staje się być zbawieniem ?


Jak możecie zaobserwować na zamieszczonym filmie, funkcja wyszukiwania miażdży cały system ?
Poprzez proste zastosowanie wyszukiwania danych w kolekcji możemy w bardzo szybki sposób sprawdzić czy szukany element występuje w zbiorze danych czy nie. Jak nie to znaczy, że pewnie masz gdzieś błąd w kodzie ?
Druga rzecz, która strasznie przypadła mi do gustu jest możliwość wybrania pól z naszej kolekcji, które automatycznie będą widoczne po rozwinięciu listy. Zresztą sami zobaczcie jak to działa ?


Czyż nie jest to piękne? Takie od razu podane dane na tacy? ?
Ostatnią funkcjonalnością, o której chcę dzisiaj napisać są tak zwane tracepoints. Jest to nic innego jak rozszerzenie opcji Condition i/lub Action przy stawianiu breakpointa. Rozszerzenie polega na tym, że dane nie są wypisywane na konsoli tylko w osobny oknie, z opcją wyszukiwania ? i z danymi historycznymi.
Zobaczcie sami jak to działa


Muszę dodać, że dane z tracepoint zostają nawet po ubiciu aplikacji w trybie debuggowania.
Koniec z zaglądaniem do Output Window, koniec z poszukiwaniem damych w gąszczu niepotrzebnych rzeczy ?

Oprócz tych trzech bardzo przydatnych jak dla mnie funkcjonalności, OzCode pozwala na o wiele więcej ale o tym będzie następny wpis.