SlideShare a Scribd company logo
Работа с
    Ruby On Rails

      Деница Белогушева
     Ruby on Rails семинар, ВСУ
         Варна, 11.12.2010
                   
Моята работа
    ●   тутуф, (2007-), съдружник и управител
    ●   собствен продукт - Щ
    ●   досега 4 различни уеб приложения за
        клиенти
    ●   Първата стажантска програма по Ruby
        On Rails в България*
    ●   @deni_bel


                          
Ruby On Rails

              ●   полезното
              ●   източници
              ●   лесното
              ●   сериозното
              ●   принципите


           
Ruby On Rails - полезното

    ●   Ruby
    ●   MVC framework
    ●   development, test,
        production
    ●   DB migration
    ●   Gems


                          
Ruby On Rails - източници
     Resources for getting started with RoR
    благодарение на добрите хора от EngineYard


                   или просто




                         
Ruby On Rails - лесното

    ➔   Инсталиране на Ruby и Rails
        ➔   apt-get install ruby-full
        ➔   инсталиране на rubygems
        ➔   gem install rails
    ➔   rails appname
    ➔   vim config/database.yml
    ➔   script/server или script/console

                                 
     
Ruby On Rails – сериозното
    ●   REE / Ruby 1.9
    ●   Phusion Passenger
    ●   Apache / Nginx
    ●   MySQL / PostgreSQL
    ●   Capistrano


    ●   EngineYard

                             
Heroku
    ●   Platform as a service (PAAS) for building,
        deploying, and running cloud apps using
        Ruby
    ●   > 107, 180 работещи приложения
    ●   Salesforce.com купува Heroku за
        212 милиона долара



                             
Ruby On Rails - принципите
●   convention over
    configuration
●   DRY
●   Less Is More
●   K.I.S.S
●   Principle Of Least
    Surprise
●   Be nice and have fun :)
                          
Освен забавление и игра?




                
Agile web development

    ●   agilemanifesto.org
    ●   XP, Scrum, Lean
    ●   Итерации
    ●   Release early,
        release often
    ●   Обратна връзка
    ●   Pair Programming

                              
Тестове, тестове, тестове
    ●   Проверка, че нещо се случва по
        определен начин
    ●   Подсигуряване, че даден бъг няма да
        се появи отново
    ●   Документация
    ●   Regression testing


    ●   TDD – not about testing, think design
                              
Култура и хигиена

    ●   SCM (git, svn, mercurial)
    ●   ssh + keys
    ●   Automatic deploy
    ●   Тестове


                               
Реалността




         
В България?
    ●   Бързо и лесно с Рубин на Релси – Сава
        Чанков, openfest, София, 2006
    ●   > 60 човека в google групата
    ●   Успешни проекти
    ●   Споделен хостинг с Rails (space.bg)
    ●   @skanev, @petyosi, @stan_bb,
        @rstankov


                           
Възможностите за работа?
    ●   Работа има и все
        повече се              Rails-аджиите все
        предлага                още са малко у
    ●   Съществуващи            нас
        сайтове
    ●   Нови уеб проекти
    ●   startup
    ●   чуждестранни
        проекти
                            
Как да се (на)учим?
    ●   Apprenticeship patterns
    ●   Приятел с опит
    ●   railsmentors.org
    ●   Четене на чужд код
    ●   Build breakable toys
    ●   Проекти с отворен код
    ●   Стажантски програми

                            
За новите поколения
    ●   Ruby Summer Of Code 2010




        –   За ученици и студенти
        –   стипендия в размер на $5000 (от
            дарения!)
        –   Руби гурута за ментори
 
        –   Проекти с отворен код
                             
Как да си намерим работа?
    Тя ще ви намери, но бъдете подготвени

    ●   github.com – по-добро от CV
    ●   workingwithrails.com
    ●   Ruby on Rails: България
    ●   Приятели
    ●   Общност
    ●   Събития (openfest, webtech и др.)
                           
Собствен бизнес с Rails




                
Собствен бизнес с Rails
●   Getting Real -
    http://gettingreal.37signals.com
●   Paul Graham - http://www.paulgraham.com
●   Бъдете гъвкави


          С професионално отношение
            към доверие на клиента!*
                         
Вдъхновение




          
Вдъхновение

    ●   Steve Jobs, Standford University, 2005
        How to live before you die


    ●   Jeff Bezos, Princeton University, 2010
        Gifts vs. choices



                             
Благодаря




                @deni_bel

More Related Content

DOCX
Симетрични и асиметрични алгоритми за криптиране на информация
PDF
Study: The Future of VR, AR and Self-Driving Cars
PDF
Hype vs. Reality: The AI Explainer
PDF
Scaling Rails apps - Valentin Mihov
PDF
Ruby 0
PDF
CG&Web Seminar Lecture '10
PDF
Отвореният код и мястото му в бизнеса | OS and the business
PDF
Web Design Concepts
Симетрични и асиметрични алгоритми за криптиране на информация
Study: The Future of VR, AR and Self-Driving Cars
Hype vs. Reality: The AI Explainer
Scaling Rails apps - Valentin Mihov
Ruby 0
CG&Web Seminar Lecture '10
Отвореният код и мястото му в бизнеса | OS and the business
Web Design Concepts

Similar to работа с Ruby on rails (20)

PPT
Академия на Телерик - безплатни курсове 2011
PDF
Start UP 2007: Open Source for startups - Bogo
PDF
Tools for Developers
PDF
Survivor: тактиките на фрийлансъра
PPTX
Telerik Academy Introduction
PDF
Dom manipulation
ODP
Стартиране на софтуерен бизнес - пътят от програмата до продукта
PPTX
Ambassador of telerik_academy
ODP
Ако дадеш на човек риба, ще го нахраниш за един ден, ако го научиш да ползва ...
PDF
PaaS бъдещето на креативния програмист!
ODP
08. Objects
PPT
Drupal Camp Sofia 2011 - Freelance for a Living
PPS
Bl Consulting Ltd I Scala Pm Overview
PPS
Bl Consulting Ltd I Scala Pm Overview
PDF
Cg&web 2010 Despark Dipchikov Project Management
PDF
Intro lecture seminar
ODP
ODP
07. Functions
DOC
безопасности защита на Web application
ODP
Mozllla Labs presentation
Академия на Телерик - безплатни курсове 2011
Start UP 2007: Open Source for startups - Bogo
Tools for Developers
Survivor: тактиките на фрийлансъра
Telerik Academy Introduction
Dom manipulation
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Ambassador of telerik_academy
Ако дадеш на човек риба, ще го нахраниш за един ден, ако го научиш да ползва ...
PaaS бъдещето на креативния програмист!
08. Objects
Drupal Camp Sofia 2011 - Freelance for a Living
Bl Consulting Ltd I Scala Pm Overview
Bl Consulting Ltd I Scala Pm Overview
Cg&web 2010 Despark Dipchikov Project Management
Intro lecture seminar
07. Functions
безопасности защита на Web application
Mozllla Labs presentation
Ad

работа с Ruby on rails

  • 1. Работа с Ruby On Rails Деница Белогушева Ruby on Rails семинар, ВСУ Варна, 11.12.2010    
  • 2. Моята работа ● тутуф, (2007-), съдружник и управител ● собствен продукт - Щ ● досега 4 различни уеб приложения за клиенти ● Първата стажантска програма по Ruby On Rails в България* ● @deni_bel    
  • 3. Ruby On Rails ● полезното ● източници ● лесното ● сериозното ● принципите    
  • 4. Ruby On Rails - полезното ● Ruby ● MVC framework ● development, test, production ● DB migration ● Gems    
  • 5. Ruby On Rails - източници Resources for getting started with RoR благодарение на добрите хора от EngineYard или просто    
  • 6. Ruby On Rails - лесното ➔ Инсталиране на Ruby и Rails ➔ apt-get install ruby-full ➔ инсталиране на rubygems ➔ gem install rails ➔ rails appname ➔ vim config/database.yml ➔ script/server или script/console    
  • 7.    
  • 8. Ruby On Rails – сериозното ● REE / Ruby 1.9 ● Phusion Passenger ● Apache / Nginx ● MySQL / PostgreSQL ● Capistrano ● EngineYard    
  • 9. Heroku ● Platform as a service (PAAS) for building, deploying, and running cloud apps using Ruby ● > 107, 180 работещи приложения ● Salesforce.com купува Heroku за 212 милиона долара    
  • 10. Ruby On Rails - принципите ● convention over configuration ● DRY ● Less Is More ● K.I.S.S ● Principle Of Least Surprise ● Be nice and have fun :)    
  • 12. Agile web development ● agilemanifesto.org ● XP, Scrum, Lean ● Итерации ● Release early, release often ● Обратна връзка ● Pair Programming    
  • 13. Тестове, тестове, тестове ● Проверка, че нещо се случва по определен начин ● Подсигуряване, че даден бъг няма да се появи отново ● Документация ● Regression testing ● TDD – not about testing, think design    
  • 14. Култура и хигиена ● SCM (git, svn, mercurial) ● ssh + keys ● Automatic deploy ● Тестове    
  • 16. В България? ● Бързо и лесно с Рубин на Релси – Сава Чанков, openfest, София, 2006 ● > 60 човека в google групата ● Успешни проекти ● Споделен хостинг с Rails (space.bg) ● @skanev, @petyosi, @stan_bb, @rstankov    
  • 17. Възможностите за работа? ● Работа има и все повече се Rails-аджиите все предлага още са малко у ● Съществуващи нас сайтове ● Нови уеб проекти ● startup ● чуждестранни проекти    
  • 18. Как да се (на)учим? ● Apprenticeship patterns ● Приятел с опит ● railsmentors.org ● Четене на чужд код ● Build breakable toys ● Проекти с отворен код ● Стажантски програми    
  • 19. За новите поколения ● Ruby Summer Of Code 2010 – За ученици и студенти – стипендия в размер на $5000 (от дарения!) – Руби гурута за ментори   – Проекти с отворен код  
  • 20. Как да си намерим работа? Тя ще ви намери, но бъдете подготвени ● github.com – по-добро от CV ● workingwithrails.com ● Ruby on Rails: България ● Приятели ● Общност ● Събития (openfest, webtech и др.)    
  • 22. Собствен бизнес с Rails ● Getting Real - http://gettingreal.37signals.com ● Paul Graham - http://www.paulgraham.com ● Бъдете гъвкави С професионално отношение към доверие на клиента!*    
  • 24. Вдъхновение ● Steve Jobs, Standford University, 2005 How to live before you die ● Jeff Bezos, Princeton University, 2010 Gifts vs. choices    
  • 25. Благодаря     @deni_bel

Editor's Notes

  • #3: Тутуф е компанията, която със Сава Чанков основахме 2007 с идеята да се занимаваме изцяло с проекти на Rails. Всъщност сме от първите в България, които работят изцяло с Rails. Започнахме с една доста специфична система – Щ – система за управление на производството в модна фирма. Освен нея вече имаме 4 отделни уеб приложения, за различни клиенти В момента провеждаме кампания за набиране на кандидати за първата(поне доколкото ни е известно) стажантска програма по Rails в България. И засега се радва на доста добър интерес. Това е моя twitter, където може да ме намерите
  • #4: Ще ви разкажа повечко за Ruby On Rails. Като няма да навлизам в технически подробности и примерен код. Радо Станков ще го наблегне на тези страни в неговата презентация Ще видим какво е полезното в Rails Колко е лесно да се подкара Че може да се използва и за наистина сериозна работа Накрая ще ви дам отправна точка в източниците от където може да научите повече
  • #5: Първото полезно нещо, с което ще се запознаете, щом започнете да работите с rails е ruby. Страхотен език – динамичен език за програмиране, елегантен Следващото нещо е MVC. Вече стандартен архитектурен моде в повечето уеб фреймуърци на различни езици (php, java, python) Разделянето на логиката на модел, който се занимава с комуникацията с базата данни и най-често съдържа по-голямата част от бизнес логиката, контролера предоставя нужните действия, с които потребителя взаимодейства с приложението, изгледът визуализира приложението в удобен за потребителя формат Друго много важно разделение, което правят в rails е конвенцията за множество среди, в които може да се изпълнява приложените с различни настройки. Минимума са тези 3. Работейки по този начин, самия процес на работа се опростява значително. Нямате си представа колко културно се работи по този начин. В множество от софтуерните фирми у нас, дори и големите, в най-добрия случай има бета сървър. Ето един реален пример: разработчика работи по някаква нова функционалност, среща проблем и си дебъгва на екрана за да разбере какво се случва. В същия момент QA-ите тестват същото приложение на същата среда, тя е единствена освен производствената, и им се изправят косите от дебъг съобщенията. Всичко това нямаше да се случи, ако разработчика имаше development версия на своята машина или специална за случая такава, а QA-ите тестват върху вече готовата версия и в среда идентична на производствената. DB migrations са друго гениално нещо в rails – представляват скриптове, които променят структурата на базата данни когато създавате нов модел или променяте някои от колоните в таблицата. Миграциите имат 2 посоки up и down. С up правите новите промени, а с down връщате нещата към предишното им състояние. Разбира се, не винаги промените, които ви се налага да правите са обратими, но в повечето случай е така. Това подсигурява еднаква схема на базата данни на всички инстации на приложението и също предпазва от омазване. Ако има някакъв проблем и мирацията не може да мине – хвърля съобщение за грешка. REST – софтуерна архитектура работеща по HTTP протокола, оперира с ресури с уникален идентификатор в уеб (URI)‏ gems – библиотеки и плъгини за специфични задачи и операции, с отворен код. Самия rails е gem, както ще видим в следващия слайд. Пример за един от най-често използваните е will-paginate
  • #6: Същите тези хора от EngineYard са съставили списък с полезните източници, които да прочете човек, който иска да започне да се занимава с Rails. Не е изчерпателен, разбира се. Но винаги може да намерите повече информация и по стандартния начин
  • #7: А ето колко лесно се подкарва rails. Разбира се, според ОС, на която се инсталира командите варират. Дала съм пример с Ubuntu linux. Първо инсталираме руби. Избираме си коя версия да е. После инсталираме rubygems, командите зависят пак от ос и това дали са включени в дистрибуцията. После инсталираме самия rails Правим си приложение appname, указваме настройките за връзка с базата данни и стартираме включения в rails уеб сървър webrick. Можем да си говорим с приложението и през конзолата.
  • #9: На предишния слайд ви показах как се подкарва rails за собствени нужди на локалната машина. Сега ще ви разкажа какво се използва, когато rails задвижва сериозно приложение. В производство предпочитаното руби е т.н. REE, което е оптимизирано да работи по-добре от стандартно, особено с passenger. Ruby 1.9 също се използва, но аз нямам все още лични наблюдения. Passenger e модул към уеб сървъра, най-често apache, но се използва и nginx. Управлява rails процесите и позволява страшно лесно внедряване на приложенията. Capistrano e инструментът за автоматично внедряване. Когато нещата станат наистина сериозни има такива услуги като тези на EngineYard. Те предлагат т.н. Platform-as-a-service планове. Т.е. Дават ви среда за вашето приложение и то в облак. Дават множество инструменти за конфигуриране, мониторинг. Там са експертите в хостването на rails приложения.
  • #11: Основнията принцип на rails като уеб фреймуърк е, че се залага на конвенцията над конфигурацията. Това насочва хората да пишат по т.н. rails way като следвайки тези конвенции, се спестява много код и им позволява да се съсредоточат върху бизнес логиката и да не се занимават с технически подробности. Останалите принципи не са специфични само за Rails, но също стоят в основата му. Да се избягва повторение на код, Да се пише по-малко код (по-малко код в повечето случаи значи по-малко дефекти и проблеми)‏ Принципът на най-малката изненада, също е много важен ...