wprowadzenie do rubiego

28
Wprowadzenie Język Ruby Materialy Wyklad nr 1 Język Ruby i framework Rails dr inż. Aleksander Smywiński-Pohl Elektroniczne Przetwarzanie Informacji Konsultacje: czw. 14.00-15.30, pokój 3.211 dr inż. Aleksander Smywiński-Pohl EPI Wyklad nr 1: Język Ruby i framework Rails

Upload: lydang

Post on 11-Jan-2017

223 views

Category:

Documents


0 download

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