Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Каша из шпал или как готовят рельсы в Progress Engine

Каша из шпал или как готовят рельсы в Progress Engine

Alexey Poimtsev

August 27, 2014
Tweet

More Decks by Alexey Poimtsev

Other Decks in Programming

Transcript

  1. Я не буду рассказывать о том… • Как использовать какой-то

    конкретный gem • Что надо пользоваться системами контроля версий • Что надо пользоваться issue/bug трекерами • Что надо сразу писать код хорошо, а не по правилу “Когда-нибудь переделаем” • Что не надо стесняться задавать вопросы, если вы чего-то не знаете или не понимаете
  2. Я буду рассказывать о том… • С какими проблемами мы

    столкнулись, прежде чем наладили процесс разработки в Progress Engine • Как мы победили эти проблемы • Какие уроки мы из этого вынесли …а также я немного расскажу про несколько интересных проектов, которые вам могут пригодиться в работе.
  3. • У заказчика почти никогда нет адекватного ТЗ • Заказчик

    редко может четко сформулировать требования к продукту • Разработчики и заказчик говорят на разных языках и часто не понимают друг друга
  4. • Возможность четко структурировать требования к проекту • Возможность использования

    тестов как ТЗ, в том числе и для использования в договоре • Возможность использования в связке с Capybara для интеграционных тестов
  5. Несколько реальных кейсов • Плохой - Клиент недоволен, gherkin нет

    • Средний - Клиент недоволен, gherkin есть • Хороший - Клиент доволен, gherkin есть
  6. • Заказчик постоянно что-то уточняет, у него нет четкого видения

    продукта • Заказчик меняет требования к продукту в каждой итерации • Меняются разработчики на проекте
  7. • Любые изменения в коде тестируются • 99% защита от

    случайных ошибок • Нет критической необходимости проверять весь код после внесения мелких правок
  8. • Единожды настроенные скрипты, которые могут использоваться многократно • Возможность

    описать в yaml-конфиге серверные задачи фактически любой сложности • Легкость обучения любого разработчика • Возможность локального тестирования в vagrant
  9. • Огромное количество повторяющегося кода(особенно в scaffold'ах) • Соответственно -

    тратится много времени на вычитывание кода в поисках ошибки
  10. • Не все верстальщики знают rails • При переносе готовой

    верстки в Rails-проект возможны ошибки
  11. • Проблема не-закрытого тэга останется в прошлом • Можно сделать

    заглушки на методы backend'а • Легко научить верстальщика без опыта в rails • Легко делать и деплоить даже статичные сайты через rsync
  12. • Многие зависимости уже не используются • Необходимо следить за

    совместимостью версий • Функциональность ряда gem’ов может быть написана двумя строками кода
  13. Сплошные плюсы • Open source • Вышли из Y-Combinator •

    Очень динамично развивающаяся экосистема • Core team быстро отвечает на вопросы
  14. Сплошные плюсы • Драйвера для многих языков программирования • Не

    забыты ruby (gem rethinkdb) и rails (gem nobrainer) • Единственная nosql БД с поддержкой join
  15. …но не все идеально • Нет триггеров и хранимых процедур

    • Нет инкрементального бэкапа • Нет нормального мониторинга
  16. …но не все идеально • Плохо проработаны механизмы миграции на

    новые версии • Авторы пока что не публикуют реальные референсы • Есть мелкие и не очень баги, впрочем - не мешающие использовать в production