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

Як працювати на Legacy проекті та не зійти із р...

Як працювати на Legacy проекті та не зійти із розуму

Avatar for Denys Kurets

Denys Kurets

May 20, 2017
Tweet

More Decks by Denys Kurets

Other Decks in Programming

Transcript

  1. Що таке Legacy? Два значення: • + Щось стабільне, щось

    варте наслідування, те що будуть використовувати нащадки * • - Поганий код, який ніхто не може викинути та переписати через ряд причин * https://www.youtube.com/watch?v=YruzQgWdv48
  2. Мій проект Z (колишній :)) • Ruby 1.8.7 (поточна версія

    2.4.1) • Ruby on Rails 2.3.5 (поточна версія 5.1)
  3. Ще проблеми • Duplicates • Low performance • Outdated infrastructure

    • A lot of problems • Nobody wants to introduce brand new problems
 

  4. Чому не хочуть переписувати • Нема грошей • Все працювало

    6 років, навіщо переписувати? • Нема розуміння, що корабель тоне • Ваш варіант…
  5. Баланс • Які вимоги до роботи команди є надмірними, а

    які справедливими ? • Дотримуватись “золотої середини” • Завжди памятати про стан проекту та те що він тоне і ставитись до цього по філософськи https://dou.ua/lenta/articles/when-you-are-done/
  6. Типовий workflow • Досліджуєш баг • Знаходиш причину • WTF?!!!

    Що за п…..с зробив це?!!! • git blame • От…!!!!!
  7. Чому це погано • Ви робите сумними себе • Ви

    робите сумними свою команду • Одного дня це може бути ваш колега :) • Різні обставини, різний рівень людей на той час, які писали код
  8. –Jan Dudulski “When you dive in to edit code, you

    are not fixing someone else's mess, you are fixing a mess.” https://monterail.com/blog/2014/fixing-legacy-code
  9. Перваги • Проект із реальними користувачами, які регулярно користуються сервісом

    та приносять йому гроші • Відносно спокійний темп роботи (хоча час від часу є бурі) • Дослідження чужого “поганого” коду позитивно впливає на майбутній кодінг
  10. Недоліки • Старі технології • Занепад власних тех. скілів •

    Іноді важкий психологічний стан • В більшості випадків марнування часу