Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ruby: интерпретируемый, динамичный, человеколюбивый

399 views

Published on

Введение в язык ruby. Базовые конструкции языка, примеры и немножко метапрограммирования

Published in: Software
  • Be the first to comment

Ruby: интерпретируемый, динамичный, человеколюбивый

  1. 1. RUBY Интерпретируемый, динамичный, человеколюбивый
  2. 2. ФИЛОСОФИЯ RUBY твой путь — твои решения
  3. 3. • Принцип наименьшей неожиданности • Минимальное время не исполнения программы, но разработки • Множество возможных путей решения задачи • Просто, но не примитивно • Программы должны писаться так, чтобы их понимал человек, и лишь иногда - машина
  4. 4. ОБЪЕКТНАЯ МОДЕЛЬ РУБИ вместо Адама — BasicObject
  5. 5. ВСЕ ОЧЕНЬ ХОРОШО! • Нет примитивных типов • Каждый объект - экземпляр класса • Нет абстрактных классов • Нет множественного наследования • Mixins предпочтительней наследования • Утиная типизация
  6. 6. Класс - это конструктор объектов (экземпляров класса, instances of class). Но и сам класс - это объект в цепочке этих конструкторов!
  7. 7. Модуль — это именованная группа, которая содержит методы, которые можно подмешивать к КлассуОбъекту
  8. 8. МОДУЛИ (КОНТЕЙНЕРЫ МЕТОДОВ)
  9. 9. ПОЛЬЗОВАТЕЛЬСКИЕ КЛАССЫ
  10. 10. ОСОБЕННОСТИ СИНТАКСИСА минимум управляющих конструкций
  11. 11. БАЗОВЫЕ ОПЕРАЦИИ
  12. 12. БАЗОВЫЕ КЛАССЫ String, Symbol, Numeric, Hash,Array
  13. 13. STRING
  14. 14. SYMBOL
  15. 15. NUMERIC
  16. 16. ARRAY
  17. 17. HASH
  18. 18. ENUMERATORS
  19. 19. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ http://rubular.com/
  20. 20. МЕТАПРОГРАММИРОВАНИЕ Создаем магию вместе с Ruby DSL
  21. 21. БЛОКИ
  22. 22. Proc и lambda: блоки с отложенным выполнением Proc lambda
  23. 23. DSL https://github.com/p0deje/watirsome
  24. 24. НЕКОТОРЫЕ ДИНАМИЧЕСКИЕ ВКУСНОСТИ define_method: method_missing: const_set:
  25. 25. EXCEPTIONS
  26. 26. • gem install rails => установить конкретный gem • gem list => получить список всех gems • … В консоли: В приложении: • require ‘rails’ => подключить rails gem БИБЛИОТЕКИ (GEMS)
  27. 27. • rvm, rbenv — это системы управления версиями ruby • bundler — это система управления пакетами (gems) ruby. RBENV, RMV, BUNDLER
  28. 28. СРЕДА РАЗРАБОКИ
  29. 29. https://github.com/bbatsov/ruby-style-guide RUBY STYLE GUIDE
  30. 30. ВО СЛАВУ RUBY!
  31. 31. ИЗВЕСНЫЕ ПРОЕКТЫ (via) http://designwebkit.com/ • Rails • HAML • Nokogiri • Cucumber • Rspec • Rake • Bundler • Capybara • Watir ИЗВЕСНЫЕ ГЕМЫ
  32. 32. ИНКАРНАЦИИ RUBY
  33. 33. ДОМАШНЕЕ ЗАДАНИЕ • Сгенерируйте массив со случайными числами и отсортируйте его, не используя метод :sort • Создайте объект, у которого будет метод, отличительный от всех остальных объектов этого же класса
  34. 34. • Изучаем Ruby, Фитцджеральд М. • Язык программирования Ruby, Флэнаган Д., Мацумото Ю. • Metaprogramming Ruby 2, Paolo Perrotta • Введение в Ruby ООП: http://nashbridges.me/introducing-ruby-oop • Модули ruby: http://habrahabr.ru/post/143990/ ПОЛЕЗНЫЕ МАТЕРИАЛЫ

×