SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Ú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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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(吕国宁)
 

Mais de 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
 

Mais de 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
 

Último

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

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