od Podstaw
5 godz. 10 min · Ruby · Full-stack i Programowanie
Małgorzata ŁyczywekSoftware engineerW pierwszych lekcjach Kursu przejdziemy do omówienia konfiguracji środowiska, by następnie poznać tryb interaktywny Rubiego. Stworzymy pierwsze programy oraz poznamy składnię języka. Dowiesz się między innymi tego, czym są zmienne, jakie istnieją typy danych, jak przekazywać własne dane do programu i jak na nich operować.
Programy oraz instrukcje potrafią w znaczny sposób przyspieszyć i ułatwić pracę w Ruby. Mogą wykonywać za nas powtarzające się czynności i podejmować decyzje. Dlatego też kolejnym, naturalnym krokiem nauki języka Ruby jest poznanie struktur sterujących kodem, takich jak instrukcje warunkowe if, case, pętle while, until, for, each czy inne iteratory.
W kolejnych lekcjach poznasz następne, bardziej rozbudowane zagadnienia. Będziemy korzystać z zaawansowanych struktur danych i metod, jakie możemy na nich wykonywać. Są to metody wbudowane, a więc dostępne domyślnie w Ruby. Przejdziemy do pisania własnych metod dbając, by nasz kod był zgodny z regułą DRY. Poznamy zagadnienia związane ze strukturami specyficznymi dla języka Ruby a także praktykami, jakie są w tym języku stosowane.
Dane do programów najczęściej dotaczane są z zewnętrznego źródła, jak na przykład pobierane z pliku. Przekonasz się jak wykonywać operację na plikach w Ruby - odczytywać, zapisywać, a także w jaki sposób radzić sobie z dużymi plikami w wydajny sposób. Dowiemy się również co zrobić, gdy nasz program spotka niespodziewany błąd. Zajmiemy się przewidywaniem i zapobieganiem błędów w kodzie.
Kolejna, najbardziej obszerna część kursu to dokładne omówienie podstaw paradygmatu programowania obiektowego. Nawet jeżeli wydaje Ci się to bardzo skomplikowane - niedługo wszystko stanie się jasne. Programowanie obiektowe pozwala nam na lepsze odwzorowanie rzeczywistości, czyli tworzenie bardziej praktycznego kodu. Przyjrzymy się jak obiektowość jest realizowana w Ruby oraz jak tworzyć obiekty, klasy i jakich zasad warto przestrzegać. Na koniec dowiemy się jak rozszerzać funkcjonalność istniejących klas za pomocą modułów.
Ten kurs został przygotowany z myślą o wszystkich, którzy chcą zacząć naukę programowania Ruby od podstaw. Stworzono go szczególnie dla osób, które z pisaniem kodu nie miały jeszcze styczności. Nie jest wymagana żadna wcześniejsza wiedza na temat programowania. Jeśli chcesz szybko nauczyć się programowania i myślisz, że twoim kierunkiem jest tworzenie aplikacji webowych, to Ruby jest świetnym wyborem na start.
2.6+
Kolejny nasz rozdział to moduły jeżeli chcemy żeby nasz kod był
jak najbardziej czytelny było możliwe jego ponowne wykorzystanie
czyli tak zwany kod dry to chcemy wydzielić jakiś fragment
kodu i przenieść go do osobnego modułu i w ruby jest to bardzo proste
tworzymy za pomocą słowa module podając
nazwę i tutaj domyślnie używamy takiego sposobu zapisywania
jak upper camel case czyli ja bym nazwała currency
conversions i jak
widzicie tu używam dużej litery i też używam dużej litery czyli ta zasada
jest spełniona obie te litery mamy upper
czyli te większe i chcemy żeby w naszym module znajdowały się po
pierwsze metody które nam konwertują te waluty czyli zmieniają
walutę jedną w drugą jak i chcemy żeby mieć jakąś stałą czy tam tak
stałą więc ja zrobię base currency
i przypiszę na start pln czyli chcę żeby moją
bazową walutą były polskie złote i
dalej muszę utworzyć sobie jakieś metody ale w przeciwieństwie tutaj do wielu czasowych
metod będziemy rzeczywiście używać słowa kluczowego self
czyli chcemy mieć self na przykład tutaj będę mieć euro end
i tutaj w euro będę mieć amount
i jakiś przelicznik czyli na przykład 4.32
wstawiam coś takiego oczywiście muszę taki parametry jak amount podać oczywiście
chcę mieć więcej takich więc sobie zrobię kolejną
na przykład na dolary dolar też
podajemy kwotę jaką chcemy skonwertować end
podajemy razy
jakiś przelicznik 3.5
i może jeszcze dodam czeskie korony czyli teraz te
moje kolejne jeszcze tutaj amount korona
ma tam jakiś przelicznik 0.16 załóżmy teraz
mogę ten kod tutaj wykorzystać ponownie poza modułem na razie zrobię to
w jednym pliku czyli na przykład mogę dostać się do mojego modułu korzystając
z jego nazwy tak podobnie trochę jak w klasach ale
nie muszę żadnego robić słowa kluczowego new mogę wykorzystać tak
zwany access operator czyli operator dostępu który pozwoli mi się dostać do
konkretnej tej zmiennej a właściwie nie mamy zmiennej ale stałą czyli do mojej base
currency i ją wyświetlić i kiedy to wykonam
to pojawi mi się pln czyli mam dostęp do mojej base currency
mogę też wykonać metodę która zawiera się w tym module
korzystając po prostu z kropeczki podając nazwę euro
i jakąś kwotę do skonwertowania ja podam 100 czyli zmieniam
kwotę pln na 100 i wychodzi mi że
100 euro to będzie na polskie
ponad 400 złotych mogę też
oczywiście sprawdzić inne metody czyli currency convertions
mogę zmienić na przykład na czeskie korony i tu podam
znowu 100 i 100 czeskich koron to wychodzi
mi 16 zł mogę
też wykorzystać słowo kluczowe include czyli jeśli bym zrobiła tutaj
include gdzieś jakaś inna część kodu oczywiście a
my jesteśmy teraz w jednym pliku użyłabym currency conversions to
tutaj mogę na spokojnie tych
tutaj conversions się pozbyć i
zobaczymy że tu w tym wypadku kiedy się tego pozbyłam nadam jakiś błąd dlaczego
sprawdźmy co jest moim selfem tak dla
sprawdzenia kiedy tu oczywiście dostałam się tego elementu bo nie mam żadnego
innego bese currency to tu jeżeli spojrzę na self to
mi wyświetli że w self to jest main czyli jestem w jakiejś głównej części kodu mimo tego
że mam tu include żeby zawierać ten moduł self
euro nie jest w ogóle zdefiniowane jeśli sobie sprawdzimy nie mamy czegoś takiego ale
currency conversions ma taką metodę czyli
tutaj możemy sprawdzić że taka metoda a
jeszcze oczekuje argumentu oczywiście istnieje ponieważ
tutaj mamy słowo kluczowe self to to euro jest zawsze zdefiniowane
dla tego modułu pewnym rozwiązaniem w
przypadku tutaj słowa kluczowego include byłby nie używanie tutaj self teraz
te metody są po prostu ogólnie dostępne i nie są jakby
dostępne tylko w obrębie modułu czy to nam zadziała
oczywiście ale to również nam zadziała ponieważ
teraz euro zostało zaiincludowane razem z tym modułem jeżeli
tu sobie zrobię tu w środku puts self i
zobaczę co jest moim selfem aha nie użyłam
tej metody muszę użyć p żebyśmy zobaczyli coś
więcej to teraz ten self jest zaincludowany w
main i nieważne że odzywamy się tej spoza tego modułu
mam te wiedzę przyjdziemy
sobie do nowego pliku w którym będziemy mieć zaincludowany
moduł czyli stworzę sobie nowy plik a otworzę pusty
plik main i teraz zrobię include
currency conversions
i tu również skorzystam z tego
żeby to wyświetlić na przykład currency
conversions base currency
teraz pojawia mi się błąd że mam
ten currency conversions nie jest nam dostępne to
dlatego że ten moduł znajduje się poza naszym plikiem
żeby móc z niego skorzystać potrzebujemy słowa required musimy
sobie najpierw zrobić require podać
gdzie ma szukać tego modułu u nas jest w tym folderze więc użyłam sobie gwiazdki currency
conversion i nie muszę podawać rozszerzenia rb
bo będzie wiedział że ma do czynienia z modułem i
teraz widzimy że pojawi mi się ta stała base currency
mogę też wywołac jakąś metodę euro i podać
230 na przykład i zobaczyć a
tutaj mamy oczywiście w module ale
zmieniłam na self ponownie to tutaj powinnam
cofnąć nasze zmiany i tu
zobaczymy skonwertowaną wartość możemy też oczywiście
użyć naszego include skorzystać
z tego że możemy zaincludować currency conversions tu
będzie cały czas działało tak jak działało ale tego już nie potrzebujemy a
tego jak usunę no nam pokaże
że ten self się nie zgadza bo teraz mam inny self
niż tu self ale jeżeli pozbędziemy się tych selfów tak jak poprzednio to
moduł ma ten ten moduł jest zaimportowany jak każda inna metoda w
obrębie tego nowego pliku main tutaj include spowodowało że
mamy dostęp do metod currency conversions nie
musimy zawsze podawać tutaj ścieżki do pliku pełnej możemy skorzystać z require relative
i podać po prostu nazwę modułu który chcemy
wykorzystać i teraz tak samo działa jak
poprzednio czyli możemy spokojnie skorzystać z tej metody
czy z tej stałej
wymiana_walut
module CurrencyConversions
BASECURRENCY = "PLN"
def euro(amount)
amount * 4.32
end
def dollar(amount)
amount * 3.5
end
def czk(amount)
amount * 0.16
end
endwymaganie_modulu · 1 min
# require "./currency_conversions"
require_relative "currency_conversions"
include CurrencyConversions
puts BASECURRENCY
puts euro(230)