JavaRush /Курсы /Модуль 1: Web Core /Создание продуктов

Создание продуктов

Модуль 1: Web Core
1 уровень , 9 лекция
Открыта

10.1 «Люди больше не рождаются, их выращивают»

Ну что ж, раз вы все еще тут, то давайте продолжим. «И я покажу вам как глубока кроличья нора» (ц)

Давайте я расскажу вам, как происходит процесс разработки продукта. Мы пройдемся по шагам от самого верхнего, глобального уровня, до самого нижнего — написания кода. Думаю, вас ждет несколько интересных открытий…

Современные ИТ-продукты больше не пишут: их создают. Их собирают по частям из библиотек, фреймворков, сторонних программ и продуктов, или вообще используют удаленные платные или бесплатные интернет-сервисы.

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

Но первое, на что вы обратите внимание — это постоянные изменения. Вы больше не пишете программы: вы вносите в них изменения.

10.2 Постоянные изменения

Вы выйдете на работу и присоединитесь к команде из 20 человек, которая уже 5 лет работает над продуктом. Сейчас пользователям доступна его седьмая версия. И ваша задача будет вносить в этот продукт изменения. Небольшие, чтобы не отпугнуть нынешних активных пользователей.

И это будет непросто, ведь продукт уже работает. У него есть клиенты, и они платят деньги. Поэтому ломать ничего нельзя. Изменения в уже работающий продукт вносить в несколько раз сложнее, чем в новый. Для этого есть специальные стандарты, протоколы, миграции и утилиты. Сразу вспоминается анекдот:

Встречаются два старых друга: один стал механиком, второй хирургом... у каждого своя жизнь, заботы, радости... Обо всем друг другу рассказывают и тут речь заходит про зарплаты. Автомеханик говорит "Ну я 30ку в месяц получаю и очень этому доволен, а ты сколько?", кардиохирург говорит: "Ну я а примерно 100 тысяч за операцию"... Тут автомеханик заинтересовался "Странно, почему такая разница большая, вроде одно и тоже делаем с тобой — запчасти меняем", а хирург ему говорит: "Ну пойдем к машине, заводи"... механик заводит машину, хирург открывает капот и говорит механику "Вот, видишь двигатель работает? Поменяй! :)"

Даже если случилось чудо, и ваша команда целый год писала продукт с нуля и только после этого его отрелизила, знаете, что произойдет дальше?

Если ваш продукт станет успешным, то владелец продукта захочет его развивать. Выпустить новую версию, добавить некоторую функциональность. Ну или хотя бы провести несколько экспериментов. И знаете, что за этим последует? Изменения.

10.3 Ценность продукта

С точки зрения современной разработки продукта ценность имеет только тот код, который уже отрелизили, и та фича, которой пользуются пользователи. Если вы написали код, он где-то хранится, работает, но им не пользуются люди, то его ценность близка к нулю. Поэтому весь код должен как можно раньше попадать на production.

Ваш код должен пройти такие стадии:

  • Вы его написали и убедились, что он работает
  • Ваш TeamLead проревьюил его и добавил в основную ветку в Git
  • Тесты во время сборки программы показали, что вы не сломали ничего важного
  • Интеграционные тесты показали, что продукт работает как нужно
  • Тестировщик проверил этот код и дал добро на релиз
  • Затем нужно собрать новую версию продукта и отрелизить ее на сервере
  • Новую версию продукта нужно упаковать в Docker Images и отрелизить
  • Возможно, придется запустить миграционные скрипты и внести изменения в базу данных и/или другие третьесторонние решения
  • Затем нужно собрать логи на сервере, чтобы убедиться, что все работает как нужно
  • В случае внештатной ситуации, если вы что-то сломали, нужно откатить сборку назад, вернуть прежнее состояние базы данных и не потерять те действия, которые сделали пользователи, пока работали с нестабильной версией продукта

В большинстве компаний эти задачи сейчас решены: выстроены новые процессы, наняты специальные люди, введены специальные протоколы безопасности и стандарты контроля качества.

Чем крупнее компания, тем меньше времени проходит от написания кода до того момента, как он попадет на production и превратится в ценность — начнет приносить пользу людям.

Во большинстве компаний код проходит этот путь за две недели, но, есть компании, которые делают релизы каждую неделю, или даже каждый день. Особые уникумы — несколько раз в день.

Написанный код ничего не стоит. Ценность приносить только код, работающий на production.

Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Андрей Докучиц Уровень 12
25 апреля 2025
опечатка в предпоследнем абзаце - "Во большинстве...")