Your SlideShare is downloading. ×
0
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Rapid application development in Ruby on Rails
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Rapid application development in Ruby on Rails

340

Published on

CodeCamp 2010, Kyiv

CodeCamp 2010, Kyiv

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
340
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Быстра разработка приложений на Ruby on Rails Быстро - понятие растяжимое. Цена разработки и сопровождение кода. Представьте себе стол.
  • 2. Я представил себе такой...
  • 3. У нас такие же разные представления о понятии скорости разработки
  • 4. Разработка приложений через тестирование BDD, TDD
  • 5. Сначала тест, потом код.Почему так, а не иначе и почему это важно?!
  • 6. Shoulda, CucumberМодульные, функциональные тесты. Тестирование высокого уровня
  • 7. class BidTest < ActiveSupport::TestCase context with Bid instance do setup {@bid = Factory(:bid)} subject {@bid} should_belong_to :author, :broker, :client should_belong_to :section, :unit, :currency should_validate_presence_of :code, :name, :content, :workflow_state should_validate_presence_of :price, :min_quantity, :max_quantity should_validate_numericality_of :price, :min_quantity, :max_quantity should_validate_uniqueness_of :code context with quantity do setup {@bid = Factory.build(:bid, :max_quantity => 1, :min_quantity => 100 ) } subject { @bid } should("have :max_quantity greater then or equal :min_quantity") { assert ! @bid.save } end end endend
  • 8. class Bid < ActiveRecord::Base belongs_to :author, :class_name => User, :foreign_key => :author_id belongs_to :section, :counter_cache => true ... belongs_to :unit belongs_to :currency def validate if self.min_quantity.to_i > self.max_quantity.to_i errors.add(:min_quantity, "cant be greater then max_quantity") end end named_scope :recent, :limit => 10, :order => :created_at descend
  • 9. language: uk Cucumber. FeatureФункціонал: Вхід Для того, щоб отримати доступ до захищених розділів сайта, користувач повинен увійти в систему Сценарій: Користувач успішно здійснив вхід Нехай є користувач, зареєстрованний як "user@example.com/password" Якщо я йду за адресою "/users/sign_in" І я пишу "user@example.com" в "user_email" І я пишу "password" в "user_password" І я натискаю "Sign in" То я повинен побачити "Ви успішно увійшли до системи." Сценарій: Користувач успішно здійснив вихід Нехай є користувач, зареєстрованний як "user@example.com/password" Нехай я зайшов як "user@example.com/password"
  • 10. Cucumber. Step definitionsЯкщо /^я йду за адресою "(.*)"$/ do |link| visit (link)endЯкщо /^я пишу "([^"]*)" в "([^"]*)"$/ do |value, field| fill_in field, :with => valueendЯкщо /^я натискаю "([^"]*)"$/ do |button| click_button(button)endТо /^я повинен побачити "(.*)"$/ do |text| assert page.has_content?(text)end
  • 11. Cucumber. Step DefinitionsНехай /^є користувач, зареєстрованний як "(.*)/(.*)"$/ do|email, password| Factory(:user, :email => email, :password => password)endНехай /^я зайшов як "(.*)/(.*)"$/ do |email, password| Якщо %{я йду за адресою "/users/sign_in"} І %{я пишу "#{email}" в "user_email"} І %{я пишу "#{password}" в "user_password"} І %{я натискаю "Sign in"} То %{я повинен побачити "Ви успішно увійшли до системи."}end
  • 12. Autoest & RedGreen Сделать красное зеленым.Код сам скажет где ему плохо. Код разговаривает с вами. ... это не трава...
  • 13. Рефакторинг - это не больно. "Работает - не трогай" - это не наш метод!!!
  • 14. Fakeweb, WebMock, netrecorder, mochaWEB - в отдельно взятом тазике. Моделируем ответы сервисов.Ваша индивидуальная матрица.
  • 15. RakeТруд машин на плечи женщин!
  • 16. Annotate, RCov, Railroad Код под микроскопом
  • 17. rdoc, sdocДокументирование
  • 18. gem, github, rubygems, gemcutter Время собирать камни
  • 19. APITwitter, LiveJournal, Buzz, OpenID, oAuth, Yahoo,Imdb, geoapi, Google Maps etc.
  • 20. ORM. Database AgnosticMySQL, Oracle, PostgreSQL, SQLite3
  • 21. IDE VIM, Emacs, TextMait, Redcar,NetBeans,(for Rails), Aptana(Eclipse), RubyMine(IDEA), 3rdRail(Borland)
  • 22. Развертывание приложений Capistrano
  • 23. Спасибо за внимание! Roman V. Babenko http://romanvbabenko.comhttp://romanvbabenko.blogspot.com CodeCamp 2010

×