rails för systemvetare

212
...

Upload: victor-sollerhed

Post on 12-Jun-2015

315 views

Category:

Technology


0 download

DESCRIPTION

En presentation jag höll om HTML, Ruby och Ruby on Rails för medstudenter på IT-universitetet i Göteborg under våren 2

TRANSCRIPT

Page 1: Rails för systemvetare

...

Page 2: Rails för systemvetare

...

Page 3: Rails för systemvetare

Ruby on Rails

...en introduktion

Page 4: Rails för systemvetare

Ruby on Rails

...en introduktion

Page 5: Rails för systemvetare

Vem är jag?

Page 6: Rails för systemvetare

Victor Sollerhed

@MPV3

Page 7: Rails för systemvetare
Page 8: Rails för systemvetare

Ruby

Java

HTML

CSS

PHP

C++

ASP VBscriptJavascript

C#

Page 9: Rails för systemvetare
Page 10: Rails för systemvetare

Varför?

Page 11: Rails för systemvetare

Bra verktyg

Page 12: Rails för systemvetare
Page 13: Rails för systemvetare

”Ringar på vattnet”

riviera2008 på Flickr

Page 14: Rails för systemvetare

3

Page 15: Rails för systemvetare

Agenda

1 Imponerad?

2 HTML

3 Ruby

... Paus

4 Rails

5 Installation

6 Utveckling

7 Demo

8 Skarpt läge

9 Labb

10 Fortsätt själv

Page 16: Rails för systemvetare

1 Imponerad?

2 Vad är HTML?

3 Vad är Ruby?

... Paus

4 Vad är Rails?

5 Hur installerar man?

6 Hur gör man?

7 Demo

8 Hur driftsätter man?

9 Labb

10 Hur fortsätter man?

Agenda

Page 17: Rails för systemvetare

Ruby on Rails} }Språk

Ramverk

Page 18: Rails för systemvetare

Programmerings-språk

Webb-ramverk

Page 19: Rails för systemvetare

Impress me!

brent_nashville on Flickr

Page 20: Rails för systemvetare
Page 21: Rails för systemvetare

”Man skall hålla reda på alla uppgifterom medlemmarna och klubbens

schemalagda aktiviteter”

Page 22: Rails för systemvetare

Demo

Page 23: Rails för systemvetare

Vem använder Rails?

Page 24: Rails för systemvetare
Page 25: Rails för systemvetare

Twitter MTV style Shopify Zendesk

Urban Dictionary

Geni

A List Apart

Hulu

Basecamp

Blinksale Github

43 ThingsKongregate

Get Satisfaction Yellow PagesFunny or Die

Page 26: Rails för systemvetare

Vad har jag gjort i Rails?

Page 27: Rails för systemvetare
Page 28: Rails för systemvetare
Page 29: Rails för systemvetare
Page 30: Rails för systemvetare
Page 31: Rails för systemvetare
Page 32: Rails för systemvetare
Page 33: Rails för systemvetare

HTMLDo you speak it?

Page 34: Rails för systemvetare

Text med ett fett ord.

Page 35: Rails för systemvetare

Text med ett fett ord.

Page 36: Rails för systemvetare

Text med ett fett ord.

fetstil

Page 37: Rails för systemvetare

Text med ett <fetstil>fett</fetstil> ord.

Page 38: Rails för systemvetare

Taggar

Text med ett <fetstil>fett</fetstil> ord.

Page 39: Rails för systemvetare

<strong> Fetstil

<em> Kursivt

<a> Länk

<h1> Rubrik (h1-h6)

Page 40: Rails för systemvetare

Text med ett <strong>fett</strong> ord.

Page 41: Rails för systemvetare

Webbläsare

Page 42: Rails för systemvetare

Webbläsare Webbserver

www.example.com

Page 43: Rails för systemvetare

Webbläsare Webbserver

index.htm www.example.com

Page 44: Rails för systemvetare

<html>

Page 45: Rails för systemvetare

<html>

</html>

Page 46: Rails för systemvetare

<html><head>

</head>

</html>

Page 47: Rails för systemvetare

<html><head>

</head><body>

</body></html>

Page 48: Rails för systemvetare

<html><head><title>Min hemsida</title>

</head><body>

</body></html>

Page 49: Rails för systemvetare

<html><head><title>Min hemsida</title>

</head><body><h1>En rubrik</h1>

</body></html>

Page 50: Rails för systemvetare

<html><head><title>Min hemsida</title>

</head><body><h1>En rubrik</h1><p>Lite text...</p>

</body></html>

Page 52: Rails för systemvetare

<a>Annan sida</a>

Page 53: Rails för systemvetare

<a >Annan sida</a>

Page 54: Rails för systemvetare

<a href=” ”>Annan sida</a>

Page 55: Rails för systemvetare

<a href=”anotherpage.htm”>Annan sida</a>

Page 56: Rails för systemvetare

Annan sida

Page 57: Rails för systemvetare

Dagenssidotips:

Page 58: Rails för systemvetare

Vad är Ruby?

Page 59: Rails för systemvetare

Japan1994

Page 60: Rails för systemvetare
Page 61: Rails för systemvetare
Page 62: Rails för systemvetare

...designade för datorer, inte för människor.

Page 63: Rails för systemvetare

Låt datorn göra jobbet åt dig

Page 64: Rails för systemvetare

Med språk och bibliotek designade för människor...

Page 65: Rails för systemvetare

...kan vi låta någon annan bry sig om prestandan.

Page 66: Rails för systemvetare
Page 67: Rails för systemvetare

Hello world!

Page 68: Rails för systemvetare

Java

public class MyClass{public static void main(String args[]){System.out.println(”Hello world!”);

}}

public class MyClass{public static void main(String args[]){

System.out.println(”Hello world!”);}

}

Page 69: Rails för systemvetare

Ruby

puts ”Hello world!”

Java

public class MyClass{public static void main(String args[]){

System.out.println(”Hello world!”);}

}

Page 70: Rails för systemvetare

Vända på en sträng då?

Page 71: Rails för systemvetare
Page 72: Rails för systemvetare
Page 73: Rails för systemvetare
Page 74: Rails för systemvetare

2.hours.ago

Page 75: Rails för systemvetare

2.hours.ago

5.times { print ”Hello” }

Page 76: Rails för systemvetare

Allt är objekt

(inga primitiva typer som Java har)

Page 77: Rails för systemvetare

new Date

Date.new

Page 78: Rails för systemvetare

Tolkat

(du slipper kompilera)

Page 79: Rails för systemvetare

Dynamiskt typat

Page 80: Rails för systemvetare

Java

int age = 23;

age = ”tjugotre”;

Page 81: Rails för systemvetare

Java Ruby

int age = 23;

age = ”tjugotre”;

age = 23

age = ”tjugotre”

Page 82: Rails för systemvetare

int age = 23;

Java Ruby

age = ”tjugotre”;

age = 23

age = ”tjugotre”

Page 83: Rails för systemvetare

Duck-typing

Ser det ut som en anka?

Låter det som en anka?

Då är det nog en anka!

Page 84: Rails för systemvetare

är frivilliga

( ) ;och}{

Page 85: Rails för systemvetare

puts ”Hello world!”

puts(”Hello world!”);

eller

Page 86: Rails för systemvetare

class Duckdef initialize

puts ”Quack!”end

end

Page 87: Rails för systemvetare

class Duckdef initialize

puts ”Quack!”end

end

d = Duck.new

Page 88: Rails för systemvetare

class Duckdef initialize

puts ”Quack!”end

end

d = Duck.new

Quack!

Page 89: Rails för systemvetare

gogri on Flickr

Page 90: Rails för systemvetare

Vad är Ruby on Rails?

Page 91: Rails för systemvetare

Ruby on Rails är ett öppet källkods-webbramverk som är optimerat för

programmerar-glädje och hållbar produktivitet.

Det låter dig skriva vacker kod genom att favorisera konventioner över

konfiguration.

Page 92: Rails för systemvetare

Ruby on Rails är ett öppet källkods-webbramverk som är optimerat för

programmerar-glädje och hållbar produktivitet.

Det låter dig skriva vacker kod genom att favorisera konventioner över

konfiguration.

Page 93: Rails för systemvetare

Ramverk

Page 94: Rails för systemvetare

Ta emot inkommande anslutningar

Page 95: Rails för systemvetare

Ta emot inkommande anslutningar

Läs/skriv till databas

Page 96: Rails för systemvetare

Ta emot inkommande anslutningar

Läs/skriv till databas

Skicka svar i HTML, e-post, XML m.m

Page 97: Rails för systemvetare

Ta emot inkommande anslutningar

Läs/skriv till databas

Skicka svar i HTML, e-post, XML m.m

Validering

Page 98: Rails för systemvetare

Ta emot inkommande anslutningar

Läs/skriv till databas

Skicka svar i HTML, e-post, XML m.m

Validering

Tester

Page 99: Rails för systemvetare

David Heinemeier Hansen

Page 100: Rails för systemvetare

David Heinemeier Hansen

Page 101: Rails för systemvetare

Basecamp

David Heinemeier Hansen

Page 102: Rails för systemvetare

Basecamp Backpack

Highrise Campfire

David Heinemeier Hansen

Page 103: Rails för systemvetare

Basecamp Backpack

Highrise Campfire

David Heinemeier Hansen

3 miljoner kunder

Page 104: Rails för systemvetare

Convention over Configuration

Page 105: Rails för systemvetare

Konventioner över Konfiguration

Page 106: Rails för systemvetare

Clarity

over

Cleverness

Page 107: Rails för systemvetare

Tydlighet

över

Fyndighet

Page 108: Rails för systemvetare

DRY

Page 109: Rails för systemvetare

DRYDon’t Repeat Yourself

Page 110: Rails för systemvetare

MVC

Page 111: Rails för systemvetare

MVCModel View Controller

Page 112: Rails för systemvetare
Page 113: Rails för systemvetare

Model View Controller

Riktiga saker Webbsidor Vilken vy hämtas?

Databas-åtkomst E-post Hämta rätt modeller

Validering XML Vilken layout ska hämtas?

Page 114: Rails för systemvetare

Model View Controller

Riktiga saker Webbsidor Vilken vy hämtas?

Databas-åtkomst E-post Hämta rätt modeller

Validering XML Vilken layout ska hämtas?

Page 115: Rails för systemvetare

Model View Controller

Riktiga saker Webbsidor Vilken vy hämtas?

Databas-åtkomst E-post Hämta rätt modeller

Validering XML Vilken layout ska hämtas?

Page 116: Rails för systemvetare

Model View ControllerMember.rb index.html.erb MembersController.rb

show.html.erb

edit.html.erb

new.html.erb

Page 117: Rails för systemvetare

Hur fungerarMVC i Rails?

Page 118: Rails för systemvetare

Klient

Page 119: Rails för systemvetare

Klient

Page 120: Rails för systemvetare

Controller

Klient

Page 121: Rails för systemvetare

Controller

Klient

Page 122: Rails för systemvetare

Controller Model

Klient

Page 123: Rails för systemvetare

Controller Model

Klient

Page 124: Rails för systemvetare

Controller Model DB

Klient

Page 125: Rails för systemvetare

Controller Model DB

Klient

Page 126: Rails för systemvetare

Controller

View

Model DB

Klient

Page 127: Rails för systemvetare

Controller

View

Model DB

Klient

Page 128: Rails för systemvetare

Controller

View

Model DB

Klient

Page 129: Rails för systemvetare

RESTSOAP

Page 130: Rails för systemvetare

SOAP

Page 131: Rails för systemvetare

SOAP REST

vs

Page 132: Rails för systemvetare
Page 133: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 134: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 135: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 136: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 137: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 138: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 139: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 140: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 141: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 142: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 143: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 144: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 145: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 146: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 147: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/{ID} GET Hämtar en specifik medlem

/Members/{ID} DELETE Tar bort en medlem

Page 148: Rails för systemvetare

URI Verb Funktion

/Members GET Hämtar alla medlemmar

/Members POST Skapar en medlem

/Members/1 GET Hämtar medlem 1

/Members/1 DELETE Tar bort medlem 1

Page 149: Rails för systemvetare

Installera

+

Page 150: Rails för systemvetare

I’m a Mac. I’m a PC. I’m Linux.

Page 151: Rails för systemvetare

http://bit.ly/installera-rails

Page 152: Rails för systemvetare

1. Installera Ruby

2. Installera SQLite3

3. Installera Rails

[sudo] gem install rails

Page 153: Rails för systemvetare

Men hur använder man det?

Page 154: Rails för systemvetare

Låt oss skapa vår första Rails-app!

Page 155: Rails för systemvetare

Öppna ett terminal-fönster

C:\> _

Alice:~ vs$ _

eller

Page 156: Rails för systemvetare

(Gå dit du vill ha din app)

cd minaponnyhästar

Page 157: Rails för systemvetare

Skapa din första Rails-app:

rails min_forsta_app

Page 158: Rails för systemvetare

Kliv in i din app:

cd min_forsta_app

Page 159: Rails för systemvetare

Skapa stommen (scaffold) för en modell:

script/generate scaffold Modell attribut:typ

Page 160: Rails för systemvetare

Skapa stommen (scaffold) för en medlem:

script/generate scaffold Member name:string joined_at:datetime

Page 161: Rails för systemvetare

Skapa stommen (scaffold) för en medlem:

script/generate scaffold Member name:string joined_at:datetime

Modell

Page 162: Rails för systemvetare

Skapa stommen (scaffold) för en medlem:

script/generate scaffold Member name:string joined_at:datetime

Modell Attribut

Page 163: Rails för systemvetare

Skapa stommen (scaffold) för en medlem:

script/generate scaffold Member name:string joined_at:datetime

Modell Attribut Typ

Page 164: Rails för systemvetare

Skapa en databas:

rake db:migrate

Page 165: Rails för systemvetare

Starta din app!

script/server

Page 166: Rails för systemvetare

Testa! Surfa till:

http://localhost:3000

Page 167: Rails för systemvetare

Demo

Page 168: Rails för systemvetare

rails min_forsta_app

cd min_forsta_app

script/generate scaffold Member name:string joined_at:datetime

rake db:migrate

script/server

http://localhost:3000

1. Skapa din app:

2. Kliv in:

3. Skapa stommen för medlemmar:

4. Skapa databasen:

5. Starta webbservern:

6. Besök sidan:

Page 169: Rails för systemvetare
Page 170: Rails för systemvetare

Labb

littlebitmanky on Flickr

Page 171: Rails för systemvetare

Lokal

Page 172: Rails för systemvetare

Lokal Aktivitet

Page 173: Rails för systemvetare

Lokal Aktivitet *1

Page 174: Rails för systemvetare

Facility Activity *1

Page 175: Rails för systemvetare

Facility Activity *1

Page 176: Rails för systemvetare

1. Installera Rails m.m.

2. Skapa en rails-app

3. Skapa grundstommen för Facility och Activity

4. Länka ihop anläggningar med aktiviteter

Facility Activity *1

Page 177: Rails för systemvetare
Page 178: Rails för systemvetare

Skarpt läge

Page 179: Rails för systemvetare
Page 180: Rails för systemvetare
Page 181: Rails för systemvetare
Page 182: Rails för systemvetare
Page 183: Rails för systemvetare

Installera

Page 184: Rails för systemvetare

-gem+

Page 185: Rails för systemvetare

Versionshantering

git-scm.com

Page 186: Rails för systemvetare

[sudo] gem install heroku

-gem

Page 187: Rails för systemvetare

Skapa ett ”repository”:

git init

Page 188: Rails för systemvetare

Skapa ett ”repository”:

git init

git add .

Lägg till alla filer:

Page 189: Rails för systemvetare

Skapa ett ”repository”:

git init

git add .

Lägg till alla filer:

Spara ändringarna:

git commit -m ”Beskrivning av ändring”

Page 190: Rails för systemvetare

Skapa din Heroku-app:

heroku create

Page 191: Rails för systemvetare

Skapa din Heroku-app:

heroku create

Ladda upp dina filer:

git push heroku master

Page 192: Rails för systemvetare

Skapa din Heroku-app:

heroku create

Ladda upp dina filer:

git push heroku master

Uppdatera databasen på Heroku:

heroku rake db:migrate

Page 193: Rails för systemvetare

Öppna din app!

heroku open

Page 194: Rails för systemvetare

Fortsätt lära dig

och

Page 195: Rails för systemvetare

Fortsätt lära dig

och

Page 197: Rails för systemvetare
Page 198: Rails för systemvetare
Page 199: Rails för systemvetare

APIAPI API

API

Page 200: Rails för systemvetare

APIAPI API

API

api.rubyonrails.org

Page 201: Rails för systemvetare

Fortsätt lära dig

och

Page 202: Rails för systemvetare

Fortsätt lära dig

och

Page 203: Rails för systemvetare

tryruby.org

Page 204: Rails för systemvetare
Page 205: Rails för systemvetare

Why the lucky stiff

Page 207: Rails för systemvetare

mislav.uniqpath.com/poignant-guide

Page 208: Rails för systemvetare

APIAPI API

API

Page 209: Rails för systemvetare

APIAPI API

API

ruby-doc.org/core

Page 210: Rails för systemvetare

www.ruby-doc.org/docs/ProgrammingRuby

Gratis på:

Page 211: Rails för systemvetare

?

Page 212: Rails för systemvetare