Войти с помощью github
Форум /

Часто можно слышать, что в БЭМ длинные имена классов и это ОЧЕНЬ плохо. Решил проверить, что будет, если все имена классов сделать одно-/двухбуквенными.

Сделал минимизированную версию упрощённой мобильной выдачи поиска Яндекса, над которой работаю сейчас.

Итоговый код можно посмотреть на Я.Диске:

  • search.orig.html — исходный HTML
  • search.mini.html — все классы заменены на одно/двухбуквенные классы
  • search.hack.html — все классы заменены на атрибуты: было <div class="l x">, стало <div l x>; в css соответственно .l и .x заменены на [l] и [x]

Без гзипа всё красиво:

30125  search.orig.html
26105  search.mini.html
24731  search.hack.html

gzip (стандартные настройки), бессердечная сука, разницу сильно нивелирует:

 8530  search.orig.html.gzip.gz
 8258  search.mini.html.gzip.gz
 8244  search.hack.html.gzip.gz

Разница между оригиналом и валидным минимизированным вариантом — 3.2%. Между оригиналом и невалидным «хакерским» вариантом — 3.3%.

zopfli (стандартные настройки) нивелирует ещё сильнее:

 8136  search.orig.html.zopfli.gz
 7909  search.mini.html.zopfli.gz
 7921  search.hack.html.zopfli.gz

Разница между оригиналом и валидным минимизированным вариантом — 2.7%. Между оригиналом и невалидным «хакерским» вариантом — 2.65%. Валидный вариант жмётся лучше «хакерского».

Итог: учитывая, что по сети информация передаётся пакетами (стандартный размер пакета TCP — 1500 байт), все эти файлы укладываются в 6 пакетов и в такой минимизации нет никакого смысла. Разве что хочется максимально запутать код.