Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   MSCC vs LESS(SCSS) ? (https://javascript.ru/forum/offtopic/37158-mscc-vs-less-scss.html)

megaupload 09.04.2013 20:19

MSCC vs LESS(SCSS) ?
 
Что лучше?
Мультилеерный модульный подход или препроцессоры?

monolithed 09.04.2013 22:58

Лучше BEM + Stylus

kobezzza 10.04.2013 00:15

Цитата:

Сообщение от monolithed (Сообщение 245167)
Лучше BEM + Stylus

Золотые слова:)

megaupload 10.04.2013 01:20

Цитата:

Сообщение от monolithed
BEM + Stylus

шутканул нет)? бем же вроде требует тоже компилятора, не?

kobezzza 10.04.2013 08:48

Цитата:

Сообщение от megaupload (Сообщение 245179)
шутканул нет)? бем же вроде требует тоже компилятора, не?

С тремином БЭМ связана тонна не понимания и даже в самом Яндексе многие путаются:)

А если кратко: БЭМ - паттерн "Блок Элемент Модификатор", главным принципом которого является, что любой UI компонент это блок, его составляющие кишки это его элементы, а его состояния - это его модификаторы. UI блок полностью инкапсулирован, т.е. он имеет свой независимый CSS (паттерн АНБ - "Абсолютно Независимые Блоки"), свою JS реализацию и свой шаблон и и лежит в отдельной папочке. Там ещё есть соглашения об именования и т.д. Паттерн хорош тем, что он эксплуатирует ООП в построении UI блоков (как раз, ты Максимус всё спрашивал, как используют наследования в UI) и ввиду чего такую структуру очень легко поддерживать и модифицировать.

Помимо прочего, Яндекс имеет свой фреймворк для реализации паттерна:
1) i-bem - JS фреймворк для реализации паттерна;
2) bem.html - клиентский шаблонизатор;
3) bemhtml - серверный шаблонизатор;
4) bem-tools - набор утилит для работы.

Использование этих фреймворков не обязательно, и я например использую свою реализацию, т.к. мне не нравится эта.

Цитата:

Сообщение от megaupload (Сообщение 245179)
шутканул нет)? бем же вроде требует тоже компилятора, не?

После всего выше сказанного, итог: никаких компиляторов нет, это просто паттерн и да - это очень удобно) ну а Stylus - это просто царь препроцессоров CSS.

ЗЫ: http://ru.bem.info/method/definitions/

megaupload 10.04.2013 10:43

Смотрел ли ты лекцию MSCC против БЭМ?

kobezzza 10.04.2013 10:54

Цитата:

Сообщение от megaupload (Сообщение 245203)
Смотрел ли ты лекцию MSCC против БЭМ?

Да. И более того, эти практики можно совмещать.

megaupload 10.04.2013 11:14

погоди, на беме же 1 слой, не?даже если создать второй слой то блоки с него не смогут влиять на блоки с первого слоя так как написано что бэм это МЕГАЧОТКАЯ инкапсуляция, а в MCSS блоки одного слоя могут влиять на блоки другого слоя

kobezzza 10.04.2013 11:25

Цитата:

Сообщение от megaupload (Сообщение 245210)
погоди, на беме же 1 слой, не?даже если создать второй слой то блоки с него не смогут влиять на блоки с первого слоя так как написано что бэм это МЕГАЧОТКАЯ инкапсуляция, а в MCSS блоки одного слоя могут влиять на блоки другого слоя

Ну у меня так: есть слой ресетов и слой страницы. Со слоём ресетов понятно, тупо сброс дефолтных параметров на нужные мне. А вот слой страницы как раз может влиять на блоки (с точки зрения CSS), разумеется в мерах разумного, например, на слое страницы говорится что если блок А вложен в блок Б, то добавляются отступы и т.д.

Сами блоки могут знать лишь про блоки, которые вложены в их структуру изначально (например блок b-select является дочерним к b-input, а также включать в себе блок b-drop-down), но слой страницы - это не блок, это просто общий контейнер который может вносить корректировки (но не в коем случае эти корректировки не должны работать с элементами или модификаторами блока), инкапсуляция блоков при этом сохраняется.

megaupload 10.04.2013 11:39

И что на что влияет не очевидно так как нет общих правил для этих связей и нет места где их можно указать и понятно только тебе и хранится у тебя в голове как я понял)?

п.с. пасоны, я кончил


Часовой пояс GMT +3, время: 15:10.