wprowadzenie do rubiego
TRANSCRIPT
Wprowadzenie Język Ruby Materiały
Wykład nr 1Język Ruby i framework Rails
dr inż. Aleksander Smywiński-Pohl
Elektroniczne Przetwarzanie InformacjiKonsultacje: czw. 14.00-15.30, pokój 3.211
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Historia Rubiego i Railsów
I 1993 – Yukihiro Matsumoto San, JaponiaI 1995 – pierwsze wydanie, lista dyskusyjna w JaponiiI 1996 – Ruby wydanie 1.0I 1999 – pierwsza angielska lista dyskusyjnaI 2000 – pierwsza angielska książka na temat RubiegoI 2004 – początek pracy nad Ruby on Rails, David Heinemeier
Hansson, DaniaI 2005 – Ruby on Rails wydanie 1.0I 2007 – Ruby wydanie 1.9.0I 2013 – Ruby wydanie 2.0.0I 2013 – Ruby on Rails wydanie 4
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Otoczenie Rubiego
I C/C++ – systemy operacyjne, systemy wbudowane, narzędziasystemowe
I Java – aplikacje korporacyjne i duża plikacje serweroweI C# – programy dla systemu Windows, aplikacje weboweI Objective-C – programy dla systemów OS X i iOSI PHP – aplikacje weboweI Python, Perl – programowanie skryptowe, programowanie
systemowe, aplikacje weboweI JavaScript – programowanie po stronie klienta (w
przeglądarce), ostatnio również po stronie serwera (node.js)I ActionScript – programowanie po stronie klienta (Flash)I Swift – nowy język na platformy iOS i OS X wspierany przez
Appledr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Basecamp
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Twitter
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Github
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Heroku
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Groupon
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – AirBnB
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – bloomberg
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Slideshare
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Soundcloud
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Base
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Kontomierz
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Sukcesy Rubiego/Railsów – Sentymetr
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Praca
I Ogłoszenia na forum.rubyonrails.plI Zwykle podawane są widełki płacowe.I Jak zdobyć pracę?
I odpowiadać na pytania na stackoverflow.comI rozwijać opensourcowy projekt na githubieI mieć dużo plusów na LinkedIn w działce Ruby/Ruby on Rails
I Pracodawcy często sami się zgłaszają.I Rails Girls Summer of Code.
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Cechy języka
I 100% obiektowo zorientowanyI dziedziczenie jednobazoweI interpretowanyI dynamicznie typizowanyI silnie typizowanyI funkcjonalny styl programowaniaI przeciążanie operatorówI garbage collectorI mechanizm wyjątkówI bloki i domknięciaI metaprogramowanie
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
100% obiektowo zorientowany
wszystko jest obiektem, w tym:
nil # wartość pustanil.nil? #=> truetrue # wartość logicznatrue.nil? #=> false1 # liczby1.zero? #=> false"abc" # łańcuchy znaków"abc".empty? #=> false[1,2,3] # tablice[1,2,3][0] #=> 1/a|b/ # wyrażenia regularne/a|b/.match("a") #=> 0lambda { } # bloki kodu (funkcje anonimowe)
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Interpreter
ruby-1.9.2-p290 > a = 10=> 10
ruby-1.9.2-p290 > b = 5=> 5
ruby-1.9.2-p290 > a + b=> 15
ruby-1.9.2-p290 > def suma(a,b)ruby-1.9.2-p290 ?> a + bruby-1.9.2-p290 ?> end=> nil
ruby-1.9.2-p290 > suma(1,2)=> 3
ruby-1.9.2-p290 >
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Dynamiczna typizacja
a = [1,2,3]a[1] #=> 2
a = "ala ma kota"a[1] #=> "l"
def sum(a,b)a + b
endsum(1,2) #=> 3sum([1],[2,3]) #=> [1,2,3]
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Silna typizacja
a = 10b = "5"a + b# TypeError: String can't be coerced into Fixnum# from (irb):3:in `+'
a = 10b = 5.0a + b #=> 15.0
if 0puts "Zero" #=> "Zero"
end
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Funkcjonalny styl programowania
str = "ala ma kota"method = str.method(:empty?)method.call #=> false
closure = lambda {|a,b| a + b}closure.call(1,3) #=> 4
def multiply(multiplier)lambda {|a| a * multiplier }
endthree_times = multiply(3)three_times.call(5) #=> 15three_times.call(-2) #=> -6
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Mechanizm wyjątków
beginfile = File.open("nie_ma_mnie.txt")file.each do |line|
puts lineend
rescue Exception => exputs "Wystąpił wyjątek #{ex}"
end
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Ewaluacja wyrażeń
name = "Ala"length = name.size > 5 ? "długie" : "krótkie"
length =if name.size > 5
"długie"else
"krótkie"end
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Przegląd składni
I brak średników (pod warunkiem, że nie umieszczasz wielupoleceń w jednej linii, co jednak jest odradzane)
I brak wymogów co do wcięć (oczywiście właściwe wcięciapoprawiają czytelność kodu)
I brak deklaracji typów – wystarcza inicjowanie zmiennychI 1-linijkowe komentarze zaczynają się znakiem #I specjalny obiekt reprezentujący wartość pustą zwany nilI wszystko jest wyrażeniem (również if, case, itp.)I opcjonalne nawiasy
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Materiały (1/2)
I Oficjalna strona języka http://www.ruby-lang.org/pl/I Pierwsze wydanie popularnej ’książki z kilofem’
http://www.ruby-doc.org/docs/ProgrammingRuby/I Najdziwniejszy podręcznik programowania na świecie
http://mislav.uniqpath.com/poignant-guide/I Wprowadzenie do Rubiego mojego autorstwa
http://apohllo.pl/dydaktyka/ruby/introI Dokumentacja podstawowych klas Rubiego i Rails
http://railsapi.com/I Webowy interfejs do testowania wyrażeń regularnych
http://rubular.com
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Materiały (2/2)
I Przewodniki po Ruby on Rails (en. – 4.1)http://guides.rubyonrails.org
I Ruby toolbox - przydatne biblioteki Rubiego i rozszerzeniaframeworku Rails http://ruby-toolbox.com/
I Książka „Ruby: programowanie” David Flanagan, YukihiroMatsumoto (jest w bibliotece WZKS)
I Książka (z kilofem) „Programming Ruby (2nd edition): ThePragmatic Programmers’ Guide” Dave Thomas, Andy Hunt,Chad Fowler
I Książka „Ruby. Tao programowania w 400 przykładach” HalFulton
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails
Wprowadzenie Język Ruby Materiały
Podziękowania dla:I Agnieszki Figiel, za udostępnienie prezentacji w postaci plików
źródłowychI Marka Kowalcze oraz Jakuba Kuźmy z grupy SRUG (srug.pl),
za pomoc przy kolorowaniu składniu w Latex’u
dr inż. Aleksander Smywiński-Pohl EPI
Wykład nr 1: Język Ruby i framework Rails