Programowanie w języku Ruby

II rok studiów stacjonarnych inżynierskich, kierunek Informatyka, wydział IET

Materiały pomocnicze

Różne

Ruby

Ruby on Rails

Wybrane slajdy z wykładu

Slajdy
Data modyfikacji slajdów: 13-04-2018, 15:00

Zasady zaliczenia ćwiczeń

  1. Maksymalna liczba nieobecności to 1
  2. Przed każdymi zajęciami, kilka dni wcześniej, w systemie informatycznym będzie się pojawiał zestaw zadań składający się z kilku zadań prostych (ćwiczenia 1-7) oraz jednego złożonego (ćwiczenia 1-6)
  3. Zadania proste są przeznaczone do samodzielnego wykonania przed lub na ćwiczeniach
  4. Zadanie złożone jest przeznaczone do dokończenia/wykonania po ćwiczeniach - termin oddania: następne zajęcia
  5. W przypadku trzech określonych zadań prostych, ich szczegóły są znane z góry, a w przypadku pozostałych, są tylko informacje ogólne - ich szczegóły będą podawane na początku zajęć
  6. Punktacja zadań:
    Typ zadaniaLiczba punktówUwagi
    Proste, treść jest znana z góry vel przygotowawcze1Do wykonania przed zajęciami (oznaczone ikoną )
    Proste, treść jest podawana na początku zajęć2 (3)Do wykonania (w całości), wyłącznie, na zajęciach
    Złożone vel domowe3Do dokończenia/wykonania po zajęciach (oznaczone ikoną )
  7. Zadania przygotowawcze oraz domowe nie są obowiązkowe, nie mniej jednak należy pamiętać, że są one punktowane, a co za tym idzie, mają one istotny wpływ na wysokość oceny
  8. Na każdych z siedmiu ćwiczeń można zdobyć 10 pkt. = 7 Zadania proste + 3 Zadanie złożone
  9. Wysokość oceny końcowej będzie obliczana na podstawie sumarycznej ilości zdobytych punktów, w oparciu o progi określone w regulaminie studiów (§13, ust. 1)
  10. Na każdych zajęciach:
    • na samym ich początku sprawdzana jest poprawność oraz samodzielność wykonania, zarówno zadania złożonego (domowego), jak i zadań przygotowawczych, tj. tych, których treść jest znana z góry
    • ostatnie 10-15 minut to czas na podsumowanie tematu ćwiczenia - rozpoczęcie podsumowania kończy okres przyjmowania rozwiązań zadań
  11. W przypadku stwierdzenia, że przedstawiany do oceny kod (dowolnego zadania) jest kopią kodu innej osoby, jego autorzy otrzymują 0 pkt. za całość zadania

Oddawanie zadań prostych

  1. Rozwiązanie należy je wgrywać do indywidualnego katalogu rozwiązań
  2. Następnie trzeba to rozwiązanie przedstawić prowadzącemu

Oddawanie zadania złożonego

  1. Rozwiązanie należy wgrać do indywidualnego katalogu rozwiązań, na dzień przed rozpoczęciem kolejnych ćwiczeń
  2. Kompletne rozwiązania zadań złożonych, umieszczone w indywidualnym katalogu rozwiązań (patrz opis poniżej), są poddawane weryfikacji systemem antyplagiatowym
  3. Na samym ich początku odbywa się odbierane rozwiązania. W trakcie tej procedury są zadawane pytania lub pojawia się prośba o zmodyfikowanie kodu - celem tych zabiegów jest sprawdzenie samodzielności wykonania zadania / zrozumienia działania kodu
  4. Możliwe jest wcześniejsze oddanie zadania - na najbliższych konsultacjach

Tematyka ćwiczeń laboratoryjnych

L. p. Tematyka Jak się przygotować do ćwiczenia
1
  • Składnia języka Ruby
  • Typizacja
Na komputerach znajdujących się w laboratorium 4.29, 4.30 oraz na puli PCoIP "Podstawowy system - ICSR (Win10)" jest zainstalowany edytor Visual Studio Code. Przeczytaj jakie funkcjonalności związane z tworzeniem kodów źródłowych programów oferuje ten edytor.

Po zalogowaniu się do systemu Linux (laboratorium 4.29) dokonaj konfiguracji edytora oraz zainstaluj potrzebne gemy, jak to opisano poniżej.

  1. Dopisz do pliku ~/.bashrc następujący fragment:
    if which ruby >/dev/null && which gem >/dev/null
    then
      export PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:~/bin:$PATH"
    fi
    
  2. Wykonaj komendę exec $SHELL
  3. Przy użyciu komendy gem env wyświetl informacje o środowisku RubyGems - zastanów się:
    • w których katalogach 'Ruby' będzie szukał gemów
    • w których katalogach 'Ruby' będzie szukał plików wykonywalnych
  4. Wykonaj potok gem help install | less - dowiedz się do czego służy opcja --user-install
  5. Utwórz plik ~/.gemrc o podanej zawartości:
    install: --user-install
    update: --user-install
    
  6. Wykonaj komendę gem server - jak myślisz: jakie informacje są udostępniane na stronie http://localhost:8808/
  7. Zainstaluj rozszerzenie rebornix.Ruby oraz gemy potrzebne do prawidłowego działania debuggera:
    code --install-extension rebornix.Ruby
    gem install ruby-debug-ide debase
    
  8. Uruchom edytor za pomocą komendy code
  9. Przy użyciu opcji "Open folder..." (Ctrl+K Ctrl+O) wybierz katalog w którym będą przechowywane Twoje skrypty
  10. W obrębie panelu "EXPLORER" najedź kursorem myszy na nazwę powyższego katalogu i kliknij ikonę "New File" - utwórz pusty plik/skrypt o nazwie main.rb
  11. Umieść w nim następujący kod Ruby:
    print "\e[31mWitaj Świecie\e[0m\n"
              
  12. Za pomocą sekwencji klawiszy Ctrl+` otwórz panel terminala, a następnie wpisz w nim polecenie ruby main.rb, co spowoduje uruchomienie Twojego skryptu; tu: wypisanie, na czerwono, napisu "Witaj Świecie"
  13. Jeżeli chcesz aby określona sekwencja klawiszy (np. Ctrl+Alt+R) uruchamiała polecenie ruby <nazwa_bieżącego_skryptu>, to:
    • Naciśnij Ctrl+K Ctrl+S, a następnie otwórz plik keybindings.json i umieść, pomiędzy parą nawiasów kwadratowych, pokazaną poniżej, w liniach 3-6, treść:
      [ 
        { 
          "key": "ctrl+alt+r", 
          "command": "workbench.action.tasks.runTask", 
          "args": "ruby",
          "when": "editorLangId == 'ruby'" 
        },
        { 
          "key": "ctrl+alt+l", 
          "command": "workbench.action.tasks.runTask", 
          "args": "rubocop",
          "when": "editorLangId == 'ruby'" 
        }
      ]
      
      W pokazanym kodzie, dodatkowo, w liniach 9-12, określano funkcjonalność sekwencji klawiszy Ctrl+Alt+L - naciśnięcie tej sekwencji powoduje uruchomienie, opisanego poniżej, programu rubocop
    • Utwórz, w katalogu z kodem źródłowym, podkatalog .vscode
    • W tym ostatnim, utwórz plik tasks.json o następującej zawartości:
      {
        "version": "2.0.0",
        "tasks": [
                   {
                     "label": "ruby",
                     "command": "ruby",
                     "args": [ "${file}" ]
                    },
                    {
                     "label": "rubocop",
                     "command": "rubocop",
                     "args": [ "--auto-correct", "${file}" ]
                    }
                 ]
      }
      
  14. Zainstaluj gema rubocop gem install rubocop
  15. Dopisz, na końcu skryptu main.rb, następujący kod:
    =begin
    Przykładowy kod ze strony http://rubocop.readthedocs.io/en/latest/basic_usage/
    =end
    def badName
    if something
          test
          end
          end
          
  16. Za pomocą programu rubocop sprawdź zgodność tego skryptu z zasadami pisania poprawnego kodu w Ruby - wpisz w terminalu: rubocop main.rb
  17. Wyjdź z edytora
  18. Utwórz w katalogu domowym plik o nazwie .rubocop.yml i następującej zawartości:
    Rails:
      Enabled: true
    
  19. Wykonaj komendę rubocop --auto-correct main.rb - rubocop dokona autokorekty skryptu źródłowego, tzn. doprowadzi go, na tyle ile to możliwe, do stanu zgodności z ww. zasadami
  20. Ponownie sprawdź zgodność skryptu z powyższymi zasadami
  21. Uruchom edytor i ręcznie popraw skrypt - doprowadź go do stanu "brak wykroczeń", tzn. po wydaniu polecenia rubocop main.rb ma się wypisać tekst: "... no offenses detected"
  22. Naciśnij Ctrl+,, wybierz "USER SETTINGS" i dopisz:
    "ruby.lint": 
    {
      "ruby": {
        "unicode": true //Uruchamia ruby -wc -Ku
      },
      "rubocop": true,
    },
    "ruby.format": "rubocop"         
    
    a następnie naciśnij Ctrl+S
  23. Napisz fragment kodu Ruby, który jest niezgodny z zasadami pisania poprawnego kodu i sprawdź czy edytor podkreśla ten fragment
  24. Najedź kursorem myszy na podkreślony fragment i zobacz co się wyświetla w "dymku"
  25. Uruchom autokorektę za pomocą klawiszy Ctrl+Alt+L - spowoduje to wykonanie polecenia rubocop --auto-correct <nazwa_bieżącego_pliku>
  26. Jeżeli chcesz dodatkowej kontroli poprawności kodu, to:
    1. Zainstaluj gemy: ruby-lint, debride, fasterer oraz reek: gem install debride ruby-lint fasterer reek
    2. Naciśnij Ctrl+,, wybierz "USER SETTINGS" i zastąp dopisaną przed chwilą zawartość, następującą:
      "ruby.lint": 
      {
        "debride": {
          "rails": true 
        }
        "ruby": {
          "unicode": true 
        },
        "rubocop": true,
        "reek": true,
        "fasterer": true,
        "ruby-lint": true
      }
      
      a następnie naciśnij Ctrl+S
  27. Zainstaluj rozszerzenie Ruby Solargraph oraz najnowszą wersję dokumentacji:
    code --install-extension castwide.solargraph
    gem install solargraph
    solargraph download-core
    
  28. Sprawdź czy działa autouzupełnianie - dopisz na końcu skryptu tekst puts 1.e. Jeżeli nie pojawiło się menu z propozycjami nazw metod, to naciśnij Ctrl+Spacja
  29. Sprawdź czy działa możliwość przeszukiwania dokumentacji - naciśnij Ctrl+Shift+R i wpisz: Array#join
  30. Zainstaluj gema pry: gem install pry
  31. Zaznajom się (film 1, film 2) z możliwościami programu pry
  32. Przeczytaj jak korzystać z debuggera oraz opis testów minitest, TDC oraz przyglądnij się przykładom testów
2
  • Przetwarzanie tekstu
  • Tworzenie jednolinijkowców
  • Wyrażenia regularne
Zaznajom się z:
3
  • Programowanie funkcyjne
  • Obiektowość
  • Programowanie sterowane testami - TDD
  • Programy 'gem' oraz 'rake'
Zaznajom się z:
4 Tworzenie prostych aplikacji internetowych
  • Interfejs Rack
  • Podstawy języka dziedzinowego (DSL) "Sinatra"
Zaznajom się z:
5 Framework "Ruby on Rails" - Kontroler oraz testy funkcjonalne Zaznajom się z:
6 Framework "Ruby on Rails" - Model oraz testy jednostkowe Zaznajom się z:
7 Framework "Ruby on Rails" - Widok oraz testy integracyjne Zaznajom się z:

[Ranking popularności języków]

[porównanie języków]
Rysunek ze strony https://www.udemy.com/blog/modern-language-wars/