All streams
Search
Write a publication
Pull to refresh
30
0.2
Андрей Ч. @Andchir

PHP/Python/JS Full Stack Developer

Send message
Я считаю, что глобальные классы вполне можно использовать, но с ограничениями. Например для ссылок разного цвета — не вижу ничего плохого. А для класса .active это, конечно, очень плохо. Как в примере из документации БЭМ:
.item
{
    padding: 4px 10px;
    color: black;
}

.active
{
    font-weight: bold;
    background: #ffc7c7;
}


А потом вы в него добавите какой-нибудь ещё стиль для ссылки – и его автоматически (и обычно – незаметно) подхватит то самое «где-нибудь ещё».
В моем примере класс .blue описывает только цвет, пихать в него какие-то дополнительные стили будет лишним. Всё зависит от конкретного случая.

Две ссылки, одна из которых синего цвета:
<div class="article-author">
    <span><a class="name" href="">Name</a></span>
    <span><a class="site blue" href="">Name</a></span>
</div>


.blue { color: blue; } /* будем использовать повторно в разных блоках */
.article-author a.name,
.article-author a.site { font-weight: bold; }
.article-author a.site { font-style: italic; }

Чем это опасно? Замечу, что классы .name и .site я могу использовать в других блоках, но описывать их тоже внутри родителя. Тут есть семантика, а в БЭМ семантика страдает.
Поздравляю, вы написали имена классов, соответствующие БЭМ-методологии!
Здесь есть некоторые «идеи БЭМ». Точнее обошлось без жестких правил БЭМ, но с теми же положительными качествами. Поэтому я и писал выше «В БЭМ есть не плохие идеи, но всё хорошо в меру».

А если ссылок внутри author будет две, разных?
Вот тут как раз начнется самое интересное :) По БЭМу мне нужно будет делать примерно так:
<span class="article__link-author-wrapper"><a class="article__link-author_blue" href="">Name</a></span>


А без БЭМа так:
<span><a class="blue" href="">Name</a></span>

В стилях класс .blue можно описать один раз только цвет. А если есть какие-то особенности для блока .article .article-author, то нужно описать эти стили с учетом вложенности.

.blue { color: blue; }
.article-author a.blue { font-style: italic; font-weight: bold; }
Имя класса в БЭМ семантическое и отображает суть элемента.
Любое имя класса должно отображать суть элемента.

Ваш пример у опытного верстальщика будет выглядеть примерно так:
<body>
    <div class="page-wrapper">
        <div class="page-content">
            <div class="row">
                <div class="article">
                    <div class="article-title">
                        <div class="article-author"><span><a href="">Name</a></span></div>
                        <div class="article-subtitle"><p></p></div>
                    </div>
                    <div class="article-body">
                        <h2></h2>
                        <p>
                            <a href=""></a>
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

Если надо CSS, то напишу позже, пока нет времени, но думаю и так понятно.
то, чтобы у этой ссылки для какого-нибудь случая поменять цвет, вам придётся либо повторять весь этот селектор
А в БЭМ не придется? Там класс это и есть повторение селектора со всеми вложенностями. Просто точка и пробел заменены на двойное подчеркивание.
либо использовать !important.
В вашем примере да, потому что его писал дилетант. Опытный верстальщик такого не напишет.
Когда вижу css типа такого… хочется плакать.

<a class="link link__control menu-list__link menu-list__link_type_simple menu-list__link_size_small i-bem"></a>

А от такого не хочется плакать? Это взято с сайта ru.bem.info. Именно так выглядит набор костылей, о котором говорит автор данной статьи. Да, возможно, быстрее написать новый класс и воткнуть его в длинный список, чем учитывать все зависимости. Но лучше всё-таки потратить время и переписать нужный участок, т.к. в конечном итоге получится свалка в HTML и в CSS. В БЭМ есть не плохие идеи, но всё хорошо в меру.
выполняется минимум один-два раза
Как-то очень туманно. Ценность такой информации под вопросом. Сам я всегда проверяю сколько раз выполняются фильтры и т.п. Выполняется столько сколько нужно, никаких скрытых повторных выполнений не встречал.
PHP по популярности стоит рядом с JavaScript. Говнокода на JS написано ни чуть не меньше, порог вхождения тоже примерно одинаковый. Почему же такие статьи не пишут про JS? По-моему побудитель писать такие статьи — стадный инстинкт.
нет обновлений уже 2 месяца

С такими критериями список инструментов будет пустым. Даже год для хорошего инструмента не срок.
Не вижу бага.
Все содержание верхней части страницы отображается только после загрузки указанных далее ресурсов.
Вы сделали точно по совету гугла, избавились от файла и встроили в код, теперь загружать отдельный файл (делать http запрос) не нужно.
Для скриптов есть ещё атрибут async.
Картинка


Странный приоритет. Стоит ли голосовать…
Спасибо. Ещё буду дорабатывать.
Вася, давай без обид. В хабе MODX очень редко появляются статьи. И все они мне интересны, не зависимо от автора. Сейчас ты протестировал скорость PHP, а не шаблонизатора. Главное в шаблонизаторе это работа со вcякими IF/ELSE.
Если всё, что ты сделал работает без танцев с бубном (как у аналогов), то это большой плюс. Как я понял так и есть. Идея очень хорошая. Вот только название поправишь на TplTools и буду всем советовать. Честно.
Тогда смысла в тесте нет. Давай будем теоретизировать, результаты теста убирай.
Редактирование для таких случаев и придумали. Мы с тобой одновременно написали комментарии.
А теперь, давайте немного усложним чанки
Зачем же «не много». Надо хорошенько усложнить. Это же не сложно.
Специально для меня не надо. Думаю это всем интересно. Спасибо.
Как обычно кто-то, наверняка, заминусит
Да как обычно завистники напишут: «а где циферки, которые показывают разницу скорости». Но Это ж только завистникам нужны циферки :) Ну и шаблоны… парсеры… PDO — как-то не сходится смысловой ряд, это тоже мелочь…
Очень мощный язык шаблонов и элементов, дополнительные поля (TV) и расширения – все это уже готово для использования в будущем.
Здесь пропущена важная информация:
"… и расширения как ContentBlocks..." (из оригинала)

Если они хотят двигаться в этом направлении, то это радует.
Ты готов на сторону Фабрики встать
Вот ты опять соврал, Коля. Я не вставал на сторону Фабрики. Для меня ты и Фабрика стоите рядом, на одном уровне (моральном).
Да, Коля, мучаюсь. Пытаюсь хоть немножко вразумить людей, чтобы слово «справедливость», которое ты упомянул в своей статье, было не пустым словом.

Information

Rating
2,806-th
Location
Карелия, Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer, Fullstack Developer
Middle
From 200,000 ₽
Python
JavaScript
Angular
PHP
Django
Linux
SQL
MongoDB