Две темы на форумах, которые обсуждают

20 Сентября (ред)

Спросите HN: Унаследовал худшую кодовую и техническую команду, которую я когда-либо видел. Как это исправить?

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

  • этот код приносит более 20 миллионов долларов дохода в год

  • он работает на PHP

  • он разрабатывался в течение 12 лет непосредственно на производстве без контроля версий

  • он не использует композитор или какое-либо управление зависимостями. Это все require_once.

  • он не использует никакой фреймворк

  • маршрутизация управляется исключительно как перезапись в NGInX (конфиг NGInX составляет около 10 000 строк)

  • ни один код никогда не удалялся. Вещи просто добавлены. Я понимаю, что причина этого в том, что он был разработан непосредственно на производстве, а удаление вещей слишком рискованно.

  • структура базы такая же каша, никаких миграций и т.д. При добавлении столбца из-за объема данных добавляют новую таблицу с джойном.

  • JS и CSS одинаковы. Несколько версий jQuery сражаются друг с другом в зависимости от того, на какой странице вы находитесь или даже на одной странице.

  • конечно, нет шаблона MVC или любого другого шаблона. Нет библиотеки шаблонов. Это стиль PHP 2003.

  • Во многих местах я вижу контроллеры, такие как файлы, выполняющие запросы curl к своему собственному API-интерфейсу (через доменное имя, а не localhost), выполняющие авторизацию oauth и т. д. Просто для получения пунктов меню или списка продуктов…

  • нет кеширования (но есть memcached, но используется только для сессий…)

  • команда 3 человека, совсем младшая. Один бэкенд, один фронт, один iOS/android. Сопротивление изменениям огромно.

  • производительность ужасна, что понятно. Беспорядок слишком велик, чтобы можно было что-то построить.

У этого бизнес-подразделения довольно агрессивная дорожная карта, поскольку руководство и штаб-квартира не имеют реального представления об этих блокировщиках. А после COVID бюджет действительно ограничен.

Я знаю, что необходимо полностью переписать, но как это сбалансировать?

https://news.ycombinator.com/item?id=32883596


Какой смысл иметь систему голосов за и против, когда большинство пользователей социальных сетей идиоты?

С различными ответами вида:

Ты, наверное, тоже идиот, постарайся не волноваться об этом.

reddit.com

Evg Evg + 4.4k

2 Ответа

  1. German German 20 Сентября

    Прелестно, прелестно. Две эти темы шедевр!

  1. Adre Adre 20 Сентября (ред.)

    Разместите его на Git, а затем осторожно и постепенно начать исправлять проблемы. В зависимости от проекта это может занять год или несколько лет, что неплохо. Однако, основная проблема тут не в этом, а чтобы найти одобрения и ресурсы от руководства проекта.