Rails för systemvetare
-
Upload
victor-sollerhed -
Category
Technology
-
view
315 -
download
0
description
Transcript of Rails för systemvetare
...
...
Ruby on Rails
...en introduktion
Ruby on Rails
...en introduktion
Vem är jag?
Victor Sollerhed
@MPV3
Ruby
Java
HTML
CSS
PHP
C++
ASP VBscriptJavascript
C#
Varför?
Bra verktyg
”Ringar på vattnet”
riviera2008 på Flickr
3
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
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
Ruby on Rails} }Språk
Ramverk
Programmerings-språk
Webb-ramverk
Impress me!
brent_nashville on Flickr
”Man skall hålla reda på alla uppgifterom medlemmarna och klubbens
schemalagda aktiviteter”
Demo
Vem använder Rails?
Twitter MTV style Shopify Zendesk
Urban Dictionary
Geni
A List Apart
Hulu
Basecamp
Blinksale Github
43 ThingsKongregate
Get Satisfaction Yellow PagesFunny or Die
Vad har jag gjort i Rails?
HTMLDo you speak it?
Text med ett fett ord.
Text med ett fett ord.
Text med ett fett ord.
fetstil
Text med ett <fetstil>fett</fetstil> ord.
Taggar
Text med ett <fetstil>fett</fetstil> ord.
<strong> Fetstil
<em> Kursivt
<a> Länk
<h1> Rubrik (h1-h6)
Text med ett <strong>fett</strong> ord.
Webbläsare
<html>
<html>
</html>
<html><head>
</head>
</html>
<html><head>
</head><body>
</body></html>
<html><head><title>Min hemsida</title>
</head><body>
</body></html>
<html><head><title>Min hemsida</title>
</head><body><h1>En rubrik</h1>
</body></html>
<html><head><title>Min hemsida</title>
</head><body><h1>En rubrik</h1><p>Lite text...</p>
</body></html>
http://www.example.com/index.html
<a>Annan sida</a>
<a >Annan sida</a>
<a href=” ”>Annan sida</a>
<a href=”anotherpage.htm”>Annan sida</a>
Annan sida
Dagenssidotips:
Vad är Ruby?
Japan1994
...designade för datorer, inte för människor.
Låt datorn göra jobbet åt dig
Med språk och bibliotek designade för människor...
...kan vi låta någon annan bry sig om prestandan.
Hello world!
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!”);}
}
Ruby
puts ”Hello world!”
Java
public class MyClass{public static void main(String args[]){
System.out.println(”Hello world!”);}
}
Vända på en sträng då?
2.hours.ago
2.hours.ago
5.times { print ”Hello” }
Allt är objekt
(inga primitiva typer som Java har)
new Date
Date.new
Tolkat
(du slipper kompilera)
Dynamiskt typat
Java
int age = 23;
age = ”tjugotre”;
Java Ruby
int age = 23;
age = ”tjugotre”;
age = 23
age = ”tjugotre”
int age = 23;
Java Ruby
age = ”tjugotre”;
age = 23
age = ”tjugotre”
Duck-typing
Ser det ut som en anka?
Låter det som en anka?
Då är det nog en anka!
är frivilliga
( ) ;och}{
puts ”Hello world!”
puts(”Hello world!”);
eller
class Duckdef initialize
puts ”Quack!”end
end
class Duckdef initialize
puts ”Quack!”end
end
d = Duck.new
class Duckdef initialize
puts ”Quack!”end
end
d = Duck.new
Quack!
gogri on Flickr
Vad är Ruby on Rails?
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.
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.
Ramverk
Ta emot inkommande anslutningar
Ta emot inkommande anslutningar
Läs/skriv till databas
Ta emot inkommande anslutningar
Läs/skriv till databas
Skicka svar i HTML, e-post, XML m.m
Ta emot inkommande anslutningar
Läs/skriv till databas
Skicka svar i HTML, e-post, XML m.m
Validering
Ta emot inkommande anslutningar
Läs/skriv till databas
Skicka svar i HTML, e-post, XML m.m
Validering
Tester
David Heinemeier Hansen
David Heinemeier Hansen
Basecamp
David Heinemeier Hansen
Basecamp Backpack
Highrise Campfire
David Heinemeier Hansen
Basecamp Backpack
Highrise Campfire
David Heinemeier Hansen
3 miljoner kunder
Convention over Configuration
Konventioner över Konfiguration
Clarity
over
Cleverness
Tydlighet
över
Fyndighet
DRY
DRYDon’t Repeat Yourself
MVC
MVCModel View Controller
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?
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?
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?
Model View ControllerMember.rb index.html.erb MembersController.rb
show.html.erb
edit.html.erb
new.html.erb
Hur fungerarMVC i Rails?
Klient
Klient
Controller
Klient
Controller
Klient
Controller Model
Klient
Controller Model
Klient
Controller Model DB
Klient
Controller Model DB
Klient
Controller
View
Model DB
Klient
Controller
View
Model DB
Klient
Controller
View
Model DB
Klient
RESTSOAP
SOAP
SOAP REST
vs
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Installera
+
I’m a Mac. I’m a PC. I’m Linux.
1. Installera Ruby
2. Installera SQLite3
3. Installera Rails
[sudo] gem install rails
Men hur använder man det?
Låt oss skapa vår första Rails-app!
Öppna ett terminal-fönster
C:\> _
Alice:~ vs$ _
eller
(Gå dit du vill ha din app)
cd minaponnyhästar
Skapa din första Rails-app:
rails min_forsta_app
Kliv in i din app:
cd min_forsta_app
Skapa stommen (scaffold) för en modell:
script/generate scaffold Modell attribut:typ
Skapa stommen (scaffold) för en medlem:
script/generate scaffold Member name:string joined_at:datetime
Skapa stommen (scaffold) för en medlem:
script/generate scaffold Member name:string joined_at:datetime
Modell
Skapa stommen (scaffold) för en medlem:
script/generate scaffold Member name:string joined_at:datetime
Modell Attribut
Skapa stommen (scaffold) för en medlem:
script/generate scaffold Member name:string joined_at:datetime
Modell Attribut Typ
Skapa en databas:
rake db:migrate
Starta din app!
script/server
Demo
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:
Labb
littlebitmanky on Flickr
Lokal
Lokal Aktivitet
Lokal Aktivitet *1
Facility Activity *1
Facility Activity *1
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
Skarpt läge
Installera
-gem+
[sudo] gem install heroku
-gem
Skapa ett ”repository”:
git init
Skapa ett ”repository”:
git init
git add .
Lägg till alla filer:
Skapa ett ”repository”:
git init
git add .
Lägg till alla filer:
Spara ändringarna:
git commit -m ”Beskrivning av ändring”
Skapa din Heroku-app:
heroku create
Skapa din Heroku-app:
heroku create
Ladda upp dina filer:
git push heroku master
Skapa din Heroku-app:
heroku create
Ladda upp dina filer:
git push heroku master
Uppdatera databasen på Heroku:
heroku rake db:migrate
Öppna din app!
heroku open
Fortsätt lära dig
och
Fortsätt lära dig
och
APIAPI API
API
Fortsätt lära dig
och
Fortsätt lära dig
och
tryruby.org
Why the lucky stiff
från ”Why's (poignant) Guide to Ruby”
APIAPI API
API
www.ruby-doc.org/docs/ProgrammingRuby
Gratis på:
?