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+
Weźmiemy na warsztat kolejny przykład dotyczący modułu żeby
nam było łatwiej będziemy pracować w jednym pliku więc utworzę sobie moduł find
number i ten moduł będzie znajdował liczbę
większą z dwóch czyli będziemy mieli taką metodę def max of
tu i będzie przyjmował oczywiście dwie
liczby x i y a
następnie będzie zwracał liczbę która jest większa czyli sprawdzę sobie czy x jest większa
od y a następnie jeśli tak to zwróci x w przeciwnym
wypadku zwróci y bardzo prosty moduł i pod
spodem możemy sobie stworzyć dwie klasy które będą ten moduł
sobie inkludować wewnątrz klasy stworzę sobie klasę prostokąta
która będzie robiła include find
number i kasa trójkąta która
też będzie miała include find number teraz kiedy utworzę
sobie dwa obiekty tych klas czyli stworzę sobie obiekt r rectangle
new i obiekt na przykład t równa
się triangle new to
powstaną mi dwa obiekty one są puste tutaj nic więcej nie ma ale możemy
skorzystać z metody która wcale nie jest metodą tych klas
ale jest metodą dostarczoną przez moduł czyli zrobię sobie
r max of two mogę podać dwie wartości liczbowe
na przykład 3 i 4 a następnie to
oczywiście wyświetlić zapiszę uruchomię
to zobaczysz że większa z 3 4 jest czwórka mogę
też wykonać to dla naszego trójkąta czyli podam max of
two na przykład 12 i 8 i
zobaczymy i czwórkę i 8 ja
tylko trochę zmodyfikuje bo skoro umiemy znaleźć większą liczbę z
dwóch to co szkodzi nam znaleźć większą liczbę z trzech jak
to robimy zazwyczaj zrobię sobie tutaj max of
free który przyjmuje liczby powiedzmy
a b i c no
i żeby coś takiego wykonać musimy zazwyczaj porównać a jest większa od b jeśli tak
to zwróć b jeśli b będzie większy od c no to zwróć b i
potem jeśli a jest większe od b a a jest to
większą i zwróci nam a no to muszę porównać z c i znowu czy c czy a jest większe
i tak dalej i tak dalej jest to trochę pracochłonne i tych porównań by było więc najprościej
najpierw jest nam sprawdzić która z tych dwóch a czy b jest większa zazwyczaj
to będzie coś w stylu result czy
a jest większy od b jeśli a jest większy od b to
zwróć a w przeciwnym wypadku b a następnie robimy
coś co nam zwróci wynik porównując tą która
tu z tych dwóch zwróciła czy jest większa od c jeśli tak to zwróć
result w przeciwnym razie zwróć c no i ten
ostatni problem by był zwrócony przez metodę jak teraz się tak
przyjrzymy to ta część to jest po prostu max of two tak
czyli można zrobić że max of
two podając a i b jest naszym
wynikiem i jeżeli się przyjrzymy
to tutaj nasz wynik też jest taki max of two czyli robimy max
of two podając result naszą zmienną taką tylko
tymczasową przechowującą wynik w większości a czy b i
musimy porównać z c to jeżeli tak się dokładnie przyjrzeć to po
co nam w ogóle ten result możemy go wyrzucić zupełnie i wsadzić
max of two jako pierwszy parametr i
potem c czyli tą metodą udało nam sięe
maksymalnie tak skrócić żeby była przyjemna czytelna
a jednocześnie żeby była jak najkrótsza czyli najpierw sprawdzamy która jest większa
a czy b a potem sprawdzamy czy która z tych dwóch będzie większa
z c czyli teraz możemy
sobie stworzyć dla naszych obiektów bo one wszystkie includują tutaj oba
find number możemy zrobić takie porównania
na przykład dodać 3 4 7
a tutaj damy jeszcze muszę dodać spację żeby było
czytelnie 12 8 20 no i jak
wykonamy to nam wyjdzie że 7 i 20 jest największą
wartością z tych podanych jak widzicie
inkludowanie modułu w klasie jest bardzo proste możemy
dzięki temu w naszej klasie nasz obiekt klasy może korzystać z modułów z
metod które znajdują się w module gdzieś zupełnie na zewnątrz i ten moduł
może być wykorzystany przez wiele niepowiązanych ze sobą nawet klas także
pozwala nam ładnie skrócić nasz kod sprawić że jest on bardziej czytelny