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+
W kolejnej lekcji zajmiemy się tematem zasięgu zmiennych zmienne
mogą być używane tylko w obszarze w którym są zdefiniowane co nazywa się zasięgiem
albo po angielsku scope zacznijmy przykładu który tu zilustruję stworzę
sobie zmienną a o wartości 5 i wykonam blok times
który wykonuje się 3 razy dla jakiejś wartości
n chcę na przykład do a przypisać wartość n
i zakończyć end tutaj nic nie będę już wyświetlać
bo mnie specjalnie nie obchodzi i wykonam też puts puts a
zobaczymy jaką będziemy mieć wartość a po wykonaniu nasze
a będzie miało wartość n czyli ostatniego przypisania ponieważ stworzyłam
sobie zmienną lokalną i też w bloku tą zmienną lokalną sobie cały czas modyfikowałam
ona jest cały czas dostępna poza tym blokiem pozostaje tutaj zmodyfikowana
u góry chociaż a wcześniej była zdefiniowana jeżeli jednak bym
w środku tego bloku utworzyła sobie drugą zmienną b i
dała jej wartość 5 to po wykonaniu
takiego bloku b przestaje być dostępna czyli jeżeli
tutaj próbuję wykonać ten kod to pokazuje się że zmienna lub metoda
b nie jest w ogóle dostępna wynika to z tego że po zakończeniu
działania tego bloku zmienna lokalna znika w
ogóle przestaje być dostępna więc zmienne możemy
rozumieć jako czy zmienne w obszarze możemy rozumieć jako jakiś
zamknięty obszar kodu w którym można używać tych zmiennych spójrzmy
jeszcze raz na inny przykład możemy sobie stworzyć jakąś zmienną txt
która przechowuje zdanie na przykład i'm available
i teraz i teraz mogę na przykład tą zmienną
na przykład sobie wyświetlić txt po
prostu jest dostępna jest dostępna mówiliśmy
że zmienne lokalne mogą zaczynać od podkreślnika lub tekstu więc teraz
też mogę wykonać taką zmienną nadal jest ona dla nas
dostępna jeżeli jednak
utworzę sobie funkcję która będzie miała wyświetlić jakąś
zmienną załóżmy że tu jest end może
sobie nawet zostawię ten tekst tekst może być po prostu hello i
teraz w naszej funkcji jakiejś roboczej function która
będzie wykonywała się na przykład puts po prostu nasz
tekst plus coś albo
wykrzyknik po prostu dam i
pokażę wam co się wyświetli tu
będzie var outside tu
będzie puts var inside
i możemy sobie tu wykonać plus txt a
tutaj byśmy chcieli wykonać po prostu tą funkcję tą może
funkcje za chwilkę czyli najpierw po prostu wyświetlamy tylko i wyłącznie to puts
który jest za naszą definicją funkcji czyli
na zewnątrz wszystko jest dostępne widzimy że outside hello nam
się wyświetliło jeżeli jednak bym chciała wykonać funkcje czy po prostu ją
tutaj wywołać i ją uruchomię to pojawi
mi się błąd że ta lokalna zmienna txt nie jest dostępna
może wydawać to niezrozumiałe przecież txt pojawia się wcześniej
jednak tutaj mamy blok kodu blok funkcji i to txt
jest nasze lokalne nie zostało w żaden sposób przekazane do tej funkcji więc
ruby go nie widzi równie dobrze tu mogłabym sobie stworzyć txt i
ten tekst nad nadpisać na przykład dać piąteczkę funkcje
wywołać przed naszym wyświetlaniem outside a
tu musi być więc możemy dodać jakiś powiedzmy inny tekst welcome
bo inaczej nie połączymy z
plusem dwóch stringów dobrze teraz się wykona i
teraz w środku pojawia nam się welcome ale to jest tylko i
wyłącznie zmienna lokalna dla tej funkcji więc po wykonaniu tego bloku
kodu kiedy już się skończy wykonywać ta funkcja lokalne
txt zniknęło a nasze txt które było cały czas na zewnątrz
funkcji jest dostępne i dlatego możemy wyświetlić var outside hello
na początku mówiliśmy sobie o tym że
zmienna lokalna zawiera literę lub podkreślenie na starcie więc jeżeli utworzę sobie jakąś
zmienną variable i'm local i
kolejną var i'm local
jestem w stanie sprawdzić że obie te zmienne rzeczywiście są
widziane przez ruby jako lokalne użyję sobie do tego specjalnej metody defined znak zapytania
i podam mu zmienną var i drugą defined
z podkreślnikiem var kiedy wykonam ten kod
zobaczę że ruby obie te zmienne oznaczył jako zmienne lokalne mamy
też zmienne globalne zdefiniować za pomocą dolara więc mamy
dolar var i tou sobie dopiszę i'm
global mamy też zmienne instancji
będziemy o nich jeszcze rozmawiać więc na razie tylko sobie taką zmiennę utworzymy za pomocą
małpki więc i'm instance
variable powinnam zawsze powiedzieć że global variable
instance variable no i jeszcze możemy
skorzystać z dwóch małp które oznaczają że mamy dostępną
zmienną klasową dla całej klasy o nich też będziemy rozmawiać czyli i'm
class variable i teraz jeżeli
sprawdzimy sobie za pomocą defined jakie to są zmienne rzeczywiście czy
dobrze mówię czy dobrych użyłam znaków dla rubiego jakie widzi ruby podając
po prostu po kolei te zmienne zapiszę
ten mój kod i uruchomię i
widzę że mam tutaj jakiś warnng że nie powinnam tak robić nie
można tworzyć zmiennej klasowej poza klasą ale widzę po kolei rzeczywiście dwie
zmienne lokalne następnie zmienną globalną wykrytą zmianą
instalacji która jest poza instancją więc też
mam warning kolejny i na końcu class variable czyli pojawiło
się raz dwa trzy cztery pięć zmiennych z czego dwie
mamy lokalne globalną instancji i klasową
typy zmiennych · 2 min
var = "I'm local"
_var = "I'm local"
p defined? var
p defined? _var
$var = "I'm global var"
@var = "I'm instance var"
@@var = "I'm class var"
p defined? $var
p defined? @var
p defined? @@varzasieg_funkcja · 1 min
txt = "Hello"
def func(txt = "Welcome")
puts "var inside"
puts txt + "!"
end
func
puts "var outside " + txtzasieg
a = 5
3.times do |n|
a = n
b = 5
end
puts a, b