[Из песочницы] LESS? — мнение обывателя-верстальщика или дизайнера со стажем
Приветствую всех! Меня зовут Сергей, я живу в Самаре, мне 37 и я бородат, но только тогда, когда сила созидания побеждает во мне все остальные физиологические процессы… Сегодня я поделюсь с вами своим опытом практического использования LESS. Что уж говорить, LESS моден и, как известно, в IT среде используется всеми, кому не лень… иногда даже вопреки здравому смыслу.Что же такое LESS? Less — язык! Но язык ли это? Говоря словами обывателя-верстальщика: пишем некий код, компилируем его, а на выходе получаем все тот же CSS.… и тут мне почему-то сразу вспомнилось выражение коллеги-программиста Феди, с которым мы в шутку каждый раз испытываем мировоззрения друг друга. Так вот, он говорил: «Долой рюшечки! Вперед функционал!» Понятно, что для дизайнера эти слова — просто «ножом по сердцу».
Но мы немного отвлеклись и, в общем, суть не в этом.
Итак, Less.Less расширяет возможности CSS, поскольку позволяет задавать переменные, примешивания и т.д.– Так? Ну, то есть каждый сейчас согласился со мной? … так и слышу миллионный хор.Но по факту решение имеет и минусы.
Многие сторонники языка говорят, например, о таком использовании.
Пример:
Less
Задаем переменную цвета:
@base_color: #ccc; Дальше используем ее в элементах:
p { color: @base_color; } span { background-color: @base_color; } С точки зрения сторонников языка это удобно: чтобы поменять цвет всех элементов — изменил цвет в одном месте — и все.
С моей точки зрения — очень спорно:
Во-первых, как уже ранее говорил, банально — чтобы изменить цвет уже существующего элемента нужно найти элемент, который нужно поправить, затем найти ту переменную, к которой уже присвоен сам цвет. И таких переменных может быть десяток, и они могут быть все в разных, отдельно подключаемых файлах, число которых, как вы понимаете, также может исчисляться десятками. Во-вторых, аргумент сторонников о том, что удобно: «Изменил в одном месте — поправил все кнопки!» — это для людей, которые не знают или забыли, что такое пакетный реплэйс! Проще, быстрее и надежней найти сразу цвет #ccc и сделать «Replace All». Еще есть мнимое «удобство» less в том, что легко поменять цвет путем сложения или вычитания прямо в коде, но это опять же в кавычках — поскольку если у человека под рукой графический редактор + если он давно занимается версткой и знает наизусть основные коды цветов — ему не нужно ничего прибавлять или убавлять — он сразу прописывает код. Казалось бы, плюсы? Вот где действительно есть плюсы (как мне изначально показалось), так это в примешивании, когда в одну переменную задается огромное количество параметров (например, вендорные свойства а-ля -webkit-border-radius …), а потом эта переменная включается-примешивается внутрь используемых элементов — сильно сокращается код.Но задам вам вопрос: зачем сокращать код, когда он все-равно компилируясь раскрывается и развертывается до разобранного CSS-состояния? По факту получаем некую прослойку (иногда состоящую из множества файлов) непонятно для чего, которая тормозит поиск параметра, а на окончательный вид кода никак не влияет.
По-настоящему эффективен less может быть если год-два проводить общий рефакторинг кода, тогда да — наверное имеет смысл… Но даже тогда, на первый взгляд настоящие плюсы — на поверку, всего лишь фикция и трата драгоценного времени… Спросите, почему? Ответ: потому что это не полноценный язык и на выходе мы получаем все те же громоздкие конструкции CSS. То есть как бы мы не пытались сократить или оптимизировать — оптимизируем только прослойку.
Возможно Less вообще — маркетинговый ход, модный тренд, некий тайный сговор для раскрутки языка — часто слышу от программистов (некоторых программистов), что использование less — это банальная заточка проекта под программерское абстрактное мышление. Хотя чем программерское абстрактное мышление отличается от вообще абстрактного мышления или чем лучше оно от абстрактного мышления верстальщика / дизайнера — великая тайна, покрытая мраком.
Как теперь я обозначаю для себя LESS — инструмент, призванный облегчить работу программиста, если он не умеет верстать. Для верстальщика же — это равносильно: как для бегуна одеть вместо кроссовок калоши, ничего что постоянно слетают, зато не мокро.Все, изложенное выше — просто мое мнение, не имеет под собой умысла как-то вмешиваться в процесс разработки фанатов своего дела.Просто хотелось поделиться своими дизайнерскими буднями, надеюсь, не утомил.