Czyli VS Code i VirtualBox – na przykładzie C/C++.
Programowanie na innej platformie
Tworzenie oprogramowania jest trudniejsze gdy musimy się w toku pracy odwoływać do specyficznych rozwiązań docelowego systemu, na którym nasz software ma działać. Załóżmy na przykład, że piszemy w windowsowym IntelliJ program w Javie, który będzie się odwoływał do ścieżek do plików w układzie charakterystycznych dla systemu Linux (a więc np. /home/developer/README.txt
) a nie dla systemu Windows (czyli np. C:\Users\Developer\README.txt
). Pomijamy przy tym kwestię powtarzania slashy i inne „kwiatki”.
Czy da się ułatwić tworzenie takiego oprogramowania bez zmiany systemu na maszynie deweloperskiej? Oczywiście, wystarczy wirtualizacja i sprytne korzystanie z edytora. Zobaczmy to na przykładzie VS Code, VirtualBox i C/C++.
Windows a jednak Linux czyli wirtualizacja
Powiedzmy sobie szczerze: nawet jeśli lubimy desktopowe rozwiązania Linuksa to część z nas – „linuksiarzy” – korzysta z Windows na maszynach roboczych. Czy to na maszynie pracowniczej (z korporacyjnego przymusu) czy na domowym sprzęcie (bo gry, bo Microsoft Office lepiej sobie radzi z dokumentami niż Open Office) musimy jednak czasem coś napisać na inną platformę.
Zacznijmy od zainstalowania VirtualBoksa. Oczywiście możesz użyć Dockera lub innego oprogramowania, jeśli to dla Ciebie bardziej przemawia, ale maszyna wirtualna VirtualBox pozwala zapewnić trwałość, łatwość obsługi i, co najważniejsze, mieć dostępny pełny system operacyjny.
W ustawieniach sieciowych maszyny wirtualnej VirtualBox warto włączyć Bridged Adapter i używać wygenerowanego adresu MAC, aby przypisać maszynie statyczny adres IP na naszym routerze. W ten sposób prywatny adres IP jest zawsze stały dla maszyny i możemy łatwo uzyskać dostęp do wszystkich usług / portów maszyny, tak jak w przypadku każdego innego urządzenia w sieci.
Gość w dom, „bug” w dom
Jaką dystrybucję zainstalować? Szczerze mówiąc, możesz wybrać, co chcesz - FreeBSD, OpenBSD, Gentoo, Arch, Ubuntu i tak dalej. Zbyt wiele opcji, aby je tutaj wymienić. Jeśli nie używasz GUI i wolisz minimalny system operacyjny, pomyśl o Ubuntu Server Edition.
Podczas korzystania z VirtualBox i uruchamiania maszyny wirtualnej istnieje sprytna mała sztuczka - przycisk rozwijania na przycisku „Start” umożliwia uruchomienie maszyny wirtualnej w trybie headless. Żadne okno maszyny nie zostanie wyświetlone, ale maszyna będzie działać.
Sprawdź oferty pracy na TeamQuest
Używaj SSH do łączenia się z terminala Windows na maszynie gospodarza do maszyny wirtualnej. Używanie SSH do łączenia się z „OS gośćmi” jest łatwe i wydajne. Nie ma potrzeby używania często wolniejszego graficznego interfejsu użytkownika na maszynie wirtualnej do otwierania terminala lub kopiowania / wklejania kawałków kodu czy poleceń. Jako bonus, ponieważ nie działa żadne środowisko graficzne, użycie pamięci RAM jest dość niskie.
Edytor
Nawet jeśli lubisz vima to w przypadku czegokolwiek innego niż plik skryptu jest on po prostu niepraktyczny (no przyznaj się no…). Taki VS Code jest po prostu wygodny ale jak z nim pracować jeśli kod źródłowy znajduje się na maszynie wirtualnej?
Jeśli popatrzysz na dostępne rozszerzenia VS Code to zobaczysz, że istnieje takie jedno od Microsoft o nazwie Remote - SSH: Editing Configuration Files, które umożliwia użycie SSH do używania VS Code jako zdalnego edytora. I działa to dokładnie tak, jak na komputerze lokalnym!