EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego

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

Programowanie w Ruby

Wprowadzenie do języka Ruby

Programowanie w Ruby

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++

EPI: Interfejs Graczny Podstawy Ruby on Rails

Programowanie w Ruby

Metaprogramowanie w Ruby

Programowanie obiektowe

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

Czym jest Ruby on Rails?

Ruby. Leksykon kieszonkowy

Redis, skrypty w języku Lua

Quiz Aplikacja internetowa

Lekcja 9 Liczby losowe, zmienne, staªe

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

Funkcje i instrukcje języka JavaScript

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Formularze w PHP dla początkujących

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

Aplikacje webowe. mgr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

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

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Zaawansowany kurs języka Python

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

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

Wstęp do ruby dla programistów javy

Algorytmy zwiazane z gramatykami bezkontekstowymi

PHP w-3. Sterowanie w PHP

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

JAVAScript w dokumentach HTML (1)

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

Programowanie w Ruby

Model obiektu w JavaScript

Kurs rozszerzony języka Python

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Magia Ruby : programowanie na wesoło / Eric Weinstein. Warszawa, Spis treści

Lekcja 12 - POMOCNICY

Programowanie obiektowe w C++ Wykªad 4

PHP: bloki kodu, tablice, obiekty i formularze

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Baza danych - Access. 2 Budowa bazy danych

Programowanie i projektowanie obiektowe

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Bazy danych, 4. wiczenia

Programowanie i struktury danych

Podstawy JavaScript ćwiczenia

Tworzenie aplikacji internetowych E14

EPI: Interfejs Graczny 2009/2010 Wbudowane typy danych

Indeksowane rodziny zbiorów

Kurs języka Ruby. Ruby on Rails ActionPack

Obiektowe bazy danych

TorqueBox. Moc Javy piękno Rubiego

Cw.12 JAVAScript w dokumentach HTML

EPI: Interfejs Graficzny Wykład nr 8 Warstwa widoku

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

PL/SQL. Zaawansowane tematy PL/SQL

Niebezpieczna Kryptografia - zadania kwalifikacyjne

JAVAScript w dokumentach HTML - przypomnienie

Logika dla matematyków i informatyków Wykªad 1

Zaawansowany kurs języka Python

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Filozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego

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

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Aplikacje internetowe - laboratorium

Programowanie obiektowe

Wybrane działy Informatyki Stosowanej

Sieci i systemy operacyjne I Ćwiczenie 3. Przekierowania strumieni we/wy. Filtry.

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Zagadnienia programowania obiektowego

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Przegląd języka Python. Łukasz Anwajler

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Microsoft IT Academy kurs programowania

EPI: Interfejs Graficzny 2011/2012 Laboratorium nr 2 Programowanie obiektowe

Informacje pomocnicze

Ruby i Ruby on Rails. Mateusz Drożdżyński

Laboratorium 1 Wprowadzenie do PHP

Algorytmy i struktury danych

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

Ilość cyfr liczby naturalnej

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Testowanie aplikacji. Kurs języka Ruby

Wzorce projektowe strukturalne cz. 1

Kurs WWW. Paweł Rajba.

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

MVC w praktyce tworzymy system artykułów. cz. 2

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

WPROWADZENIE. Użycie PHP

Transkrypt:

EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego 1 czerwca 2010

Plan prezentacji Wprowadzenie Hello World Sinatra

Historia Rubiego 1993 Japonia Yukihiro Matsumoto San

Historia Rubiego 1993 Japonia Yukihiro Matsumoto San 1995 pierwsze wydanie

Historia Rubiego 1993 Japonia Yukihiro Matsumoto San 1995 pierwsze wydanie 1999 bardziej popularny w Japonii ni» Python

Historia Rubiego 1993 Japonia Yukihiro Matsumoto San 1995 pierwsze wydanie 1999 bardziej popularny w Japonii ni» Python 2000 pierwsza lista dyskusyjna

Historia Rubiego 1993 Japonia Yukihiro Matsumoto San 1995 pierwsze wydanie 1999 bardziej popularny w Japonii ni» Python 2000 pierwsza lista dyskusyjna 2004 Dania Ruby on Rails, David Heinemeier Hansson

Historia Rubiego 1993 Japonia Yukihiro Matsumoto San 1995 pierwsze wydanie 1999 bardziej popularny w Japonii ni» Python 2000 pierwsza lista dyskusyjna 2004 Dania Ruby on Rails, David Heinemeier Hansson 2005, 2006 O'Reilly sprzedano wi cej ksi»ek na temat Rubiego ni» na temat Perla czy Pythona

Historia Rubiego 1993 Japonia Yukihiro Matsumoto San 1995 pierwsze wydanie 1999 bardziej popularny w Japonii ni» Python 2000 pierwsza lista dyskusyjna 2004 Dania Ruby on Rails, David Heinemeier Hansson 2005, 2006 O'Reilly sprzedano wi cej ksi»ek na temat Rubiego ni» na temat Perla czy Pythona 2010 planowane 3 wydanie frameworku Ruby on Rails (poª czonego z Merbem)

Cechy j zyka interpretowany

Cechy j zyka interpretowany dynamicznie typizowany

Cechy j zyka interpretowany dynamicznie typizowany silnie typizowany

Cechy j zyka interpretowany dynamicznie typizowany silnie typizowany w 100% zorientowany obiektowo

Cechy j zyka interpretowany dynamicznie typizowany silnie typizowany w 100% zorientowany obiektowo wspiera funkcjonalny styl programowania

Cechy j zyka interpretowany dynamicznie typizowany silnie typizowany w 100% zorientowany obiektowo wspiera funkcjonalny styl programowania garbage collector

Cechy j zyka interpretowany dynamicznie typizowany silnie typizowany w 100% zorientowany obiektowo wspiera funkcjonalny styl programowania garbage collector dziedziczenie jednobazowe

Cechy j zyka interpretowany dynamicznie typizowany silnie typizowany w 100% zorientowany obiektowo wspiera funkcjonalny styl programowania garbage collector dziedziczenie jednobazowe mechanizm wyj tków

Cechy j zyka interpretowany dynamicznie typizowany silnie typizowany w 100% zorientowany obiektowo wspiera funkcjonalny styl programowania garbage collector dziedziczenie jednobazowe mechanizm wyj tków bloki i domkni cia

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

Czego mo»na si spodziewa? brak ±redników (pod warunkiem,»e nie umieszczasz wielu polece«w jednej linii, co jednak jest odradzane)

Czego mo»na si spodziewa? 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)

Czego mo»na si spodziewa? 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

Czego mo»na si spodziewa? 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 #

Czego mo»na si spodziewa? 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

Czego mo»na si spodziewa? 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 ka»de wyra»enie ewaluuje si do warto±ci (równie» if, case, itp.)

Plan prezentacji Wprowadzenie Hello World Sinatra

Hello World w Rubim Rozpocznij interaktywn sesj Rubiego wpisuj c w linii polece«: $ irb >>

Hello World w Rubim Rozpocznij interaktywn sesj Rubiego wpisuj c w linii polece«: $ irb >> Witaj wiecie w linii polece«rubiego: >> puts "Witaj wiecie!" >> print "Witaj wiecie!"

Hello World w Rubim Rozpocznij interaktywn sesj Rubiego wpisuj c w linii polece«: $ irb >> Witaj wiecie w linii polece«rubiego: >> puts "Witaj wiecie!" >> print "Witaj wiecie!" Jaka jest ró»nica pomiedzy puts oraz print?

Hello World w Rubim Rozpocznij interaktywn sesj Rubiego wpisuj c w linii polece«: $ irb >> Witaj wiecie w linii polece«rubiego: >> puts "Witaj wiecie!" >> print "Witaj wiecie!" Jaka jest ró»nica pomiedzy puts oraz print? A teraz Witaj wiecie w wersji enterprise: >> name="mistrzu" >> puts "Witaj "+name+"!!!"

Hello World w Rubim Rozpocznij interaktywn sesj Rubiego wpisuj c w linii polece«: $ irb >> Witaj wiecie w linii polece«rubiego: >> puts "Witaj wiecie!" >> print "Witaj wiecie!" Jaka jest ró»nica pomiedzy puts oraz print? A teraz Witaj wiecie w wersji enterprise: >> name="mistrzu" >> puts "Witaj "+name+"!!!" Aby opu±ci sesj irb wrowad¹ quit: >> quit

Hello World jako skrypt Otwórz swój ulubiony edytor testu i utwórz skrypt Rubiego o nazwie hello.rb : puts "Witaj wiecie!"

Hello World jako skrypt Otwórz swój ulubiony edytor testu i utwórz skrypt Rubiego o nazwie hello.rb : puts "Witaj wiecie!" Zapisz skrypt i wywoªaj go wpisuj c: $ ruby hello.rb

Hello World jako skrypt Otwórz swój ulubiony edytor testu i utwórz skrypt Rubiego o nazwie hello.rb : puts "Witaj wiecie!" Zapisz skrypt i wywoªaj go wpisuj c: $ ruby hello.rb Popraw skrypt tak, aby zapytaª ci o imi : puts "Jak masz na imi?" name = gets puts "Witaj "+name+"!!!"

Deniowanie funkcji Zdeniujmy prost funkcj, która jako argument b dzie przyjmowaªa imi i b dzie zwracaªa ªa«cuch Hello +name: def say_hello(name) "Witaj "+name end

Deniowanie funkcji Zdeniujmy prost funkcj, która jako argument b dzie przyjmowaªa imi i b dzie zwracaªa ªa«cuch Hello +name: def say_hello(name) "Witaj "+name end Funkcja jako swój rezultat zwraca warto± ostatniego ewaluowanego wyra»enia. Mo»esz jednak bezpo±rednio u»y sªowa kluczowego return: def say_hello(name) return "Witaj "+name end

Wywoªywanie funkcji W Rubim mo»esz wywoªa funkcj w zwykªy sposób umieszczaj c argumenty w nawiasach: say_hello("janek")

Wywoªywanie funkcji W Rubim mo»esz wywoªa funkcj w zwykªy sposób umieszczaj c argumenty w nawiasach: say_hello("janek") Jednak»e nawiasy mog by opuszczone, o ile nie prowadzi to do niejednoznaczno±ci: say_hello "Janek"

Wywoªywanie funkcji W Rubim mo»esz wywoªa funkcj w zwykªy sposób umieszczaj c argumenty w nawiasach: say_hello("janek") Jednak»e nawiasy mog by opuszczone, o ile nie prowadzi to do niejednoznaczno±ci: say_hello "Janek" Teraz zmodykuj skrypt hello.rb, tak aby korzystaª z funkcji say_hello!

Argumenty funkcji Argumenty funkcji mog by : opcjonalne def say_hello(name=" wiecie") "Witaj " + name end say_hello "Andrzej" # "Witaj Andrzej" say_hello # "Witaj wiecie"

Argumenty funkcji Argumenty funkcji mog by : opcjonalne def say_hello(name=" wiecie") "Witaj " + name end say_hello "Andrzej" # "Witaj Andrzej" say_hello # "Witaj wiecie" w postaci par klucz warto± def say_hello(args) "Witaj " + args[:name] + " " + args[:surname] end say_hello :name => "Jan", :surname => "Kowalski" # "Witaj Jan Kowalski"

Uwaga na temat nazewnictwa zmienne oraz funkcje s zawsze zapisywane z_u»yciem_znaku_podkre±lenia

Uwaga na temat nazewnictwa zmienne oraz funkcje s zawsze zapisywane z_u»yciem_znaku_podkre±lenia staªe zaczynaj si od du»ej litery, najlepiej W_CAŠO CI_KAPITALIKAMI

Uwaga na temat nazewnictwa zmienne oraz funkcje s zawsze zapisywane z_u»yciem_znaku_podkre±lenia staªe zaczynaj si od du»ej litery, najlepiej W_CAŠO CI_KAPITALIKAMI klasy i moduªy zapisywane s z u»yciem NotacjiWielbª dziej

Uwaga na temat nazewnictwa zmienne oraz funkcje s zawsze zapisywane z_u»yciem_znaku_podkre±lenia staªe zaczynaj si od du»ej litery, najlepiej W_CAŠO CI_KAPITALIKAMI klasy i moduªy zapisywane s z u»yciem NotacjiWielbª dziej wypróbujmy to w irb: >> HELLO = "hello" >> HELLO = "goodbye"

Plan prezentacji Wprowadzenie Hello World Sinatra

Sinatra microframework Zamiast pisa w konsoli, mo»emy u»y prostego frameworku - pozwoli nam ogl da wyniki w przegl darce

Sinatra microframework Zamiast pisa w konsoli, mo»emy u»y prostego frameworku - pozwoli nam ogl da wyniki w przegl darce gem install sinatra sinatra-reloader

Sinatra microframework Zamiast pisa w konsoli, mo»emy u»y prostego frameworku - pozwoli nam ogl da wyniki w przegl darce gem install sinatra sinatra-reloader vim app.rb # app.rb require 'rubygems' require 'sinatra' require 'sinatra/reloader' if development? get '/' do "Witaj wiecie" end

Sinatra microframework Zamiast pisa w konsoli, mo»emy u»y prostego frameworku - pozwoli nam ogl da wyniki w przegl darce gem install sinatra sinatra-reloader vim app.rb # app.rb require 'rubygems' require 'sinatra' require 'sinatra/reloader' if development? get '/' do "Witaj wiecie" end ruby app.rb

Sinatra screenshot

Sinatra formularz (1) app1.rb require 'rubygems' require 'sinatra' require 'sinatra/reloader' if development? get '/' do erb :index end

Sinatra formularz (1) app1.rb require 'rubygems' require 'sinatra' require 'sinatra/reloader' if development? get '/' do erb :index end mkdir views

Sinatra formularz (1) app1.rb require 'rubygems' require 'sinatra' require 'sinatra/reloader' if development? get '/' do erb :index end mkdir views views/index.erb Wprowad¹ swoje imi : <form method="post"> <input type="text" name="name"/> </form>

Sinatra formularz (2) app1.rb cd. post '/' do @message = "Witaj " + params[:name] erb :result end

Sinatra formularz (2) app1.rb cd. post '/' do @message = "Witaj " + params[:name] erb :result end views/result.erb <%= @message %>

Sinatra formularz (2) app1.rb cd. post '/' do @message = "Witaj " + params[:name] erb :result end views/result.erb <%= @message %> views/layout.erb <html> <body style="width: 900px;margin: auto"> <h2>aplikacja formularz</h2> <div> <%= yield %> </div> </body> </html>

Pytania PYTANIA?