Zestaw narzędzi dla programisty
Jakiś czas temu prowadziłem prezentacje na ITAD, gdzie przedstawiłem kilka narzędzi, które każdy programista powinien znać. Niestety nie udało się przedstawić i omówić wszystkich, dlatego wypisuję je tutaj. Należy pamiętać, że jest to moja lista, która niekoniecznie może spełniać wymagania każdego. O paru narzędziach już nawet zapomniałem, i przygotowanie się na prezentacje pozwoliło mi o nich przypomnieć.
Lista będzie z pewnością aktualizowana, lub też powstanie osobna dedykowana dla danego zagadnienia w przyszłości.
Dla każdego
- F.lux – o tym narzędziu pisałem już na blogu. Przydatne nie tylko dla programisty – poprzez usuwanie niebieskiego koloru na ekranie, obraz z ekranu komputera nie razi nas tak mocno, pozwalając też na szybsze zaśnięcie w nocy. Dla osób korzystających z linuxa jest odpowiednik Redshift.
- OneNote i Evernote – Na co dzień korzystam z OneNote – jest to darmowe narzędzie od Microsoftu, które dostępne jest również przez przeglądarkę, a także na Androida
- OneDrive, DropBox, GoogleDrive – Warto czasami przechowywać i synchronizować swoje pliki pomiędzy komputerami i urządzeniami mobilnymi. Bardzo przydatne gdy wykorzystuje się z tableta oraz komputera. Niektórzy przechowują na nich również swoje kolekcje filmowe, nie jest to akurat dobrym pomysłem – najlepiej narzędzia tego typu nadają się do przechowywania dokumentów i zdjęć
- KeePass2 – często ma się wiele różnych haseł do różnych portali. Niektóre strony wymagają dosyć skomplikowanych haseł, które trudno zapamiętać, w rezultacie zapisuje się je gdzieś na kartce i przyczepia na ścianie. Bardzo fajnym narzędziem jest właśnie KeePass, które jest dostępne nie tylko na Windowsa. Plik z hasłami możemy zabezpieczyć uniwersalnym hasłem i przechowywać np. na OneDrive
- 7-zip – chyba najlepszy i najbardziej rozpowszechniony archiwizator. Obsługuje wiele formatów archiwów, jest wieloplatformowy, a na dodatek prosty w obsłudze.
- Synergy, Input Director – przydatne narzędzie, gdy mamy dwa fizyczne komputery, a chcemy korzystać z jednej myszki i komputera, Input Director działa tylko na Windowsach, natomiast wieloplatformowy Synergy jest płatny, ale warto wydać na niego kasę
- VirtualBox – chyba najlepsze darmowe narzędzie do wirtualizowania na desktopie. Jeżeli pojawi się następna wersja Windowsa czy Linuxa warto przedtem sprawdzić na maszynie wirtualnej i na niej działać. Wygodne też do tworzenia izolowanego środowiska, gdzie chce się sprawdzić i przetestować jakieś nieznane oprogramowanie
- Gimp, Paint.NET – Dobre i darmowe narzędzia do obróbki zdjęć oraz tworzenia bardziej zaawansowanych grafik. Idealny zamiennik Photoshopa dla zwykłego Kowalskiego
- Trello, Wunderlist – Organizowanie zadań, (taka tablica kanbanowa – gdzie wypisuje się zadania)
- Alternative To – strona, która wskaże nam zamiennik, lub program bardzo podobny do tego, który podamy
- TeamViewer – Jeżeli potrzebujesz nagłej pomocy z komputerem od kogoś znajomego, warto uruchomić to narzędzie
- Recuva – nie raz zdarzyło mi się usunąć przez przypadek folder, lub nagle zdjęcia z karty w aparacie zniknęły. Aby mieć szanse je odzyskać można użyć właśnie tego narzędzia. NIe ukrywam, jeżeli pliki zgubicie na dysku systemowym, to warto go jednak odinstalować fizycznie.
Dla .NET Deva
- Fiddler – świetne narzędzie, pozwalające na podgląd protokołu HTTP. Jeżeli chcemy powtórzyć przechwycone zapytanie to mamy taką możliwość. Możemy też utworzyć własne zapytanie lub odtworzyć jakieś istniejące.
- WireShark – bardziej rozbudowane narzędzie pozwalające podejrzeć pakiety TCP. Można się zdziwić gdy włączy się przechwytywanie wszystkiego co ląduje (nie tylko) do nas.
- SysInternals – bogaty zestaw narzędzi dla Windowsa. Od zaawansowanego przeglądania procesów, wyłapywanie procesu, który blokuje plik po podgląd pamięci proccesu i przegląd aplikacji, które startują w systemie.
- ReSharper – o tym już każdy .NETowy programista słyszał i z pewnością zna. Jest to obowiązkowe narzędzie, które zawiera w sobie wiele różnych przydadnych rzeczy – od skrótów klawiaturowych, po usprawnienia w debugowaniu aplikacji oraz więcej, warto się z nim zapoznać. JetBrains zawiera również zestaw innych świetnych narzędzi, które warto zainstalować
- dotPeek – gdy .NET Reflector stał się narzędziem płatnym, pojawiły się w jego miejsce darmowe odpowiedniki. Oprócz wspomnianych tutaj dekompilatorów warte uwagi jest także telerikowy JustDecompile.
- Powershell – bardzo przydatne narzędzie do tworzenia skryptów automatyzacyjnych oraz dla administratorów. Jest to wzbogacenie linii poleceń o możliwości .NET ze składnią przypominającą języki C i basha. Zawiera sporo aliasów do poleceń znanych z linuxa. Dostępne praktycznie w każdym Windowsie.
- PsReadLine – świetny moduł dla PowerShella wprowadzający odrobinę pomocnych kolorów jak i dodatkowych rozwiązań
- ImageMagick – bardzo dobre narzędzie przeznaczone do konwertowania grafik z jednego formatu na inny. Warto dodać folder do zmiennej path, inaczej kolidować będzie z innym poleceniem convert lub niektóre funkcjonalności nie będą dostępne. Nic nie stoi na przeszkodzi, aby użyć tego narzędzia do konwertowania PDFa na obrazek dla strony webowej
- Chocolatey – dla tych, którzy korzystają a apt-get, dostają swój odpowiednik dla Windowsa. Przydatne narzędzie do szybkiej i automatycznej instalacji oprogramowania. Nie potrzeba już wchodzić na stronę danego oprogramowania i ściągać plik – wszystko zostanie zrobione autmatycznie za nas
- BoxStarter – jeżeli tworzy się wirtualne maszyny lub instaluje często Windowsa, warto pomyśleć o BoxStarterze, który wspomoże nas instalując najświeższy soft na kompie za nas
- Notepad2, Notepad++, Geany – mająć nawet zaawansowane narzędzia IDE takie jak Visual Studio czy Eclipse warto skorzystać czasami ze zwykłego notatnika. Ten dostarczany domyśłnie z Windowsem nie nadaje się do wielu rzeczy – warto go zamienić na Notepad2. Niektórzy mogą pomyśleć też o Emacs. Od dwóch lat korzystam też z Vima, czy ktoś może powiedzieć mi jak mam z niego wyjść?
- ConEmu – o tym narzędziu równierz pisałem na blogu. Bardzo dobre narzędzie, gdy chcemy mieć linię poleceń windowsa, powershella lub nawet putty w jednym oknu, które możemy dzielić na obszary.
- FarManager – menedżer plików dla tych którzy znają starego Norton Commandera lub Midnight Commandera. Pomimo trybu tekstowego oferuje sporo możliwości gdy jest zintegrowany z ConEmu
- KDiff3, WinMerge, P4Merge – łącząc różne gałęzie kodu lub porównując foldery warto zainsalować te narzędzia
- Tortoise GIT – jak dla mnie bardzo użyteczne narzędzie integrujące się z powłoką systemową, pomijając linię poleceń, w wielu zastosowaniach GUI mimo wszystko jest przyjemniejsze. Jest też dostępna wersja dla SVNa i Mercuriala
- SourceTree – bez integracji GITa czy Mercuriala z powłoką systemową też da się żyć
- AutoHotKey – gdy skróty klawiaturowe to podstawa korzystania z komputera i chcemy utworzyć swój własny zestaw
- modern.ie – strona, z której możemy pobrać obrazy dla maszyn wirtualnych zawierających wcześniejsze wersje przeglądarek
- WinDirStat – kiedy intryguje Ciebie, czemu dysk nagle staje się przepełniony, warto to sprawdzić używając tego narzędzia
- lacekitten, Placehold.it – gdy potrzebujemy obrazek, aby wypełnił tworzoną przez nas stronę
- RedGate SQL Search, SQL Hunting Dog – poszukiwanie kolumny, tabeli czy procedury po nazwie w bazie danych nie było takie proste
- Express Profiler – fajne narzędzie pozwalające podejrzeć co jest wysyłane do bazy danych (np. co wysyła nam Entity Framework). Działa z SQL Express
- Rufus – gdy chcemy nagrać np. Windowsa na pamięć USB lub też inne obrazy na ten nośnik pamięci.
- OpenBroadcaster, Wink, ProblemStepRecorder – darmowe narzędzia przeznaczone do zgrywania ekranu, lub tworzenia interaktywnej prezentacji. Jeżeli chcemy coś wyjaśnić, można użyć dostępnego w Windows narzędzia problem step recorder.
- NCrunch – niestety płatne, ale świetne narzędzie, które pokazuje fragmenty kodu pokryte testami wraz z aktualnym statusem testu
- Carnac – jeżeli chcemy na prezentacji pokazać skrót klawiaturowy na ekranie, można użyć właśnie tego narzędzia
- Adobe Color, Paletton – narzędzia do komponowania palety kolorów
- Ditto – gdy często wykorzystujemy metodykę Copy’ego-Paste’a i chcemy śledzić historię takich poleceń, można zainstalować właśnie tą aplikację
- NimbleText – gdy mamy przykładowo plik CSV i chcemy utworzyć na jego podstawie plik SQL lub coś innego
- StyleCop – Przydatne w zespole, gdy każdy ma swój styl pisania kodu, a chcemy go ujednolicić.
- WebEssentials – Konieczny dodatek dla programisty web
- Smtp4Dev – Przydatne narzędzie, gdy chcemy sprawdzić wysyłanie maili z komputera lokalnego. To narzędzie stawia lokalny serwer SMTP, na który lądują wszystkie możliwe maile wysyłane z aplikacji.
Brutal Doom – każdy zna grę Doom. W chwilach przerwy można pograć przez sieć lub w trybie offline w starego dobrego Dooma wzbogaconego o wiele bardzo fajnych i rozryzgających się elementów. Jeżeli posiada się oryginalną grę Doom można wykorzystać mapy :)
Na niebiesko, zaznaczyłem narzędzia, które dodałem do listy po opublikowaniu tego posta. Niektóre przypomniały mi się później, często też po przypomnieniu lub sugestiach od znajomych.