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+
Jeżeli bym chciała zobaczyć samo imię mojego studenta czyli na przyklad
chcę zrobić puts john kropka
name to pojawi mi się błąd że nie mam
takiej metody name w mojej klasie student to dlatego
że ta zmienna tutaj klasowa nie jest dostępna
na zewnątrz poza tą klasą muszę sobie utworzyć nową specjalną
metodę instancji którą nazywamy getterem czyli metodę która pozwala
nam coś do czegoś się dostać coś nam zwraca utworzę sobie def name
end i w środku umieszczę małpa name
czyli teraz na zewnątrz udostępnię zmienną instancji mogę ten kod wykonać
i teraz widzicie tutaj imię john mi się wyświetla żeby
do innych tutaj zmiennych instancji się dostać muszę zrobić dokładnie to samo dla
każdej z nich więc sobie ten kod skopiuje i tutaj
podmienię na last tutaj tą zmienną też
last kolejną age małpa age
email i
zwrócimy sobie e-mail teraz mamy 4 takie metody gettery
name last age i email i dzięki temu jesteśmy
w stanie wyświetlić wszystkie atrybuty które należą do john
czyli zrobię sobie john kropka last john
kropka age i john kropka e-mail widzicie
że też już od razu edytor podpowiada do jakich atrybutów mam dostęp i
mogę wykonać ten kod i zobaczę john smith
23 oraz jego e-mail co jakbym
chciała zaktualizować jedno z tych pól na przykład
zrobiłabym błąd i johna nazwała jon i
bym chciała tutaj uzupełnic literką h czyli bym musiała robić jakieś
john kropka
name i chciałabym mu przypisać prawidłowo john
imię kiedy uruchomię ten kod to
pojawi mi się błąd że taka metoda która pozwala na przypisanie nie
istnieje dla naszego studenta taką metodę nazywamy
setterem i mamy troszeczkę inną definicję niż dotychczasowe metody
z atrybutami czyli będę miała name operator
przypisania tutaj do tego name oraz jakieś parametr
z imieniem czyli u mnie będzie to name może tak new name
w ten sposób wewnątrz tej metody mogę do zmiennej
instancji name przypisać wartość nowego imienia
new name i w ten sposób kiedy
tutaj wyświetlę johna i
zobaczę jego imię to on zostanie zaktualizowany czyli mamy john i
potem jest już john zaktualizowany tutaj metodą p użyłam ale jakbym użyła
puts oczywiście wygląda tak samo jak reszta i
analogicznie żeby zaktualizować pozostałe pola muszę stworzyć
metodę last która ustawia nowe last name
metodę age która ustawia nowy
stan wieku chociaż możemy ich na przykład nie tworzyć bo wiek
raczej nam się nie zmieni no i email i
też na razie nie będę go tworzyć żeby było tutaj trochę krócej bo
już tak ta klasa zrobiła nam się dosyć długa także
żeby móc wyświetlić stan zmiennej instancji potrzebujemy metodę
która nazywa się getterem a jeżeli chcemy zaktualizować jakiś
atrybut jakąś naszą zmienną instancji to musimy użyć metodę
którą nazywamy setterem kiedy mamy naszego
studenta zastanawiam się co by było gdybyśmy nadali każdemu studentowi unikalny
numer legitymacji czyli mogłabym tutaj zupełnie
nieustawialny z zewnątrz dać numer legitymacji jakiś tam może
tak go nazwę number card czy to jest jakaś tam legitymacja a
żeby był tworzony unikalnie to użyję metody rand od
razu zamienię wynik rand na string i tylko wytnę
wartości po kropce ponieważ rand wylosuje nam jakąś liczbę w przedziale od
0 do 1 z wieloma liczbami po przecinku więc mogę sobie zrobić coś takiego że
wezmę tylko te liczby po przecinku i teraz numer karty będzie
indywidualny i dostępny dla studenta taki
numer nie powinien być możliwy do modyfikacji czyli nie chcemy pozwolić na
aktualizację numeru karty ale chcemy móc go
wyświetlić więc stworzymy sobie w tutaj metodę która
będzie się nazywała też numer karty number
card i będzie udostępniała nam podobnie jak inne gettery numer
karty number card teraz
jestem więc w stanie dla mojego studenta johna
wyświetlić number card i zobaczymy
że numer karty mojego johna jest a na samym końcu wyświetlony przeciwną
sytuacją do wyświetlania numeru karty będzie instancja którą
chcę zaktualizować móc ustawić ale nie będziemy użytkownikowi
pozwalać na jej wyświetlanie czyli teraz tak jak tutaj mamy getter
a nie mamy settera bo nie chcemy ustawiać numeru karty tylko raz
to chcemy mieć teraz tylko i wyłącznie setter ale nie mieć podglądu
tego pola i na przykład dla naszego atrybutu hasło będziemy
tylko i wyłącznie móc zaktualizować hasło czyli zrobię sobie password
ustawię new password
i kiedy tą metodę wykonam to
małpa password zostanie przypisane jakieś hasło to
będzie new password jak
teraz sobie ustawię to mogę zrobić john kropka
password nadam mu jakiś top
secret wykonam
no i ona się wykona tutaj niczego nie zobaczę ale
mogę spróbować wyświetlić john kropka password i
powinnam dostać błąd że takie pole nie jest w ogóle dostępne nie mam takiego
atrybutu nie mam takiej metody która by mi ten atrybut wyświetliła to
dlatego że nasze hasło jest tylko i wyłącznie dostępne do zaktualizowania
spójrzmy na naszą klasę zrobiła się
strasznie długa mamy getter dla imienia
setter dla imienia znowu mamy getter setter getter
setter i tak dalej i tak dalej czy można krócej owszem
ruby udostępnia nam akcesory i o tym będzie w kolejnej lekcji