Lekcja 0x0. Początki konfiguracji środowiska

Czas zacząć właściwe lekcje. Pierwszym krokiem jest konfiguracja środowiska. Ostrzegam, teraz będziesz musiała instalować coś na komputerach i może się zdarzyć, że będą z tym kłopoty. Nie zniechęcaj się, jeśli okaże się, że czegoś...

9 months ago, comments: 13, votes: 77, reward: $6.27

Czas zacząć właściwe lekcje. Pierwszym krokiem jest konfiguracja środowiska.

Ostrzegam, teraz będziesz musiała instalować coś na komputerach i może się zdarzyć, że będą z tym kłopoty. Nie zniechęcaj się, jeśli okaże się, że czegoś się nie da, zmienimy założenia i zrobimy tak, żeby się dało. Chodzi o to, abyśmy przeszli przez to razem. Jeśli coś nie będzie działało – pisz śmiało komentarze, ewentualnie prywatnie do mnie. Pamiętaj, aby opisać, co robiłaś i co się stało, co wydaje się być czym innym niż się spodziewałaś.

Jedna sprawa, o której zapomniałem wspomnieć: nie uciekniesz od języka angielskiego. Wszystkie narzędzia są po angielsku, programy zawierają angielskie słowa, dokumentacje są po angielsku, fora o programowaniu są po angielsku. Spodziewaj się zatem, że nie nauczysz się tylko programowania. Alternatywą jest chyba tylko język chiński - Chińczycy nie potrzebują znajomości angielskiego.

Tak jak wspominałem w poprzednim wpisie, chciałem przenieść lekcje ze starego bloga tu. Niestety pojawiły się trudności - edytor, z którego korzystam, utracił bezpłatne wsparcie dla języka GoLang, w którym wszystko było napisane. Przepiszę zatem kurs do języka Rust. Najwyżej nie wyjdzie.


Źródło

Piekarz ma mikser i piec, elektronik oscylator i lutownicę. Programista ma swój zestaw narzędzi, które umożliwiają mu programowanie. Dziś zaczniemy od instalacji dwóch z nich: IDE i kompilatora.

Zacznijmy od pewnych narzędzi, które nam będą potrzebne. Wejdź pod adres https://aka.ms/buildtools i wybierz Build Tools for Visual Studio 2017. Następnie z okna, które po jego uruchomieniu się otworzy, wybierz Visual C++ build tools i "Zainstaluj"

kompilatora (a właściwie narzędzia do instalacji i aktualizacji kompilatora). Na razie powiem tylko tyle, że jest to narzędzie (a raczej zestaw narzędzi), które tłumaczy napisany program na język zrozumiały dla komputera. Jest dostępny pod adresem https://www.rust-lang.org/tools/install, z wersjami na Windowsa, Linuksa i Maca. Ściągnij wersję dla swojego systemu, dostępną pod przyciskiem na stronie. Po uruchomieniu, wyskoczy okno przypominające o powyższej instalacji:

Następnie zapyta o tryb instalacji i poda wiele informacji o tym, co zostanie wykonane. Enter wybiera wersję domyślną instalacji. Narzędzia zostaną zainstalowane w katalogu C:\Users\<nazwaużytkownika>\.cargo\bin. IntelliJ sam to wykryje, więc nie musisz pamiętać tej ścieżki.

W międzyczasie pobierz IntellliJ IDEA Community Edition z https://www.jetbrains.com/idea/download/. Ponownie, dostępne są wersje na trzy systemy. Strona zazwyczaj sugeruje właściwą.

To jest duże narzędzie i gwarantuję, że na początku będzie Ci ciężko się w nim odnaleźć. Mi też było. Tego typu oprogramowanie nazywa się IDE – Integrated Development Environment (zintegrowane środowisko programistyczne). To właściwie nie jest jeden program – to jest kombajn ze wszystkim, co się da wymyślić do programowania. Jeśli czegoś nie ma, pewnie jest wtyczka, która zapewni taką funkcjonalność. To nie jest jedyne narzędzie na rynku, są też inne. Skorzystamy z tego bo tak.

Miejscem centralnym IDE jest edytor tekstu, taki sam jak na przykład Notatnik, tylko na sterydach. Z niego korzysta się najczęściej. Oprócz tego jest zazwyczaj coś do organizacji projektów (katalogów, plików i ustawień), jakieś połączenie z kompilatorami, narzędzia do weryfikacji kodu (na przykład uruchamianie testów, o tym też będziemy mówić) i kilka innych funkcji. Na początku będzie nas interesować możliwość pisania literek i cyferek, kolorki i przycisk uruchamiania. I instalacja wtyczek, ich konfiguracja i takie tam.

Jeśli jeszcze nie zasnęłaś od czytania, IntelliJ zapewne się już pobrało. Proszę uruchomić instalator i postępować zgodnie z instrukcjami. Podanych jest po drodze kilka opcji, z których pewnie nigdy nie skorzystasz, ale wybierzmy dwie z nich:

Chodzi o to, żeby na pulpicie był skrót i żeby można było uruchomić IntelliJ prawym kliknięciem myszy na katalog. Będziemy się martwić jak te funkcje się przydadzą.

Interesujące będzie pierwsze uruchomienie – zanim zdołasz napisać swój pierwszy program, musisz skonfigurować środowisko. Postaram się zasugerować, co należy włączyć już na starcie, a co wyłączyć.

  • Najpierw przeczytaj politykę prywatności, zapamiętaj jej szczegóły i zatwierdź. Następnie wybierz "Don't send" w oknie "Data sharing".
  • Wygląd – wybierz kolory, które Ci się bardziej podobają. W niektórych sytuacjach kolorki w jasnej wersji są czytelniejsze, choć wątpię, abyśmy szybko na nie trafili; Przejdź do wyboru wtyczek
  • Build tools – disable all. Będziemy się martwić gdy do nich dojdziemy. Przy okazji wyłączy się też Android, i dobrze,
  • Version controls – Customize… -> zostaw zaznaczone git i GitHub,
  • Test tools – Customize… -> zostaw Coverage. Nie wiem czy nasz język z tego korzysta, ale jeśli tak, przyda się.
  • Swing – Disable,
  • Other tools – Customize… -> zostaw Task Management, Terminal, YAML i XSLT and XPath,
  • Plugin development – Disable.

Uff. Jak widzisz, IntelliJ jest mocno rozszerzalne. W wersji płatnej jeszcze bardziej. A to jeszcze nie koniec, za chwilę otrzymamy sugesti, co jeszcze może nam się przydać. Nie wiem jakim kryterium kierują się twórcy, ale ja nie chcę żadnego proponowanego rozszerzenia. Potem wybierzemy jeszcze jedno.

(Przy okazji powiem Ci, że skróty to najlepszy przyjaciel programisty. Na razie do niczego Ci się nie przydadzą, bo będziesz poruszać się na tyle wolno, że łatwiej będzie klikać myszką, ale z czasem przenoszenie ręki z klawiatury na myszkę zrobi się upierdliwe. Dla potomnych zostawiam odnośniki do ściągawek skrótowych: https://www.jetbrains.com/help/idea/mastering-keyboard-shortcuts.html

Czemu nie wszystko jest od razu dostępne w IDE? Bo nie. A dokładnie bo nikt nie chce zarżnąć sobie komputera. Wtyczki bardzo ułatwiają pracę, pozwalają zrobić więcej, podpowiadają, sugerują, analizują. Łatwo zużyć na to wszystkie zasoby, komputera, stąd nie wrzucamy na razie niczego ponad potrzebne narzędzia.

Kończymy konfigurację, klikając dalej, aż zobaczymy coś takiego:

Sprowadza nas to do ostatniego kroku instalacji. Idziemy do ustawień wtyczek (w prawym dolnym rogu Configure -> Settings -> Plugins, albo od razu Configure -> Plugins), następnie wyłączamy jeszcze kilka wtyczek:

  • I18 for Java (UI designer się wyłączy też za Waszą zgodą)
  • IntelliLang
  • Java Bytecode Decompiler
  • JavaFX
  • Kotlin
  • Smali Support

Wciśnij przycisk Apply.

Zostaje nam jeszcze jedna sprawa - instalacja rozszerzenia do pracy z językiem Rust. W tym celu w oknie wtyczek wybieramy Marketplace, wpisujemy Rust, wybieramy i instalujemy wyświetloną wtyczkę, następnie widząc to okno:

...wcisnąłem "Restart IDE" po prawej.

Wracamy do ekranu startowego. Nie poświęcam wiele czasu temu ekranowi, bo prawdopodobnie widzisz go po raz ostatni. Wybieramy "Create New Project". Wybieramy po lewej Rust, po prawej wyskoczy coś takiego:

Wciśnij "Download via rustup" aby pobrać brakujące kawałki narzędzi.
Jeszcze tylko nazwa, na przykład hello-world, i naszym oczom ukazuje się projekt jakim go IntelliJ stworzył. To jest jednocześnie okno, które będziesz oglądać przez najbliższych kilka lekcji.

Po prawej zajduje się sekcja ze strukturą projektu. Wygląda on mniej więcej tak:

Mamy tu kilka interesujących rzeczy:

  • katalog .idea i plik xxx.iml to pliki projektu w IntelliJ
  • plik .gitignore mówi o tym, które pliki nie mają dla nas znaczenia jeśli chodzi o ich historię zmian. Będziemy o tym kiedyś mówić.
  • pliki Cargo.toml i Cargo.lock służą do konfiguracji projektu w Rust, niezależnej od IntelliJ; póki co nie będziemy tym się zajmować
  • katalog src zawiera właściwe pliki z kodem projektu, a obecnie jest w nim jeden plik, main.rs

Plik main.rs wygląda tak:

Coś już mamy, ale czy to może prawdziwy program? Przyjrzyjmy się zawartości okna:

Mamy tam:
fn main()

fn main() {
    println!("Hello, world!");
}

„fn” to słowo kluczowe – tłumaczy kompilatorowi, że teraz deklarujemy funkcję. Następnie mamy main – to nazwa funkcji, i to nie byle jaka – użycie nazwy main sugeruje, że jeśli uruchomimy program, jego wykonanie zacznie się od tej funkcji. Funkcja może przyjmować parametry (w nawiasach), ale w tym wypadku nie przyjmuje. Na koniec klamerki (wąsy) – to jest ciało funkcji. To, co zapisane jest między nimi, będzie wykonane jako treść programu.

Jak możemy to uruchomić? Proste - obok fn mamy zielony trójkącik, który klikam, a następnie wybieram opcję "Run coś tam...". Rezultat wygląda następująco:

Co się tu właśnie stało? W zakładce uruchamiania mamy kilka zapisanych linijek z narzędzi budujących, rezultat wykonanego polecenia i informację, że „Proces zakończył się z kodem wyjścia 0”. W tłumaczeniu z technicznego na nasze program się wykonał, a jego wynik wyjściowy to zero. Każdy program zwraca na końcu działania jakiś numerek. Zazwyczaj tego nie widzimy. Przyjmuje się, że kod 0 to sukces, a kod inny oznacza to, co postanowi twórca programu, ale raczej już nie sukces (choć nie jest to wymóg).

Jedyna linijka, jaką mamy w pierwszej wersji programu to polecenie wypisania tekstu na ekranie. Nie będziemy wchodzić zbytnio w szczegóły na tym etapie. Póki co proszę, abyś kliknęła myszą na println! i wcisnęła skrót Ctrl+q - ujrzysz dokumentację, wyjaśniającą, co robi println!. Nie ma to obecnie większego znaczenia, ale warto wiedzieć, gdzie szukać wyjaśnień.

Gratuluję, właśnie wysiedziałaś swoje pierwsze dupogodziny. Dupogodzina to jednostka układu SI, odpowiadająca ilości godzin, które osobnik siedzi na dupie i ćwiczy. Jeszcze ze dwa lata i będziesz pisać dzieciom mody do Roblox.

Tu kończy się pierwsza lekcja. Na pracę domową proszę mi przysłać program drukujący ulubiony wiersz. Lub obrazek ASCII. Przyjmijmy, że na razie kod podasz mi w komentarzu, wystarczy napisać linijkę ```, następnie kod, następnie znów linijkę ```.

Zgodnie ze stereotypem przyjmuję, że w przeciwieństwie do mężczyzn już zapoznałaś się z instrukcją obsługi, ale ze względu na to, że Panowie podczytują, pozostawię tu odnośnik: https://www.jetbrains.com/help/idea/meet-intellij-idea.html. Pamiętaj, że nie musisz jej czytać, choć wprowadzenie może Ci pomóc. Ja zaglądam tam tylko wtedy, gdy nie wiem, jak coś ustawić.