Wykład nr 1 Język Ruby i framework Rails



Podobne dokumenty
EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego

Programowanie w Ruby

Programowanie w Ruby

Programowanie obiektowe

Wprowadzenie do języka Ruby

Czym jest Ruby on Rails?

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Kurs rozszerzony języka Python

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Zaawansowany kurs języka Python

Programowanie w Ruby

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Podstawy programowania w Pythonie

EPI: Interfejs Graficzny Wykład nr 2 Wbudowane typy danych Rubiego

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wybrane działy Informatyki Stosowanej

Microsoft IT Academy kurs programowania

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawy programowania. Wprowadzenie

Oczywiście plik musi mieć rozszerzenie *.php

Języki skryptowe w programie Plans

Przegląd języka Python. Łukasz Anwajler

SZKOLENIE TWORZENIE SYSTEMÓW

Programowanie RAD Delphi

Java EE produkcja oprogramowania

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Programowanie w Ruby

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Wstęp do programowania

Ruby. Leksykon kieszonkowy

Cw.12 JAVAScript w dokumentach HTML

Metaprogramowanie w Ruby

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Programowanie dla ios

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Bazy Danych i Usługi Sieciowe

PHP: bloki kodu, tablice, obiekty i formularze

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Programista do działu testów PDT/1401/T/TBG

Wstęp do ruby dla programistów javy

Laboratorium nr 3 Podstawy Ruby on Rails

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Wprowadzenie do języka Python

Bazy danych i strony WWW

Programowanie obiektowe

JavaScript funkcyjność

1 Podstawy c++ w pigułce.

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Redis, skrypty w języku Lua

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

PHP: bazy danych, SQL, AJAX i JSON

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Podstawy programowania skrót z wykładów:

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

PRZEWODNIK PO PRZEDMIOCIE

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Funkcje i instrukcje języka JavaScript

Programowanie dla ios

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Liczba godzin. N (nauczyciel) studia niestacjonarne

Python wstęp do programowania dla użytkowników WCSS

Aplikacje WWW i PHP - opis przedmiotu

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

KOTLIN. Język programowania dla Androida

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

JAVAScript w dokumentach HTML (1)

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Podstawy i języki programowania

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

KARTA PRZEDMIOTU. Warsztaty z programowania mobilnego w Python. Python Mobile Programming Workshop

Python. Wprowadzenie. Jolanta Bachan

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe 2 - opis przedmiotu

Podstawy programowania. Python wykład 6

KARTA PRZEDMIOTU. Programowanie wieloplatformowe, D1_1

Język Python. Język Python 1/35

Programowanie obiektowe zastosowanie języka Java SE

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Informatyka I stopień ogólnoakademicki niestacjonarne Teleinformatyka Zakład Informatyki dr inż. Adam Krechowicz mgr inż.

Podstawy programowania w Pythonie

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Programowanie MorphX Ax

Transkrypt:

Wykład nr 1 Język Ruby i framework Rails Elektroniczne Przetwarzanie Informacji Konsultacje: czw. 14.00-15.30, pokój 3.211

Historia Rubiego i Railsów 1993 Yukihiro Matsumoto San, Japonia 1995 pierwsze wydanie, lista dyskusyjna w Japonii 1996 Ruby wydanie 1.0 1999 pierwsza angielska lista dyskusyjna 2000 pierwsza angielska książka na temat Rubiego 2004 początek pracy nad Ruby on Rails, David Heinemeier Hansson, Dania 2005 Ruby on Rails wydanie 1.0 2007 Ruby wydanie 1.9.0 2013 Ruby wydanie 2.0.0 2013 Ruby on Rails wydanie 4

Otoczenie Rubiego C/C++ systemy operacyjne, systemy wbudowane, narzędzia systemowe Java aplikacje korporacyjne i duża plikacje serwerowe C# programy dla systemu Windows, aplikacje webowe Objective-C programy dla systemów OS X i ios PHP aplikacje webowe Python, Perl programowanie skryptowe, programowanie systemowe, aplikacje webowe JavaScript programowanie po stronie klienta (w przeglądarce), ostatnio również po stronie serwera (node.js) ActionScript programowanie po stronie klienta (Flash) Swift nowy język na platformy ios i OS X wspierany przez Apple

Sukcesy Rubiego/Railsów Basecamp

Sukcesy Rubiego/Railsów Twitter

Sukcesy Rubiego/Railsów Github

Sukcesy Rubiego/Railsów Heroku

Sukcesy Rubiego/Railsów Groupon

Sukcesy Rubiego/Railsów AirBnB

Sukcesy Rubiego/Railsów bloomberg

Sukcesy Rubiego/Railsów Slideshare

Sukcesy Rubiego/Railsów Soundcloud

Sukcesy Rubiego/Railsów Base

Sukcesy Rubiego/Railsów Kontomierz

Sukcesy Rubiego/Railsów Sentymetr

Praca Ogłoszenia na forum.rubyonrails.pl Zwykle podawane są widełki płacowe. Jak zdobyć pracę? odpowiadać na pytania na stackoverflow.com rozwijać opensourcowy projekt na githubie mieć dużo plusów na LinkedIn w działce Ruby/Ruby on Rails Pracodawcy często sami się zgłaszają. Rails Girls Summer of Code.

Cechy języka 100% obiektowo zorientowany dziedziczenie jednobazowe interpretowany dynamicznie typizowany silnie typizowany funkcjonalny styl programowania przeciążanie operatorów garbage collector mechanizm wyjątków bloki i domknięcia metaprogramowanie

100% obiektowo zorientowany wszystko jest obiektem, w tym: nil # wartość pusta nil.nil? #=> true true # wartość logiczna true.nil? #=> false 1 # liczby 1.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") #=> 0 lambda { } # bloki kodu (funkcje anonimowe)

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 + b ruby-1.9.2-p290?> end => nil ruby-1.9.2-p290 > suma(1,2) => 3 ruby-1.9.2-p290 >

Dynamiczna typizacja a = [1,2,3] a[1] #=> 2 a = "ala ma kota" a[1] #=> "l" def sum(a,b) a + b end sum(1,2) #=> 3 sum([1],[2,3]) #=> [1,2,3]

Silna typizacja a = 10 b = "5" a + b # TypeError: String can't be coerced into Fixnum # from (irb):3:in `+' a = 10 b = 5.0 a + b #=> 15.0 if 0 puts "Zero" end #=> "Zero"

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 } end three_times = multiply(3) three_times.call(5) #=> 15 three_times.call(-2) #=> -6

Mechanizm wyjątków begin file = File.open("nie_ma_mnie.txt") file.each do line puts line end rescue Exception => ex puts "Wystąpił wyjątek #{ex}" end

Ewaluacja wyrażeń name = "Ala" length = name.size > 5? "długie" : "krótkie" length = if name.size > 5 "długie" else "krótkie" end

Przegląd składni brak średników (pod warunkiem, że nie umieszczasz wielu poleceń w jednej linii, co jednak jest odradzane) brak wymogów co do wcięć (oczywiście właściwe wcięcia poprawiają czytelność kodu) brak deklaracji typów wystarcza inicjowanie zmiennych 1-linijkowe komentarze zaczynają się znakiem # specjalny obiekt reprezentujący wartość pustą zwany nil wszystko jest wyrażeniem (również if, case, itp.) opcjonalne nawiasy

Materiały (1/2) Oficjalna strona języka http://www.ruby-lang.org/pl/ Pierwsze wydanie popularnej książki z kilofem http://www.ruby-doc.org/docs/programmingruby/ Najdziwniejszy podręcznik programowania na świecie http://mislav.uniqpath.com/poignant-guide/ Wprowadzenie do Rubiego mojego autorstwa http://apohllo.pl/dydaktyka/ruby/intro Dokumentacja podstawowych klas Rubiego i Rails http://railsapi.com/ Webowy interfejs do testowania wyrażeń regularnych http://rubular.com

Materiały (2/2) Przewodniki po Ruby on Rails (en. 4.1) http://guides.rubyonrails.org Ruby toolbox - przydatne biblioteki Rubiego i rozszerzenia frameworku Rails http://ruby-toolbox.com/ Książka Ruby: programowanie David Flanagan, Yukihiro Matsumoto (jest w bibliotece WZKS) Książka (z kilofem) Programming Ruby (2nd edition): The Pragmatic Programmers Guide Dave Thomas, Andy Hunt, Chad Fowler Książka Ruby. Tao programowania w 400 przykładach Hal Fulton

Podziękowania dla: Agnieszki Figiel, za udostępnienie prezentacji w postaci plików źródłowych Marka Kowalcze oraz Jakuba Kuźmy z grupy SRUG (srug.pl), za pomoc przy kolorowaniu składniu w Latex u