Complete ruby code

2,674 views

Published on

Что делать, чтобы повысить качество кода

Published in: Technology

Complete ruby code

  1. 1. Совершенный Ruby код http://goo.gl/g4uFT @ka8725 Андрей Колешкосуббота, 23 февраля 13 г.
  2. 2. Моя активность Поддержка, сделал Контрибьютор с нуля • redmine_s3 • locomotiveCMS • get_or_build • inherited_resources • railsguides.net • deviseсуббота, 23 февраля 13 г.
  3. 3. Проблемы кодасуббота, 23 февраля 13 г.
  4. 4. Индусы if i.to_s.length == 1суббота, 23 февраля 13 г.
  5. 5. Индусы if i.to_s.length == 1 if i.is_a?(Integer) && (0 <= i && i < 10)суббота, 23 февраля 13 г.
  6. 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. 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 г.
  8. 8. Знаниясуббота, 23 февраля 13 г.
  9. 9. Опрос хабр Если вы рубист, то с какого языка вы перешли на Ruby? 150 112,5 75 37,5 0 PHP Java C# Другой языксуббота, 23 февраля 13 г.
  10. 10. Быдлокодер http://lurkmore.to/Быдлокодер • VB, PHP, JavaScript, программирование мышкой • отсутствие языковой граммотности • отсутствие понимание собственного кода • много чего интересного по ссылке...суббота, 23 февраля 13 г.
  11. 11. Проблемы архитектурысуббота, 23 февраля 13 г.
  12. 12. Проектированиесуббота, 23 февраля 13 г.
  13. 13. Проектирование Не но! на деж де На жн о!суббота, 23 февраля 13 г.
  14. 14. Сложные проблемысуббота, 23 февраля 13 г.
  15. 15. Cложные проблемы Не идите прямо!суббота, 23 февраля 13 г.
  16. 16. Проблемы тестированиясуббота, 23 февраля 13 г.
  17. 17. Нету тестов? Не беда!суббота, 23 февраля 13 г.
  18. 18. Нету тестов? Не беда! Не проект!суббота, 23 февраля 13 г.
  19. 19. Последствия • Невозможно добавить фичу • Фикс одного бага создает два бага • Рефакторинг невозможен • Код попахиваетсуббота, 23 февраля 13 г.
  20. 20. Пути решения проблемсуббота, 23 февраля 13 г.
  21. 21. Пишите тесты • В меру • Научиться писать тесты = понять, когда их писать не нужно • http://goo.gl/1NHGUсуббота, 23 февраля 13 г.
  22. 22. Покрытие тестами • Не стремитесь к 100% покрытию • Достаточно acceptance-тестов • Не тестируйте стандартные вещи, плагины и т.п. • Не используйте Cucumberсуббота, 23 февраля 13 г.
  23. 23. Какие тесты писать? Интеграционные тесты Unit-тестысуббота, 23 февраля 13 г.
  24. 24. Важность тестов в MVC • Модели • Контроллеры • Хелперы • Отображение • Интeграционныесуббота, 23 февраля 13 г.
  25. 25. Kent Beck (создатель TDD) ‘Мне платят за код, который работает, а не за тесты. Моя философия - тестировать настолько мало, насколько это возможно для достижения нужного уровня уверенности’суббота, 23 февраля 13 г.
  26. 26. Тесты после кода? Нет!суббота, 23 февраля 13 г.
  27. 27. Тесты после кода? Нет! Да!суббота, 23 февраля 13 г.
  28. 28. Пример class User < AR validates :name, :presence => true end describe User it { should validate_presence_of(:name) } endсуббота, 23 февраля 13 г.
  29. 29. Пример class User < AR # validates :name, :presence => true end describe User it { should validate_presence_of(:name) } endсуббота, 23 февраля 13 г.
  30. 30. Пример class User < AR validates :name, :presence => true end describe User it { should validate_presence_of(:name) } endсуббота, 23 февраля 13 г.
  31. 31. TDD Red Refactor Greenсуббота, 23 февраля 13 г.
  32. 32. Используйте готовые решения • gems • Шаблоны проектирования • Сторонние сервисысуббота, 23 февраля 13 г.
  33. 33. Парное программирование С котом Aaron Patterson (@tenderlove)суббота, 23 февраля 13 г.
  34. 34. Продумывайте решение • Консультируйтесь у знающих • Вытягивайте инфу у заказчика до последней мелочи • Конструируйтесуббота, 23 февраля 13 г.
  35. 35. Переписать с нуля?суббота, 23 февраля 13 г.
  36. 36. Переписать с нуля?суббота, 23 февраля 13 г.
  37. 37. Переписать с нуля! • Существуют все вышеописанные проблемы • Вы знаете проект очень хорошо • Вам доставляет удовольствие • Заказчик готов на это и сам просит вас об этом http://goo.gl/slGtVсуббота, 23 февраля 13 г.
  38. 38. Просвещайтесьсуббота, 23 февраля 13 г.
  39. 39. Прочитайте эту книгу!суббота, 23 февраля 13 г.
  40. 40. Вопросы? @ka8725 Андрей Колешкосуббота, 23 февраля 13 г.

×