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+
Kontynuujemy naszą przygodę z programowaniem obiektowym i
teraz stworzę sobie klasę zwierzę oraz dwie klasy które będą
z tej klasy dziedziczyć zrobię sobie class animal end class
hourse i klasę unicorn
obie te klasy tak jak wspomniałam będą dziedziczyć czyli używamy tej
strzałki czy znaku mniejszości animal i tak samo w przypadku unicorn
animal stworzymy sobie
w klasie animal metodę metoda instancji z której będą dziedziczyć
pozostałe klasy ale w tej metodzie nie będziemy
mieć żadnej implementacji właściwie będzie tylko i wyłącznie podnoszenie wyjątku not
implemented jeżeli zapomnimy dodać taką
metodę w klasie potomnej czyli chcemy żeby każda klasa
potomna zawsze miała tutaj tą metodę poop czyli
sobie robię you must implement method
poop żeby była jeszcze nazwa i
teraz mogę też stworzyć taką metodę dla mojego konia czyli zrobię
sobie metodę poop dla konia i on będzie bez zaskoczeń
coś tutaj wyświetlać on będzie nam robił kupę ale
nasz jednorożec będzie chciał nas
troszeczkę zaskoczyć i też będzie miał tą metodę ale
ta metoda będzie się troszeczkę różnić i on będzie nam zwracał
wyświetlał napis właściwie rainbow
w ten sposób utworzyliśmy sobie dwie klasy dziedziczące
ze zwierzęcia i wykonujące jakąś metodę czyli teraz jeżeli sobie
stworzę dwa obiekty horse new
i unicorn unicorn
new to na obu tych metodach mogę wywołać
dokładnie tą samą metodę czyli na horse może
być poop i mogę zrobić unicorn
kropka i zobaczyć efekt w
jednym tutaj obiekt nam wyświetli napis a drugi też mam wyświetli
napis mamy poop i rainbow możemy też zrobić trochę inaczej
i wysłać do jakiegoś obiektu nie ważne jaki będzie
metodę poop czyli bym sobie zrobiła taką pętle najpierw
sobie zrobiła dwa obiekty horse i unicorn
w tablicy i dla każdego z nich czyli
object sobie zrobię mogę wysłać metodę poop
czyli zrobię send takie
coś powoduje że mogę sprawdzić że ta metoda tutaj wykona się na obiekcie pobranym
jako kolejny obiekt z tablicy i stanie się dokładnie to
samo czyli też zostanie wyświetlone poop takie
zachowanie czyli że jedna metoda może być użyta dla
kilku różnych typów klas nazywa się polimorfizmem i o wiele
lepszym przykładem na polimorfizm czyli na to że możemy wykorzystać metodę
dla wielu różnych obiektów będzie troszkę inny przykład czyli
stworzę sobie metodę która będzie która będzie poza
naszymi klasami stworzę sobie metodę give sound
będzie jakiś dźwięk do niej przekazywane po prostu
sound i będzie zwracane sound razy
powiedzmy 4 tu sobie
też tworzę obiekty czy stworzę sobie znowu konia i
jednorożca i teraz przydałoby nam się przekazać
jakiś dźwięk czyli chcemy żeby koń robił jakiś dźwięk
a unicorn dawał nam inny czyli w przypadku
konia zrobię sobie neigh czyi dźwięk jaki wydaje koń
i tutaj musimy teraz stworzyć sobie jakiś
konstruktor który
przyjmuje dźwięk ustawimy sobie zmienną
sound i musimy
zamknąć nasz konstruktor a na początku tutaj jakiś atrybut
accessor i
właściwie taka sama część będzie występowała też w przypadku
naszego jednorożca więc możemy tą całość przekazać
do klasy animal z której obie te klasy dziedziczą więc
zarówno koń jak i unicorn będą oczekiwały że przy tworzeniu otrzymają
dźwięk czyli tutaj koń ma neigh
a nasz unicorn będzie robił bananan i
teraz mogę sobie tą metodę sound
give sound wywołać z wykorzystaniem tych
dwóch obiektów tutaj sobie wykonam ten kod że tutaj wszystko jest poprawnie wywołam
sobie metodę give sound dla obiektu horse
dostając się do jego dźwięku sound
i tutaj mogę też stworzyć give
sound unicorn i też przekazać
sound obie te oczywiście metody
muszę wyświetlić i pojawi nam się stworzony
nowy dźwięk dla konia i nowy dźwięk tutaj dla jednorożca
takie rozwiązania może tutaj są mało widoczne jeszcze
ale one bardzo przyspieszają nam pracę i pozwalają zaoszczędzić sporo kodu
bo tutaj widzimy dzięki temu że obie dziedziczą z animal tylko
raz musimy napisać ten kod więc nasz kod jest dry nie powtarza
się jest bardziej czytelny