Для формирования долгосрочных отношений ЭБС имеет критическое значение. Все мы иногда ошибаемся и кого-то подводим. Если у вас много средств на ЭБС, то случайная ошибка не приводит к разрыву отношений, давая время на их «выравнивание».
Костыль — это некоторое техническое решение задачи, которое можно быстро применить, но которое будет в будущем препятствовать доработкам системы и исправлению ошибок. Часто костыли сами по себе являются источниками ошибок.
Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта?
Программист: ну, представь, что ты писатель и поддерживаешь проект «Война и мир». У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь «шёл дождь», сохраняешь, вылетает сообщение об ошибке «Наташа Ростова умерла, продолжение невозможно». Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение «Поручик Ржевский умер.» Выясняется, что он в следующей главе облокачивается о столб, которого уже нет…
Если взять книгу Джоэла Спольски «Джоэл о программировании», то там есть очень классный пример, рассказывающий о том, почему сейчас есть такой продукт, как MS Excel, а вот бывшего лидера на рынке Lotus 123 уже давно нет. Когда-то давно, при выходе нового центрального процессора (CPU), MS Excel, выполненный на костылях и кое-как под новую версию CPU, вышел немножко раньше новой версии Lotus 123. И занял весь рынок, уничтожив монополиста. Не потому, что был лучше, совершенней либо еще что-то, просто он был первый.
Вот тут самое время вспомнить об «инфляции». За счет некоторой гонки технологий информационная система может устаревать и переставать отвечать требованиям текущего времени. В какой-то момент разрыв между возможностями и требованиями может стать непреодолимым за один прыжок. Это тоже «технический дефолт».
Помню, как-то нужно было на python реализовать выгрузку каталога номенклатуры во много сотен тысяч позиций с изображениями и характеристиками в zip-архив с XML-файлом и изображениями (формат CommerceML). Беда в том, что архив весил несколько гигабайт, исходные данные много больше, доступа к жёстким дискам и файловым хранилищам не было, оперативной памяти было в доступе на 1−2 гигабайта. Ну, мы сделали потоковую отдачу файла в zip-формате, не смотря на то, что zip потоковой архивации группы файлов никогда не предполагал. Для этого пришлось скопировать и творчески переработать библиотеку архивации в zip. Готового решения под это тогда не было.
Ну и просто к слову. В книге «банды четырёх» (Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес) «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» изданной в 1994 году тема паттернов проектирования раскрыта глубоко и подробно. Но хорошему техническому специалисту придётся её прочитать минимум дважды, чтобы усвоить материал. Просто знать названия и описание паттернов не достаточно, нужно понимать откуда и зачем они появились.
Кардиохирург приезжает в автосервис, ему работяга машину чинит, потом говорит:
— Слышь, мужик, вот я мотор перебираю — и ты мотор перебираешь, только человеческий — почему тебе платят в разы больше?
Кардиолог кивает, идет к машине, включает зажигание и говорит работяге:
— А попробуй, при работающем двигателе теперь — перебери!
Из сети