SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Úvod do Ruby On Rails
Karel Minařík
1   Co je RubyOnRails?




                         Úvod do RubyOnRails
Proč používat webový framework?




                             Úvod do RubyOnRails
„Představil jsem si chlápka chytřejšího než jsem já.
A pak jsem přemýšlel, co by udělal.“
„Toto je sněhová vločka. Vaše aplikace
není jedna z nich. Většina věcí, které
většina lidí dělá, není nijak unikátní.
Vaše potřeby nejsou nijak ‚zvláštní‘.“
David Heinemeier Hansson,
přednáška na konferenci Future Of Web Applications, únor 2006
SELECT * FROM people WHERE id = 1;
SELECT * FROM people WHERE id = 1;
SELECT * FROM people WHERE id = 1;
SELECT * FROM people WHERE id = 1;
SELECT * FROM people WHERE id = 1;
SELECT * FROM people WHERE id = 1;
SELECT * FROM people WHERE id = 1;




                                     Úvod do RubyOnRails
> 3 roky



           Úvod do RubyOnRails
http://www.rubyonrails.org

                             Úvod do RubyOnRails
Úvod do RubyOnRails
Úvod do RubyOnRails
Basecamp




           Úvod do RubyOnRails
3 pohledy na Rails

              $   αΩ
  001110011
  000101110
  011001110
  011100110




                       Úvod do RubyOnRails
001110011
000101110
011001110
011100110
            Technologický
            Model-View-Controller framework
            Objektově relační mapování

            Routování (→ REST)

            Usnadnění práce (helpers, extensions, pluginy,
            konvence, …)


                                                Úvod do RubyOnRails
$   Ekonomický
    Standardizace vývoje
    Rychlejší a kvalitnější vývoj
    Využití existujících řešení (RubyGems, pluginy)
    Silver bullet
    „PR-benefit“

                                          Úvod do RubyOnRails
αΩ   Filosofický
     Konvence má přednost před konfigurací
     Convention Over Configuration

     Kvalitativní posun celého vývoje pro web
     Zavádění best practices
     Agilní vývoj
     Pragmatismus

                                       Úvod do RubyOnRails
Programovací jazyk Ruby




                          Úvod do RubyOnRails
Úvod do RubyOnRails
— Yukihiro Matsumoto (Matz)
„Věřím, že – alespoň do jisté míry – je smyslem života být šťastný.
Na základě tohoto přesvědčení je Ruby navrženo tak, že je
nejenom snadné, ale i zábavné v něm programovat. Ruby vám
umožňuje soustředit se na kreativní stránku programování,
a nepřidělává vám další starosti.“
Yukihiro Matsumoto, předmluva k prvnímu vydání knihy Programming Ruby




                                                                        Úvod do RubyOnRails
Programovací jazyk Ruby

Interpretovaný
Expresivní, úsporná syntaxe
Dynamický
Objektový (1.upto 5)
Silné typování Duck typing
Reflektivní → Meta programování

Core Library www.ruby-doc.org/core
Standard Library — YAML, Logger, FileStat, Net::HTTP, Iconv, RDoc, Test::Unit,
Benchmark, … www.ruby-doc.org/stdlib
RubyGems www.rubyforge.org
Ruby Application Archive www.raa.ruby-lang.org



                                                                   Úvod do RubyOnRails
Klíčové součásti Ruby On Rails




                             Úvod do RubyOnRails
KLÍČOVÉ SOUČÁSTI RUBY ON RAILS

Přehled




1) Model—View—Controller architektura

2) Objektově relační mapování ActiveRecord

3) Směrování HTTP požadavků na řídící prvky aplikace ActionPack
   (ActionController a ActionView)

4) Webové služby typu REST ActiveResource

5) Odesílání e-mailů ActionMailer

6) Rozšíření Ruby ActiveSupport




                                                                  Úvod do RubyOnRails
Další zdroje a informace




                           Úvod do RubyOnRails
KLÍČOVÉ SOUČÁSTI RUBY ON RAILS

Editory a IDE pro Ruby a Rails




                                 TextMate Mac OS X

                                 NetBeans

                                 Aptana RadRails

                                 CodeGear 3rd Rail



                                                     Úvod do RubyOnRails
KLÍČOVÉ SOUČÁSTI RUBY ON RAILS

Zdroje a informace




                             Dave Thomas, David Heinemeier Hansson,
                             Agile Web Development With Ruby On Rails, 2nd edition
                             Pragmatic Bookshelf 2006



                             Peter Cooper, Beginning Ruby
                             Apress 2007




                                                                      Úvod do RubyOnRails
KLÍČOVÉ SOUČÁSTI RUBY ON RAILS

Zdroje a informace



                                 www.rubyinside.com
                                 www.planetrubyonrails.com
                                 www.railscasts.com
                                 www.peepcode.com

                                 http://forum.rubyonrails.cz
                                 http://planet.rubyonrails.cz
                                 #rubyonrails (IRC kanál na IRCNet)

                                 www.railsforphp.com
                                 http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-
                                 from-php




                                                                                          Úvod do RubyOnRails
KLÍČOVÉ SOUČÁSTI RUBY ON RAILS

Nevýhody a slabé stránky Rails


                                 Podpora na hostingu
                                 Railshosting.cz
                                 Vzájemná provázanost mnoha technologií
                                 „Lots of moving parts“
                                 Náročné na výkon
                                 > 50MB pro jednu Rails aplikaci
                                 Ruby — nový a jiný programovací jazyk
                                 PHP s námi nebude věčně
                                 Nedostatek vývojářů
                                 Může být i výhoda
                                 Dokumentace = Zdrojový kód
                                 Vyvažuje silná komunita
                                 Silná vazba na *nix prostředí a konzoli
                                 Obtížný provoz v prostředí Windows




                                                                      Úvod do RubyOnRails
2   Živá ukázka tvorby aplikace v Rails




                                          Úvod do RubyOnRails
www.tadalist.com od 37Signals

                                Úvod do RubyOnRails
$ sudo gem install rails
$ rails -v
$ rails planner
 create   app/controllers
 create   app/helpers
 create   app/models
 create   app/views/layouts
 create   config/environments
 create   config/initializers
 create   db
 create
 create
 create
          doc
          lib  Ukázka
          lib/tasks
 create   log
 create   public/images
 create   public/javascripts
 create   public/stylesheets
 create   script/performance
 create   script/process
 create   test/fixtures
 create   test/functional
 create   test/integration
 create   test/mocks/development
 create   test/mocks/test
 create   test/unit
 create   vendor
 create   vendor/plugins
 create   tmp/sessions
 create   tmp/sockets
 create   tmp/cache

                                   Úvod do RubyOnRails
Děkuji!
   



 karmi@karmi.cz

Weitere ähnliche Inhalte

Ähnlich wie Introduction to Ruby on Rails Framework

Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railsousli07
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)Karel Minarik
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To RailsEric Gruber
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on railspmashchak
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Ruby and Rails for womens
Ruby and Rails for womensRuby and Rails for womens
Ruby and Rails for womenss4nx
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railsiradarji
 
Ruby on rails | iteron
Ruby on rails | iteronRuby on rails | iteron
Ruby on rails | iteronIteron Group
 
Getting started with Rails (1), Season 2
Getting started with Rails (1), Season 2Getting started with Rails (1), Season 2
Getting started with Rails (1), Season 2RORLAB
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Coursepeter_marklund
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)Shanda innovation institute
 

Ähnlich wie Introduction to Ruby on Rails Framework (20)

Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
Efektivni vyvoj webovych aplikaci v Ruby on Rails (Webexpo)
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To Rails
 
Ruby Beyond Rails
Ruby Beyond RailsRuby Beyond Rails
Ruby Beyond Rails
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
 
Bhavesh ro r
Bhavesh ro rBhavesh ro r
Bhavesh ro r
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Ruby and Rails for womens
Ruby and Rails for womensRuby and Rails for womens
Ruby and Rails for womens
 
Setup ruby
Setup rubySetup ruby
Setup ruby
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Rails 101
Rails 101Rails 101
Rails 101
 
Rails 101
Rails 101Rails 101
Rails 101
 
Ruby on rails | iteron
Ruby on rails | iteronRuby on rails | iteron
Ruby on rails | iteron
 
Getting started with Rails (1), Season 2
Getting started with Rails (1), Season 2Getting started with Rails (1), Season 2
Getting started with Rails (1), Season 2
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
 

Mehr von Karel Minarik

Vizualizace dat a D3.js [EUROPEN 2014]
Vizualizace dat a D3.js [EUROPEN 2014]Vizualizace dat a D3.js [EUROPEN 2014]
Vizualizace dat a D3.js [EUROPEN 2014]Karel Minarik
 
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)Karel Minarik
 
Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)Karel Minarik
 
Redis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesRedis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesKarel Minarik
 
CouchDB – A Database for the Web
CouchDB – A Database for the WebCouchDB – A Database for the Web
CouchDB – A Database for the WebKarel Minarik
 
Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)Karel Minarik
 
Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)Karel Minarik
 
Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]Karel Minarik
 
Úvod do programování 6
Úvod do programování 6Úvod do programování 6
Úvod do programování 6Karel Minarik
 
Úvod do programování 5
Úvod do programování 5Úvod do programování 5
Úvod do programování 5Karel Minarik
 
Úvod do programování 4
Úvod do programování 4Úvod do programování 4
Úvod do programování 4Karel Minarik
 
Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)Karel Minarik
 
Historie programovacích jazyků
Historie programovacích jazykůHistorie programovacích jazyků
Historie programovacích jazykůKarel Minarik
 
Úvod do programování aneb Do nitra stroje
Úvod do programování aneb Do nitra strojeÚvod do programování aneb Do nitra stroje
Úvod do programování aneb Do nitra strojeKarel Minarik
 
Interaktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzoryInteraktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzoryKarel Minarik
 

Mehr von Karel Minarik (15)

Vizualizace dat a D3.js [EUROPEN 2014]
Vizualizace dat a D3.js [EUROPEN 2014]Vizualizace dat a D3.js [EUROPEN 2014]
Vizualizace dat a D3.js [EUROPEN 2014]
 
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
Elastic Search: Beyond Ordinary Fulltext Search (Webexpo 2011 Prague)
 
Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)
 
Redis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesRedis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational Databases
 
CouchDB – A Database for the Web
CouchDB – A Database for the WebCouchDB – A Database for the Web
CouchDB – A Database for the Web
 
Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)Spoiling The Youth With Ruby (Euruko 2010)
Spoiling The Youth With Ruby (Euruko 2010)
 
Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)
 
Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]Představení Ruby on Rails [Junior Internet]
Představení Ruby on Rails [Junior Internet]
 
Úvod do programování 6
Úvod do programování 6Úvod do programování 6
Úvod do programování 6
 
Úvod do programování 5
Úvod do programování 5Úvod do programování 5
Úvod do programování 5
 
Úvod do programování 4
Úvod do programování 4Úvod do programování 4
Úvod do programování 4
 
Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)Úvod do programování 3 (to be continued)
Úvod do programování 3 (to be continued)
 
Historie programovacích jazyků
Historie programovacích jazykůHistorie programovacích jazyků
Historie programovacích jazyků
 
Úvod do programování aneb Do nitra stroje
Úvod do programování aneb Do nitra strojeÚvod do programování aneb Do nitra stroje
Úvod do programování aneb Do nitra stroje
 
Interaktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzoryInteraktivita, originalita a návrhové vzory
Interaktivita, originalita a návrhové vzory
 

Kürzlich hochgeladen

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 

Kürzlich hochgeladen (20)

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 

Introduction to Ruby on Rails Framework

  • 1. Úvod do Ruby On Rails Karel Minařík
  • 2. 1 Co je RubyOnRails? Úvod do RubyOnRails
  • 3. Proč používat webový framework? Úvod do RubyOnRails
  • 4.
  • 5. „Představil jsem si chlápka chytřejšího než jsem já. A pak jsem přemýšlel, co by udělal.“
  • 6. „Toto je sněhová vločka. Vaše aplikace není jedna z nich. Většina věcí, které většina lidí dělá, není nijak unikátní. Vaše potřeby nejsou nijak ‚zvláštní‘.“ David Heinemeier Hansson, přednáška na konferenci Future Of Web Applications, únor 2006
  • 7. SELECT * FROM people WHERE id = 1; SELECT * FROM people WHERE id = 1; SELECT * FROM people WHERE id = 1; SELECT * FROM people WHERE id = 1; SELECT * FROM people WHERE id = 1; SELECT * FROM people WHERE id = 1; SELECT * FROM people WHERE id = 1; Úvod do RubyOnRails
  • 8. > 3 roky Úvod do RubyOnRails
  • 9. http://www.rubyonrails.org Úvod do RubyOnRails
  • 12. Basecamp Úvod do RubyOnRails
  • 13. 3 pohledy na Rails $ αΩ 001110011 000101110 011001110 011100110 Úvod do RubyOnRails
  • 14. 001110011 000101110 011001110 011100110 Technologický Model-View-Controller framework Objektově relační mapování Routování (→ REST) Usnadnění práce (helpers, extensions, pluginy, konvence, …) Úvod do RubyOnRails
  • 15. $ Ekonomický Standardizace vývoje Rychlejší a kvalitnější vývoj Využití existujících řešení (RubyGems, pluginy) Silver bullet „PR-benefit“ Úvod do RubyOnRails
  • 16. αΩ Filosofický Konvence má přednost před konfigurací Convention Over Configuration Kvalitativní posun celého vývoje pro web Zavádění best practices Agilní vývoj Pragmatismus Úvod do RubyOnRails
  • 17. Programovací jazyk Ruby Úvod do RubyOnRails
  • 20. „Věřím, že – alespoň do jisté míry – je smyslem života být šťastný. Na základě tohoto přesvědčení je Ruby navrženo tak, že je nejenom snadné, ale i zábavné v něm programovat. Ruby vám umožňuje soustředit se na kreativní stránku programování, a nepřidělává vám další starosti.“ Yukihiro Matsumoto, předmluva k prvnímu vydání knihy Programming Ruby Úvod do RubyOnRails
  • 21. Programovací jazyk Ruby Interpretovaný Expresivní, úsporná syntaxe Dynamický Objektový (1.upto 5) Silné typování Duck typing Reflektivní → Meta programování Core Library www.ruby-doc.org/core Standard Library — YAML, Logger, FileStat, Net::HTTP, Iconv, RDoc, Test::Unit, Benchmark, … www.ruby-doc.org/stdlib RubyGems www.rubyforge.org Ruby Application Archive www.raa.ruby-lang.org Úvod do RubyOnRails
  • 22. Klíčové součásti Ruby On Rails Úvod do RubyOnRails
  • 23. KLÍČOVÉ SOUČÁSTI RUBY ON RAILS Přehled 1) Model—View—Controller architektura 2) Objektově relační mapování ActiveRecord 3) Směrování HTTP požadavků na řídící prvky aplikace ActionPack (ActionController a ActionView) 4) Webové služby typu REST ActiveResource 5) Odesílání e-mailů ActionMailer 6) Rozšíření Ruby ActiveSupport Úvod do RubyOnRails
  • 24. Další zdroje a informace Úvod do RubyOnRails
  • 25. KLÍČOVÉ SOUČÁSTI RUBY ON RAILS Editory a IDE pro Ruby a Rails TextMate Mac OS X NetBeans Aptana RadRails CodeGear 3rd Rail Úvod do RubyOnRails
  • 26. KLÍČOVÉ SOUČÁSTI RUBY ON RAILS Zdroje a informace Dave Thomas, David Heinemeier Hansson, Agile Web Development With Ruby On Rails, 2nd edition Pragmatic Bookshelf 2006 Peter Cooper, Beginning Ruby Apress 2007 Úvod do RubyOnRails
  • 27. KLÍČOVÉ SOUČÁSTI RUBY ON RAILS Zdroje a informace www.rubyinside.com www.planetrubyonrails.com www.railscasts.com www.peepcode.com http://forum.rubyonrails.cz http://planet.rubyonrails.cz #rubyonrails (IRC kanál na IRCNet) www.railsforphp.com http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby- from-php Úvod do RubyOnRails
  • 28. KLÍČOVÉ SOUČÁSTI RUBY ON RAILS Nevýhody a slabé stránky Rails Podpora na hostingu Railshosting.cz Vzájemná provázanost mnoha technologií „Lots of moving parts“ Náročné na výkon > 50MB pro jednu Rails aplikaci Ruby — nový a jiný programovací jazyk PHP s námi nebude věčně Nedostatek vývojářů Může být i výhoda Dokumentace = Zdrojový kód Vyvažuje silná komunita Silná vazba na *nix prostředí a konzoli Obtížný provoz v prostředí Windows Úvod do RubyOnRails
  • 29. 2 Živá ukázka tvorby aplikace v Rails Úvod do RubyOnRails
  • 30. www.tadalist.com od 37Signals Úvod do RubyOnRails
  • 31. $ sudo gem install rails $ rails -v $ rails planner create app/controllers create app/helpers create app/models create app/views/layouts create config/environments create config/initializers create db create create create doc lib Ukázka lib/tasks create log create public/images create public/javascripts create public/stylesheets create script/performance create script/process create test/fixtures create test/functional create test/integration create test/mocks/development create test/mocks/test create test/unit create vendor create vendor/plugins create tmp/sessions create tmp/sockets create tmp/cache Úvod do RubyOnRails
  • 32. Děkuji!  karmi@karmi.cz