4. Индусы
if i.to_s.length == 1
суббота, 23 февраля 13 г.
5. Индусы
if i.to_s.length == 1
if i.is_a?(Integer) && (0 <= i && i < 10)
суббота, 23 февраля 13 г.
6. Китайцы
if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i
== 6 || i == 7 || i == 8 || i == 9)
суббота, 23 февраля 13 г.
7. Китайцы
if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i
== 6 || i == 7 || i == 8 || i == 9)
if 0 <= i && i < 10
суббота, 23 февраля 13 г.
9. Опрос хабр
Если вы рубист, то с какого языка вы перешли на Ruby?
150
112,5
75
37,5
0
PHP Java C# Другой язык
суббота, 23 февраля 13 г.
10. Быдлокодер
http://lurkmore.to/Быдлокодер
• VB, PHP, JavaScript, программирование
мышкой
• отсутствие языковой граммотности
• отсутствие понимание собственного кода
• много чего интересного по ссылке...
суббота, 23 февраля 13 г.
21. Пишите тесты
• В меру
• Научиться писать тесты = понять,
когда их писать не нужно
• http://goo.gl/1NHGU
суббота, 23 февраля 13 г.
22. Покрытие тестами
• Не стремитесь к 100% покрытию
• Достаточно acceptance-тестов
• Не тестируйте стандартные вещи,
плагины и т.п.
• Не используйте Cucumber
суббота, 23 февраля 13 г.
23. Какие тесты писать?
Интеграционные
тесты
Unit-тесты
суббота, 23 февраля 13 г.
24. Важность тестов в MVC
• Модели
• Контроллеры
• Хелперы
• Отображение
• Интeграционные
суббота, 23 февраля 13 г.
25. Kent Beck
(создатель TDD)
‘Мне платят за код, который работает,
а не за тесты.
Моя философия - тестировать
настолько мало, насколько это
возможно для достижения нужного
уровня уверенности’
суббота, 23 февраля 13 г.
28. Пример
class User < AR
validates :name, :presence => true
end
describe User
it { should validate_presence_of(:name) }
end
суббота, 23 февраля 13 г.
29. Пример
class User < AR
# validates :name, :presence => true
end
describe User
it { should validate_presence_of(:name) }
end
суббота, 23 февраля 13 г.
30. Пример
class User < AR
validates :name, :presence => true
end
describe User
it { should validate_presence_of(:name) }
end
суббота, 23 февраля 13 г.
31. TDD
Red
Refactor
Green
суббота, 23 февраля 13 г.
32. Используйте готовые
решения
• gems
• Шаблоны проектирования
• Сторонние сервисы
суббота, 23 февраля 13 г.
37. Переписать с нуля!
• Существуют все вышеописанные
проблемы
• Вы знаете проект очень хорошо
• Вам доставляет удовольствие
• Заказчик готов на это и сам просит вас
об этом
http://goo.gl/slGtV
суббота, 23 февраля 13 г.