JavaRush /Курси /Kotlin SELF /Створення продуктів: як народжуються сучасні ІТ-продукти

Створення продуктів: як народжуються сучасні ІТ-продукти

Kotlin SELF
Рівень 8 , Лекція 6
Відкрита

1. «Люди більше не народжуються — їх вирощують»

Що ж, раз ви досі тут, — продовжуймо. «І я покажу вам, наскільки глибока кроляча нора».

Розповім вам, як відбувається розробка продукту. Пройдемося крок за кроком — від найвищого, глобального рівня й аж до найнижчого, тобто до написання коду. Думаю, попереду на вас чекає кілька цікавих відкриттів…

Сучасні ІТ-продукти вже майже не «пишуть» — їх створюють. Їх складають із частин: бібліотек, фреймворків, сторонніх програм і сервісів. А інколи взагалі просто підʼєднують віддалені платні або безплатні інтернет-сервіси.

Сучасний продукт — це цілий зоопарк технологій, сервісів, рішень і процесів. Частину роботи виконують люди, частину — автоматизовано. А решту 90 % здебільшого беруть на себе хмарні сервіси в дата-центрах. Світ уже не той, що раніше.

І перше, що ви помітите, — це постійні зміни. Ви більше не пишете програми — ви їх змінюєте.

2. Постійні зміни

Ви прийдете на роботу й приєднаєтеся до команди з 20 людей, яка вже 5 років розвиває продукт. Зараз користувачам доступна сьома версія. А вашим завданням буде вносити в цей продукт зміни — невеликі, щоб не відлякати нинішніх активних користувачів.

І це буде непросто, адже продукт уже працює. У нього є клієнти, і вони платять гроші. Тому ламати нічого не можна.

Вносити зміни в продукт, що вже працює, у кілька разів складніше, ніж у новий. Для цього існують спеціальні стандарти, протоколи міграції та утиліти. Одразу згадується анекдот:

Зустрічаються двоє старих друзів: один став механіком, другий — хірургом… У кожного своє життя, турботи, радощі… Розповідають одне одному новини — і тут мова заходить про зарплати. Автомеханік каже: «Ну, я 30-ку на місяць отримую і дуже цим задоволений, а ти скільки?». Кардіохірург відповідає: «Ну, я приблизно 100 K за операцію…». Тут автомеханік дивується: «Дивно, чому така велика різниця? Наче одне й те саме робимо — запчастини міняємо». А хірург каже йому: «Ну, ходімо до машини — заводь…». Механік заводить машину, хірург відкриває капот і каже: «Бачиш, двигун працює? Поміняй!»

Навіть якщо станеться диво й ваша команда цілий рік писатиме продукт із нуля, а реліз випустить лише після цього — знаєте, що буде далі? Якщо продукт стане успішним, власник захоче його розвивати: випустити нову версію, додати якусь функціональність або хоча б провести кілька експериментів. І знаєте, що йтиме слідом? Зміни.

3. Цінність продукту

З погляду сучасної розробки цінність має лише той код, який уже випустили в реліз, і та можливість, якою справді користуються люди. Якщо ви написали код, він десь зберігається й працює, але ним ніхто не користується, — його цінність близька до нуля. Тому весь код має якомога раніше потрапляти на «production».

Ваш код має пройти такі етапи:

  • Ви його написали й переконалися, що він працює.
  • Ваш тімлід провів ревʼю й додав зміни в основну гілку в Git.
  • Тести під час збирання програми показали, що ви не зламали нічого важливого.
  • Інтеграційні тести показали, що продукт працює як треба.
  • Тестувальник перевірив цей код і дав добро на реліз.
  • Потім потрібно зібрати нову версію продукту й випустити її на сервері.
  • Нову версію продукту потрібно запакувати в Docker-образи й зарелізити.
  • Можливо, доведеться запустити міграційні скрипти й внести зміни в базу даних та/або інші сторонні рішення.
  • Потім потрібно зібрати логи на сервері, щоб переконатися, що все працює як треба.
  • У разі позаштатної ситуації, якщо ви щось зламали, потрібно відкотити збирання назад, повернути попередній стан бази даних і не втратити дії, які встигли зробити користувачі, поки працювали з нестабільною версією продукту.

У більшості компаній ці завдання вже розвʼязані: вибудувано процеси, найнято спеціальних людей, запроваджено протоколи безпеки та стандарти контролю якості. Що більша компанія, то менше часу минає від написання коду до моменту, коли він потрапляє на «production» і перетворюється на цінність — починає приносити користь людям.

У більшості компаній код проходить цей шлях за два тижні. Втім, є компанії, які роблять релізи щотижня або навіть щодня. А особливі «унікуми» — по кілька разів на день.

Написаний код нічого не вартий. Цінність приносить лише код, що працює на «production».

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ