Paweł Łukasiewicz
2019-03-02
Paweł Łukasiewicz
2019-03-02
Wprowadzenie
W tym artykule omówię i przedstawie kilka wskazówek dla programistów, które w znaczny sposób mogą poprawić wydajność pracy w środowisku Visual Studio 2017. Głównym ich celem jest zaoszczędzenie czasu w trakcie pracy nad projektem. Skupimy się na kilku podstawowych operacjach, które możemy wykonać znacznie szybciej za pomocą skrótów klawiszowych.
Zakładam, że jako osoba czytająca tego bloga korzystasz z Visual Studio (nie ważne w jakiej wersji) – wystarczy posiadać podstawową wiedzę dotyczącą tego środowiska programistycznego. Zaczynamy!
Zamykanie wszystkich otwartych dokumentów
Za każdym razem, gdy pracujemy nad projektem, otwieramy wiele różnych typów dokumentów. W pewnej chwili zdajemy sobie sprawę, że jest ich zbyt wiele a my potrzebujemy pozamykać otwarte dokumenty i skupić się na tym/tych, które nas interesują. Aby zamknać wszystkie zakładki zwykle klikamy prawym przyciskiem myszki na nagłówek otwartego dokumentu i klikamy: "Close All Documents":
Jeżeli jednak nie chcesz tracić czasu klikając myszką możesz posłużyć się skrótem klawiszowym:
Alt + W + L
Skrót klawiszowy Alt + W + L pozwala na zamknięcie wszystkich zakładek jednocześnie. Może się jednak zdarzyć, że ten skrót nie działa w Twoim Visual Studio (może nie być zdefiniowany). Nie jest to jednak problem, w kolejnej sekcji omówimy własną definicję skrótów klawiszowych, która może być zdefiniowana w kilku kliknięciach.
Tworzenie własnych skrótów klawiszowych
Tak jak wcześniej wspomniałem, skróty klawiszowe są bardzo przydatne i mogą zaoszczędzić wiele czasu. Jeżeli nie masz określonego domyślnego skrótu w ustawieniach Visual Studio, możesz zdefiniować swój własny dla setek różnych operacji – jest to proces niezwykle prosty. W pierwszym kroku musisz przejść do odpowiedniego menu:
W kolejnym kroku przechodzimy do elementu Keyborad dostępnego z poziomu listy rozwijalnej Environment
Teraz jesteś w stanie ustawić skróty klawiszowe dla dostępnych operacji. Wystarczy w polu tekstowym Show commands containing wpisać interesujące Cie polecenie:
Jest to polecenie odwrotne do poprzedniego. Możecie zobaczyć, że po jego wybraniu pojawił się obecnie używany skrót klawiszowy. Jeżeli Wam nie odpowiada wystarczy skorzystać z przycisku Remove i wprowadzić (pole ‘tekstowe’ zczytuje kombinacje klawiszy wciśniętą na klawiaturze – nie ma możliwości ‘ręcznego’ wpisania) swoją własną komibnację klawiszy.
Zapisanie wszystkich dokumentów
W poprzednim przykładzie celowo szukaliśmy zapisywania wszystkich zmodyfikowanych dokumentów ponieważ jest to niezwykle istotny skrót klawiszowy, zwłaszcza, gdy pracujecie w zespole. Jeżeli dokonaliście edycji kilku dokumentów, przed wysłaniem zmian do centralnego repozytorium należy zapisać każdy z nich, aby uniknąć problemu niedziałającego kodu na innych komputerach. Często przechodzimy przez każdą z zakładek posługując się skrótem klawiszowym Crtl + S - modyfikując wiele dokumentów jeden z nich możemy przeoczyć. Popularne jest również przechodzenie przez górny pasek nawigacji, tj. File -> Save All.
Równie skutecznym, ale szybszym podejściem jest kombinacja klawiszy:
Crtl + Shift + S
Dodawanie nowego elementu
Dodawanie nowych plików do naszego projektu jest często powtarzaną czynnością:
Poniższej kombinacji klawiszy używam niezwykle często na początkowym etapie projektu, kiedy zależy mi na przygotowaniu wstępnej "struktury":
Crtl + N
Krótki i łatwy do zapamiętania skrót klawiszowy.
Szybkie akcje i refraktoryzacja kodu
Niezwykle istotna funkcjonalność Visual Studio, która pozwala poruszać się naprzód za każdym razem, gdy napotkasz jakiś problem, ostrzeżenie lub chcesz dokonać refraktoryzacji (zmian, które nie wpływają na funkcjonalność) kodu:
Nazewnictwo sekcji wzięło się z jednego z najpopularniejszych narzędzi dla programistów .NET, którym jest ReSharper - w znaczący sposób rozszerza możliwości środowiska programistycznego Visual Studio poprzez ułatwienie i przyśpieszenie tworzenia bądź refraktoryzowania kodu.
Skrót klawiszowy o którym mowa to:
Crtl + .
Wystrarczy najechać kursorem na dany element kodu klikając powyższą komibnacje klawiszy, Visual Studio zaproponuje usunięcie niepotrzebnego elementu, wygenerowanie pustych metod interfejsu, etc.
Pisanie pionowe
Niezwykle przydatne, gdy musimy pisać w wielu liniach jednocześnie:
Interesujący nas skrót klawiszowy:
Shift + Alt + strzałka w górę lub dół
Ustawiamy kursor w interesującym nas miejscu, wciskamy powyższą komibnację klawiszy a następnie za pomocą strzałek oznaczamy linie, które chcemy poddać tej samej modyfikacji.
Usuwanie wszystkich Breakpointów
Proces analizy kodu jest niezwykle istotny ponieważ żaden programista nie jest nieomylny. W trakcie tej analizy mamy tendencje do stawiania wielu breakpointów ale zwykle ich nie usuwamy...
W pewnym momencie doprowadzi to do nadmiarowości, dlatego raz na jakiś czas warto je wszystkie usunąć. Interesująca nas komibnacja klawiszy:
Crtl + Shift + F9
doprowadzi do wyświetlania komunikatu:
Z tego punktu możemy skasować je wszystkie.
Formatowanie kodu
Jeden z najpopularniejszych skrótów klawiszowych bez których ciężko wyobrazić sobie karierę programisty:
Crtl + K, Crtl + D
Poniżej prosty przykład działania tej komibnacji klawiszy. Na pierwszym zrzucie ekranu kod napisany bez żadnej logiki formatowania (prawda, że nieczytelny?):
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using GPSTracker.Models;
namespace GPSTracker.Controllers
{
public class HomeController : Controller
{
private string UseName { get; set; }
private string UseLastName { get; set; }
private string UseMothersMaidenName { get; set; }
public IActionResult Index()
{
string name = "just for test";
// nie szukajcie proszę logiki
for (int i = 0; i < name.Length; i++)
{
name += $"{name}_{i}";
}
return View();
}
public IActionResult LiveGPS()
{
return View();
}
public IActionResult DrawRoute()
{
return View();
}
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
return View();
}
public IActionResult Contact()
{
ViewData["Message"] = "Your contact page.";
return View();
}
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
Oraz dokładnie ten sam kod po wprowadzeniu powyższej komibnacji klawiszy:
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using GPSTracker.Models;
namespace GPSTracker.Controllers
{
public class HomeController : Controller
{
private string UseName { get; set; }
private string UseLastName { get; set; }
private string UseMothersMaidenName { get; set; }
public IActionResult Index()
{
string name = "just for test";
// nie szukajcie proszę logiki
for (int i = 0; i < name.Length; i++)
{
name += $"{name}_{i}";
}
return View();
}
public IActionResult LiveGPS()
{
return View();
}
public IActionResult DrawRoute()
{
return View();
}
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
return View();
}
public IActionResult Contact()
{
ViewData["Message"] = "Your contact page.";
return View();
}
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
Usunięcie nieużywanych przestrzeni nazw
Ustawiając kursor w odpowiednim miejscu i korzystając z kombinacji klawiszy Crtl + . jesteśmy w stanie usunąć nieużywane przestrzenie nazw – w tym przypadku jest to podpowiedź ze strony środowiska Visual Studio.
Kolejną możliwością jest użycie dedykowane skrótu klawiszowego:
Crtl + R, Crtl + G
Podsumowanie
Nie każdy jest zwolennikiem skrótów klawiszowych. Z drugiej strony nie każdy lubi używać myszki. Nie będziemy się skupiać na preferencjach programistów bo każdy ma swoje własne podejście do programowania. W artykule chciałem jednak pokazać przydatne skróty klawiszowe, których użycie może pozwolić zaoszczedzić kilka chwil. Ktoś może zapytać: "a co ja zrobię z tymi dodatkowymi minutami zaoszczędzonymi każdego dnia?" Z perspektywy jednego dnia zmiana nie jest zauważalna, rzecz jednak wygląda całkowicie odmiennie, gdy podsumujemy te minuty patrząc na cały rok pisania kodu i rozwijania naszego projektu...