Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to web applications and a bit of r...
Search
Tobias Pfeiffer
February 23, 2013
Programming
0
120
Introduction to web applications and a bit of ruby (revised)
A little introduction to web applications and to Ruby, used at the Rails Girls Berlin workshops.
Tobias Pfeiffer
February 23, 2013
Tweet
Share
More Decks by Tobias Pfeiffer
See All by Tobias Pfeiffer
Going Staff - Keynote edition
pragtob
0
9.8k
Going Staff
pragtob
0
24k
Stories in Open Source
pragtob
0
23k
Metaphors are everywhere: Ideas to Improve Software Development
pragtob
0
190
Stories in Open Source
pragtob
0
420
Elixir & Phoenix – Fast, Concurrent and Explicit
pragtob
0
730
Functioning Among Humans
pragtob
0
370
Functioning Among Humans
pragtob
0
95
Do You Need That Validation? Let Me Call You Back About It
pragtob
0
450
Other Decks in Programming
See All in Programming
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
Ruby and LLM Ecosystem 2nd
koic
1
1.3k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.1k
PHPで TLSのプロトコルを実装してみる
higaki_program
0
420
Java 21/25 Virtual Threads 소개
debop
0
260
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.4k
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
550
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.7k
20260320登壇資料
pharct
0
120
安いハードウェアでVulkan
fadis
1
770
ロボットのための工場に灯りは要らない
watany
12
3.2k
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
330
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
150
GraphQLとの向き合い方2022年版
quramy
50
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
New Earth Scene 8
popppiees
1
1.8k
Skip the Path - Find Your Career Trail
mkilby
1
88
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
490
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
790
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
The agentic SEO stack - context over prompts
schlessera
0
710
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
250
Transcript
Introduction to Web Applications Tobias Pfeiffer @PragTob pragtob.wordpress.com
Today
None
What is a web application?
Not rocket science
I am Rails (and So Can You!)
Programming is fun!
What you are going to build today
So what is a web application?
Presented in a web browser
Runs on a server...
...or the cloud
is dynamic
A high level overview
High level overview
High level overview
High level overview Request
High level overview
High level overview Answer
High level overview Answer
High level overview
What parts does a web application consist of?
Web Application
Front End Back End
Front End Back End
CSS HTML JavaScript
CSS HTML JavaScript
Structure and content
CSS HTML JavaScript
Styling to transform...
...this...
...into this.
CSS HTML JavaScript
Back End CSS HTML JavaScript
Back End CSS HTML JavaScript
Logic Infrastructure
Logic Infrastructure
Logic • Behaviour • Implements the business logic • Ties
all the parts together • Generates content
Ruby on Rails
Logic Infrastructure
Web Server
Logic Infrastructure
Storing all your data...
...in giant tables
Recap
Logic Storage Infrastructure CSS HTML JavaScript Web Application Landscape
Logic Storage Infrastructure CSS HTML JavaScript Web Application Landscape Bootstrap
XML DOM jQuery Ruby on Rails Sqlite Apache WEBrick MongoDB Thin Ruby PHP Python Django Java
But what is Ruby on Rails?
A web application framework written in Ruby
• A general purpose programming language • Principle of least
surprise • Invented by Yukihiro Matsumoto
"I hope to see Ruby help every programmer in the
world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language." Yukihiro Matsumoto
Ruby on Rails • Framework written in Ruby • set
of functionality to help write web applications – Connecting to the database (ActiveRecord) – Generating HTML (ERB) – Pays attention to security – … and so much more! • Model View Controller • You write in Ruby
Let's get into some Ruby
But before that...
Questions time ?
Open a terminal/console
irb
tobi@speedy:~$ irb 1.9.3p194 :001 >
irb – interactive ruby • talking to ruby • You
tell ruby something • Ruby responds with what it understood • Coaches are going to help you!
1.9.3p194 :001 > 5 => 5
1.9.3p194 :002 > 5 + 3 => 8
1.9.3p194 :003 > 8 * 7 => 56
1.9.3p194 :004 > "Tobias Pfeiffer" => "Tobias Pfeiffer"
1.9.3p194 :005 > name = "Tobi" => "Tobi"
1.9.3p194 :005 > coach = "Tobi" => "Tobi"
1.9.3p194 :005 > dhaksdhak = "Tobi" => "Tobi"
1.9.3p194 :005 > name = "Tobi" => "Tobi"
1.9.3p194 :006 > name => "Tobi"
1.9.3p194 :007 > result = 8 * 7 => 56
1.9.3p194 :007 > result = 8 * 7 => 56
56 result
1.9.3p194 :008 > result * 10 => 560
1.9.3p194 :009 > name + " likes Sweden" => "Tobi
likes Sweden"
1.9.3p194 :010 > puts "Hello World!" Hello World! => nil
1.9.3p194 :011 > fruits = ["apple", "keewee", "orange"] => ["apple",
"keewee", "orange"]
1.9.3p194 :013 > fruits.each do |fruit| puts fruit end apple
keewee orange => ["apple", "keewee", "orange"]
1.9.3p194 :013 > fruits.each do |bob| puts bob end apple
keewee orange => ["apple", "keewee", "orange"]
1.9.3p194 :013 > fruits.each do |anything| puts anything end apple
keewee orange => ["apple", "keewee", "orange"]
1.9.3p194 :014 > fruits[0] => "apple"
1.9.3p194 :015 > symbol = :wuh => :wuh 1.9.3p194 :016
> symbol => :wuh
1.9.3p194 :017 > dictionary = {:hi => "Hej", :good =>
"bra", :cookie => "kaka"} => {:hi=>"Hej", :good=>"bra", :cookie=>"kaka"} 1.9.3p194 :018 > dictionary[:hi] => "Hej" 1.9.3p194 :019 > dictionary[:cookie] => "kaka"
1.9.3p194 :020 > def hello 1.9.3p194 :021?> puts "Hello there!"
1.9.3p194 :022?> end => nil
1.9.3p194 :026 > hello Hello there! => nil
1.9.3p194 :023 > def greeter(person) 1.9.3p194 :024?> puts "Hello "
+ person 1.9.3p194 :025?> end => nil
1.9.3p194 :027 > greeter("Fanny") Hello Fanny => nil
1.9.3p194 :028 > greeter ArgumentError: wrong number of arguments (0
for 1) from (irb):23:in `greeter' from (irb):28 from /home/tobi/.rvm/rubies/ruby-1.9.3- p194/bin/irb:16:in `<main>'
1.9.3p194 :029 > class Person 1.9.3p194 :030?> attr_accessor :name, :age
1.9.3p194 :031?> end => nil 1.9.3p194 :032 > tobi = Person.new => #<Person:0x0000000205f080>
1.9.3p194 :033 > tobi.name => nil 1.9.3p194 :034 > tobi.name
= "Tobi" => "Tobi" 1.9.3p194 :035 > tobi.age = 23 => 23 1.9.3p194 :036 > tobi.name => "Tobi" 1.9.3p194 :037 > tobi.age => 23
1.9.3p194 :038 > tobi.age * 365 => 8395 1.9.3p194 :039
> puts "This was a talk by " + tobi.name + " - thank you!" This was a talk by Tobi - thank you! => nil
Where to go from here? • I gather resources here,
such as: – http://tryruby.org – http://ruby.railstutorial.org/ – http://rubymonk.com/ – http://www.codeschool.com/courses/rails-for-zombies – http://rubykoans.com/ – http://railscasts.com/ • Rails Girls Berlin project groups
Thank you and enjoy coding! Tobias Pfeiffer @PragTob pragtob.wordpress.com listen
to me talking about learning Ruby (German)
Photo credit • http://www.flickr.com/photos/captainkimo/5918836159/ • http://www.flickr.com/photos/weppos/7486411688/ • http://www.flickr.com/photos/railsgirlsberlin/7882839698/in/photostream • http://www.flickr.com/photos/nirak/644336486/