Formatowanie kodu szybko i bezboleśnie

formatowanie kodu

Formatowanie kodu to jedna z podstawowych czynności jaką możemy zrobić w ramach refaktoryzacji. Jest proste i bezbolesne (pod warunkiem, że w Twoim języku programowania nie programuje się białymi znakami*). Daje szybki efekt w postaci czytelniejszego kodu a to jest bardzo ważne, zresztą pisałem już o tym tutaj.

Formatowanie kodu z automatu

Visual Studio posiada bardzo bogaty system dodatków a jednym z podstawowych to Productivity Power Tools a w nim dwa ustawienia, które nas interesują formatowanie kodu i usuwanie niepotrzebnych usingów. Instalacja jest banalnie prosta. W Tools -> Extensions and Updates szukamy power toolsów i instalujemy.

instalacja power tools

A potem ustawiamy dwie opcje, Tools -> Options -> Productivity Power Tools -> Power Commands

To wystarczy aby automatycznie formatować kod przy zapisywaniu pliku. Proste? Banalnie proste. Od teraz przed zapisem pliku Visual Studio automatycznie będzie formatować nasz kod i juz będziemy kroczek bliżej do trochę bardziej czytelnego kodu.

Jak formatować istniejący już kod

 

Co jeśli mamy już dużo kodu? Co jeśli chcemy sformatować wszystkie pliki w istniejącym – całkiem sporym projekcie? Nie trzeba otwierać każdego pliku w projekcie, wystarczy odpalić ReSharper-a czyli prawdopodobnie najlepsze narzędzie do refaktoryzacji. Później wystarczy mając wybrane na drzewku solution z menu wybrać ReSharper -> Edit -> Code Cleanup i patrzeć jak się samo robi 🙂 Preste? Banalnie proste. Tak posprzątany kod to dobry początek. Jeśli w zespole macie jakieś standardy kodowania, jeśli wąsy wrzucacie na koniec linii albo do nowej linii to te wszystkie rzeczy ustawisz w Resharper -> Settings -> ……. -> Code Style i oczywiście można ustawić różne ustawienia dla różnych języków.

resharper settings

 

*) programowanie białymi znakami to według mnie jeden z gorszych pomysłów bo konia z rzędem temu kto znajdzie błąd w programie jak mu kod wydrukujemy. Konia z rzędem temu kto szybko w najprostszym edytorze znajdzie spacje zamienione na tabulatory albo tabulatory na spacje. Czego nie widać nie powinno być elementem języka programowania i basta. Mamy dosyć problemów z domeną aby jeszcze dorzucać do pieca. Nie zmienia to faktu, że dobrze się tak programuje – nie trzeba tych cholernych nawiasów sadzać tyle, ale co z tego jak się gorzej utrzymuje.

Warsztat czyli moje narzędzia pracy

Każdy programista ma swoją listę ulubionych narzędzi – takich jakie sprawdzają się w codziennej pracy. Warto poznać czego używają inni dlatego zachęcam do opisania swojego. Poniżej mój warsztat (na dzień dzisiejszy), który wygląda następująco (w kolejności zwiększenia komfortu pracy i produktywności):

NCrunch

dodatek do Visual Studio do Continious Testing. Dodatek ten dział w tle i jeśli tylko może, to kompiluje kod i uruchamia testy jednostkowe. Efekt jest taki, że przestając pisać nawet na kilka sekund, kod zostanie skompilowany, testy uruchomione a ładny pasek postępu powie czy wszystko jest ok czy nie. Dodatkowo w najnowszej wersji pokazuje powolne linie kodu, więc spełnia funkcję podstawowego profilera. U mnie ten dodatek zajmuje niekwestionowane pierwsze miejsce. http://www.ncrunch.net/

ReSharper

na drugim miejscu z bardzo małą stratą punktową (ale jednak) jest ReSharper. Świetny dodatek ułatwiający pracę z kodem. Pozwala na super szybką nawigację, wyszukiwanie problemów z kodem, zawiera potężne refaktoryzacje oraz wiele innych. Lubi RAM ale odpłaca się po stokroć za każdy zużyty MB http://www.jetbrains.com/resharper/ (z tej samej stajni sprawdziłem Intelij dla Javy i PhpStorm – równie świetne a z PhpStormem dochodzę do wniosku że php może być używalny Puszczam oczko )

FluentAssertions

to mała sprytna biblioteka, która powoduje że asercje są (dla mnie) czytelniejsze. Działą z MBUnitem i NUnitem oraz podobno z innymi xUnitami – ale innych nie sprawdzałem.http://fluentassertions.codeplex.com/

Mercurial

w wojnie na DVCS-y pomiędzy Mercurial-em a Git-em stoję po stronie Mercurial-a. Głównie dlatego że BitBucket daje możliwość założenia prywatnego konta za free. Niestety muszę również pracować z SVNem – a przecież złe repozytorium boli całe życie.

Personal Activity Monitor

Przerażający program, który liczy czas jaki spędzamy z poszczególnymi aplikacjami. Praktycznie zerowa konfiguracja i prosto prezentowane informacje najwyraźniej mają dla wielu znaczenie bo program ten pobrano już ponad 6000 razy. Program ten rozwijam w wolnym czasie  – tak to jest autoreklama. http://activitymonitor.codeplex.com/

NuGet

ostatnia zabawka, która ostatnio pochłania mnie bez reszty to NuGet. Dodawanie referencji za jego pomocą jest nieprzyzwoicie proste jednak dopiero odkrycie, że w miarę łatwo można stworzyć własne pakiety i własne repozytorium przekonało mnie, żeby spoglądnąć na niego z większą uwagą. http://nuget.org/

Gdzieś pomiędzy lub obok majaczą jeszcze: SkyDrive, FinalBuilder, SpecFlow, Evernote, GoogleCalendar i RocketDock. Używam ich jednak znacząco mniej.