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

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
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
 
"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
 

Kürzlich hochgeladen (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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?
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
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
 
"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...
 

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