Известная поговорка гласит, что тот, кто любит колбасу и интересуется политикой, не должен знать, как делается то и другое.
Те, кто занимается цифровизацией, неукоснительно придерживаются этого правила.
Вот, например, СУБД Oracle. Традиционно надёжная, используется ведущими корпорациями, лидер рынка, законодатель мод и вот это вот всё. Последнее время, правда, позиции её немного пошатнулись, но в мире она всё равно пока «намба ван» и ещё долгое время таковой останется.
А вот знаменитый
пост на портале YCombinator про то, как выглядит код этого продукта изнутри. Разумеется, его давно уже пишут индусы, поэтому качество у него соответствующее (кстати, как-то давно летел в командировку в Америку, в самолёте разговорился с девушкой из Индии и объяснил ей, что у нас называется идиомой «индийский код»; она этого, как ни странно, не знала). Пост описывает процесс исправления ошибки:
- Находишь место, где происходит ошибка.
- Пару недель разбираешься, при каких значениях многочисленных флагов и глобальных переменных она происходит.
- Добавляешь новый флаг для обработки ситуации и дописываешь пару строк кода.
- Запускаешь тесты. Тестов много, прогон всех тестов на кластере из двух сотен машин занимает сутки, а то и больше.
- Если повезёт, то «покраснеют» несколько десятков тестов, если не повезёт - несколько тысяч.
- Следующие пару недель подбираешь правильную комбинацию флагов, и наконец получаешь код, который проходит все тесты.
- Пишешь ещё десяток тестов, которые проверяют твоё исправление.
На смену Oracle идёт PostgreSQL, который написан светлоликими идеалистами в строгом соответствии_с. Однако коллеги, которые непосредственно занимаются разработкой, говорят, что постепенно состояние кодовой базы приближается к тому состоянию, которого Oracle достиг раньше.