Вот несколько выводов из книги Майкла Найгарда Release It! об анти-шаблонах емкости, получившей награду Jolt Cola Award. давайте приступим!

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

Неиспользуемое пространство в HTML — еще одно место, где могут накапливаться отходы. Пробелы не следует считать свободными при форматировании HTML, так как новые строки могут накапливаться и составлять огромную часть размера файла. Остерегайтесь избыточных изображений-разделителей и html-таблиц. Опустите бесполезные символы и ищите способы замены CSS, так как накладные расходы будут намного меньше.

Найгард использует идею эвтрофикации, старения озера, как аналогию с илом, который со временем может накапливаться в базе данных. Исторические данные, т. е. журналы, следует очищать последовательно и с разумной скоростью по мере их накопления, чтобы избежать размещения ненужной информации в производственной среде. Быстрый рост таблиц в базах данных всегда должен находиться под пристальным вниманием и рассматриваться для разделения, чтобы они не разрастались до огромных размеров.

Файлы cookie являются последним предметом внимания здесь. Файлы cookie никогда не должны использоваться для хранения анонимных постоянных данных. Найгард использует конкретные примеры Java, но более общие проблемы с этим включают возможность подорвать безопасность приложения или браузера, подрывая значение файла cookie. Файлы cookie также могут раздуваться и становиться слишком большими, создавая проблемы с производительностью в масштабе. В целом, использование небольших файлов cookie и их использование для «идентификаторов, а не целых объектов» может уберечь вас от неприятностей.

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