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+
Wspomniałam wcześniej że w ruby nie występuje dziedziczenie
wielokrotne w związku z tym mogło się wydawać olaboga jak
to możliwe w innych językach przecież jest to dostępne ale w ruby nie ma takiej
potrzeby ponieważ jak widzieliście mogliśmy użyć modułów i taki
przykład stworzę sobie klasę jakąś ona będzie nam tylko potrzebna
tak pro forma że mamy dziedziczenie więc robię sobie jakiś tam useful
stuff i ta klasa będzie miała
tylko konstruktor który
będzie przyjmował imię czy tam właściwie nazwę
i będzie też prostu wyświetlać zrobię sobie puts no
i tutaj nazwa tego name a
tutaj jeszcze poza tym is useful
makes life easier takie
zdanie się wyświetli na initialize możemy też stworzyć klasę smartwatch
która będzie dziedziczyć z klasy useful i
tutaj useful stuff i ta klasa na initialize
też będzie nam coś wyświetlać czyli ja sobie zrobię konstruktor
mój też będzie przyjmować name
bo musi się zgadzać liczba parametrów tutaj jak będziemy korzystać a
potem ja chcę taki przykład pokazać i na przykład po pierwsze
będę sobie robić super czyli będę pobierać zawartość klasy z
klasy useful konstruktora i tu będę coś nowego wyświetlać puts name po prostu
is great a oprócz tego na
smartwatch będzie można uruchomić na przykład
netflix więc zrobię sobie run netflix i
ta metoda będzie robić your favorite
serial czyli tam mówi o niech będzie your favourite movie
czyli tu będzie się coś mam zwracało tu będziemy
wyświetlać a tu będziemy zwracać czyli jeżeli stworzę sobie obiekt usefull stuff
kropka new i
podam mu nazwę po prostu useful
to kiedy go utworzę i uruchomię to
pojawi mi się useful is useful and makes life easier kiedy
użyję tutaj zrobię sobie smartwatcha nazwę go s smartwatch
i tutaj mu też dam nazwę to widzimy
że najpierw się pokaże to co dziedziczył z useful stuff czyli smartwatch is
useful and makes life easier a na końcu mamy smartwatch
is great to jakbyśmy chcieli żeby smartwatch rzeczywiście
dziedziczył z dwóch klas na przykład z klasy zegarek i z klasy telefon czyli
żeby mógł i dzwonić i pokazywać czas mogę na to stworzyć dwa
moduły i tutaj stworzę sobie na samej górze po pierwsze moduł
który będzie mi odpowiadał za dzwonienie czyli moduł phone
i on będzie miał taką
sobie metodę call która
będzie zwracała tutaj make a call
oraz drugie moduł watch
def niech będzie po prostu handy
bo jest mały i niech będzie i'm handy
i teraz kiedy sobie chcę jakby
użyć tych dwóch modułów z których normalnie
smartwatch mógłby dziedziczyć to możemy po
prostu zainkludować include phone i
include watch w
ten sposób nasz obiekt który
utworzyłam smartwatch może teraz też skorzystać z metod które są
dostępne w tych dwóch modułach czyli po pierwsze mogę zrobić żeby zadzwonił
czyli mu dać call i wyświetlić wynik call oraz
mogę zrobić s kropka handy i wyświetli mi
też to co tutaj dostarczył mu moduł handy to uruchamiam i
widzę smartwatch is great i widzę też make a call i'm
handy w ten sposób nasza klasa
posiada jakieś nowe umiejętności czy nowe metody a
jednocześnie wcale nie potrzebowaliśmy dziedziczenia wielokrotnego wystarczyło
zaincludować jakiś kod z zewnątrz
Mixin · 1 min
module Phone
def call
"Make a call"
end
end
module Watch
def handy
"I'm handy"
end
end
class UsefulStuff
def initialize(name)
puts "#{name} is useful, makes life easier"
end
end
class SmartWatch < UsefulStuff
include Phone
include Watch
def initialize(name)
super
puts "#{name} is great!"
end
def run_netflix
"Your fav movie"
end
end
s = SmartWatch.new("SmartWatch")
p s.call
p s.handy