{"action":"created","comment":{"url":"https://api.github.com/repos/bem/bem-method/pulls/comments/31152849","id":31152849,"diff_hunk":"@@ -0,0 +1,355 @@\n+# FAQ\n+\n+* [В чем преимущества БЭМ перед другими модульными решениями для CSS?](#bem-benefits)\n+* [В чем разница между БЭМ и Web Components? Что будет с БЭМ-методологией, если Web Components станет новым стандартом веб-разрабоки, принятым W3C?](#bem-vs-web-components)\n+* [При переходе на методологию БЭМ можно забыть о Bootstrap? В БЭМ есть всё, нужно только изучить?](#bem-vs-bootstrap)\n+* [Насколько БЭМ подходит для поддержки долгосрочных проектов?](#bem-for-huge-projects)\n+* [В каком случае создавать блок, в каком элемент?](#block-vs-elem)\n+* [Почему в БЭМ не рекомендуется создавать элементы элементов (`block__elem1__elem2`)?](#bem-elem-hierarchy)\n+* [Зачем нужен `i-bem.js`, если можно писать JavaScript для независимых блоков на привычном `jQuery`?](#i-bem-vs-JS)\n+* [Почему в БЭМ не приветствуются каскады в CSS?](#css-cascade)\n+* [Почему БЭМ использует длинные имена классов?](#long-name)\n+* [Почему в БЭМ не рекомендуется использовать комбинированные селекторы для создания CSS-правил к модификатору?](#comb-css)\n+* [Почему нельзя писать `<div class=\"block_mod\">` вместо `<div class=\"block block_mod\">`, если имя модификатора уже содержит всю информацию о блоке?](#block-name)\n+* [Можно ли создавать глобальные модификаторы для блоков?](#global-mod)\n+* [Почему БЭМ не рекомендует общий сброс стилей (reset)?](#global-reset)\n+* [Почему в БЭМ не используют пользовательские теги (custom tags) для формирования CSS-правил блока?](#tag-css)\n+* [Можно ли объединять тег и класс в селекторе (например, `button.button`)?](#tag-class-css)\n+* [Почему в названии модификатора не рекомендуется указывать предоставляемое им CSS-свойство?](#value-css)\n+\n+\n+**Не нашли ответ?** — [Задайте вопрос команде на форуме](https://ru.bem.info/forum/)\n+\n+<a name=\"bem-benefits\"></a>\n+## В чем преимущества БЭМ перед другими модульными решениями для CSS? \n+\n+>В веб-разработке используются разные модульные решения для CSS, например, OOCSS, AMCSS, SMACSS, SUITCSS. Почему стоит выбрать БЭМ для своего проекта?\n+\n+Следует сразу отметить, что БЭМ-методология работает не только с CSS.\n+\n+БЭМ — это компонентный подход к разработке в целом. Аналогично WEB Components он позволяет выражать интерфейс независимыми компонентами (блоками). Блок инкапсулирует в себе поведение (JavaScript), шаблоны, стили (CSS) и [технологии реализации](../../definitions/definitions.ru.md#bem-techs). Независимость блоков обеспечивает их повторное использование, а также удобство в разработке и поддержке проекта.\n+\n+БЭМ-платформа предоставляет технологии, инструменты и готовые блоки. При использовании полного стека БЭМ-технологий вы получаете автоматизацию процессов, ускорение разработки за счет готовых компонент и оптимизацию финального кода.\n+\n+Знакомство с БЭМ лучше всего начинать с CSS, так как при этом не требуется подключать дополнительные инструменты в проект. Необходимо только следовать рекомендациям методологии.\n+\n+Если рассматривать БЭМ как модульное решение только для CSS, то такой подход позволяет создавать независимые блоки на уровне стилей. Такие блоки можно размещать в любом месте на странице, перемещать по странице и между проектами, вкладывать один в другой, комбинировать, при этом сохранять независимость CSS-селекторов. Изолированные CSS-стили и отказ от каскадов облегчают разработку и отладку проекта.\n+\n+CSS по БЭМ дает явное понимание того, за какую часть интерфейса отвечает каждое правило, к какой БЭМ-сущности оно относится и от чего зависит. Вы получаете понятный и легко читаемый, самодокументируемый CSS-код.\n+\n+<a name=\"bem-vs-web-components\"></a>\n+## В чем разница между БЭМ и Web Components? Что будет с БЭМ-методологией, если Web Components станет новым стандартом веб-разрабоки, принятым W3C?\n+\n+[Web Components](http://webcomponents.org) — это набор технических требований, которые позволяют разработчикам создавать компоненты интерфейса для повторного использования. Каждый компонент имеет свой внешний вид и логику поведения.\n+\n+Такое верхнеуровневое определение подходит и для БЭМ-методологии.\n+\n+Чтобы понять разницу, рассмотрим отдельные части Web Components и сравним с БЭМ:\n+\n+* Custom Elements (пользовательские элементы). Позволяют создавать дополнительные элементы, которые используются наравне с другими DOM-элементами. К пользовательским элементам можно писать стили и скрипты. Если сравнивать с БЭМ, то Custom Elements решает ту же задачу, что и БЭМ-дерево — предоставляет абстракцию над DOM-деревом.\n+\n+* HTML Imports (импорт HTML). Позволяет включать и повторно использовать код в других HTML-документах (аналогично импорту в CSS). Импорт HTML требует сборки («вулканизации» в терминах Web Components). В БЭМ задачу импорта решают шаблоны, а для сборки пакетов используется один из сборщиков: [ENB](https://ru.bem.info/tools/bem/enb-bem-examples/) или [bem-tools](https://ru.bem.info/tools/bem/bem-tools/). \n+\n+* Templates (шаблоны). Создают фрагменты разметки, с базовой структурой и возможностью ввода динамического содержимого, используя JavaScript. В БЭМ эти задачи решают шаблонизаторы, например, BEMHTML или BH.\n+\n+* Shadow DOM (теневая модель документа). Реализует инкапсуляцию в DOM-дереве. Является частью документа и встраивается непосредственно внутрь страницы. В БЭМ для инкапсуляции в DOM-дереве служат элементы блоков.\n+\n+БЭМ и Web Components решают одни и те же задачи. Важное отличие в том, что работа БЭМ не зависит от поддержки браузеров. В то время как для Web Components совместимость с браузерами необходима.\n+\n+Значительные отличия есть и в использовании шаблонов. Применение Templates из Web Components предполагает внесение всего кода на страницу с добавлением стилей и вставкой «заглушек» в местах вывода переменных. JavaScript для работы шаблонов пишется отдельно. При таком подходе до момента выполнения JavaScript-кода неизбежно возникают проблемы с индексацией страницы поисковыми системами.\n+\n+Плюсом Web Components считается увеличение скорости работы проекта. Но чтобы обработать шаблоны, заполнить их данными, сгенерировать финальный HTML и вставить его в DOM по-прежнему тратится время. Выигрыш по скорости возможен только за счет шаблонизации по принципу интерполяции строк. Но такие шаблоны не позволяют выражать все необходимые сценарии.\n+\n+При использовании BEMHTML или BH генерация шаблона возможна на этапе разработки. Результат выполнения внедряется в готовый проект. Шаблоны Web Components такого сделать не позволяют.\n+\n+В разработке проекта можно попытаться совместить практики Web Components и БЭМ. Например, при необходимости в БЭМ можно изменить шаблоны таким образом, чтобы генерировать блоки в виде веб-компонентов. Однако, стоит задуматься, какую практическую пользу это принесет. БЭМ уже сейчас используется в проектах и предоставляет готовые решения существующих проблем.\n+\n+<a name=\"bem-vs-bootstrap\"></a>\n+## При переходе на методологию БЭМ можно забыть о Bootstrap? В БЭМ есть всё, нужно только изучить?\n+\n+[Bootstrap](http://getbootstrap.com/) — это набор сверстанных блоков, если говорить в терминах БЭМ. Таким образм уместно сравнивать Bootstrap и библиотеку [bem-components](https://ru.bem.info/libs/bem-components/current/), а не методологию. Сейчас в bem-components меньше блоков, чем в Bootstrap. Но существует еще [ряд БЭМ-библиотек](https://ru.bem.info/libs/), которые в сумме дают почти тот же набор.\n+\n+При этом Boostrap, в отличие от БЭМ методологии, не предоставляет готовых решений по созданию архитектуры проекта, написанию новых блоков, масштабированию разработки по людям. Boostrap предлагает готовые компоненты страницы (кнопки, поля ввода, переключатели).\n+\n+БЭМ, в первую очередь, решает задачу обеспечения гибкой разработки и повторного использования компонент, позволяет строить удобные в поддержке долговечные проекты. А готовые компоненты и инструментарий, построенные по методологии — это один из способов ее реализации на практике.\n+\n+<a name=\"bem-for-huge-projects\"></a>\n+## Насколько БЭМ подходит для поддержки долгосрочных проектов?\n+\n+Удобство поддержки проектов — одна из главных целей БЭМ.\n+\n+Изначально БЭМ-методология создавалась для упрощения работы в больших долгосрочных проектах.\n+\n+>[История создания БЭМ](../../history/history.ru.md)\n+\n+Сегодня БЭМ используется для создания и поддержки проектов разного уровня сложности и объема.\n+\n+Распространенные проблемы в поддержке долгосрочных проектов вызваны, в первую очередь, сильной связанностью кода, отсутствием актуальной внутрипроектной документации и меняющейся командой разработчиков.\n+\n+Методология БЭМ решает эти проблемы.\n+\n+Основа БЭМ-проекта — это блоки — логически и функционально независимые компоненты страницы. Блок инкапсулирует свои данные, что позволяет скрыть его внутреннюю реализацию (логику, стили, шаблоны). Так достигается независимость блоков. При отладке проекта, изменения вносятся локально в каждый отдельный блок, что позволяет избежать нежелательного влияния на другие компоненты страницы.\n+\n+В БЭМ каждый блок может быть представлен в одной или сразу нескольких [технологиях](../../definitions/definitions.ru.md#bem-techs), которые всегда размещаются в папке этого блока в файловой системе.\n+\n+>[Организация файловой системы БЭМ-проекта](../../file-system/file-system.ru.md)\n+\n+Рассмотрим пример логотипа (блок `logo`), который реализован с помощью шаблона и стилей. В файловой системе структура блока выглядит так:\n+\n+```\n+logo/\n+    ├──logo.bemhtml\n+    └──logo.css\n+```\n+\n+Добавим логотипу логику (JavaScript). Файл logo.js также будет создан в папке блока `logo`:\n+\n+```\n+logo/\n+    ├──logo.bemhtml\n+    ├──logo.css\n+    └──logo.js\n+```\n+\n+Такая структура позволяет при повторном использовании или отладке блока находить его технологии реализации и вносить изменения, не тратя время на изучение кода всей страницы. В отличие от классической веб-разработки, где весь CSS-код пишется в папке `css/`, а JavaScript — в `js/`.\n+\n+Соблюдение [правил по именованию БЭМ](../../naming/naming.ru.md) решает [проблемы со связанностью кода в CSS](../fixed-problems.ru.md) и позволяет писать изолированные CSS-селекторы к блокам.\n+\n+Явные имена БЭМ-сущностей и понятная структура файловой системы облегчают погружение в проект новых членов команды. А независимость блоков снижает вероятность получения побочных эффектов при отладке кода.\n+\n+<a name=\"block-vs-elem\"></a>\n+## В каком случае создавать блок, в каком элемент?\n+\n+Разделение на блоки и элементы в БЭМ-методологии происходит по следующему принципу: \n+\n+* блок — всегда независимый компонент страницы, который можно использовать повторно (аналогия — компонента в Web Components);\n+* элемент — часть блока, которая не может использоваться вне контекста блока (аналогия — Shadow DOM в Web Components).\n+\n+Определить, какую БЭМ-сущность создавать в каждой конкретной ситуации, помогут два правила:\n+\n+1. Если фрагмент кода может использоваться повторно вне контекста родителя, необходимо создавать блок.\n+1. Если фрагмент кода не может функционировать без родительской сущности, в большинстве случаев создается элемент.\n+\n+Исключение составляют элементы со сложной, расширенной функциональностью. Для удобства может понадобиться сделать его собственные элементы. Тогда такой сложный элемент можно представить как служебный «приватный» блок.\n+\n+<a name=\"bem-elem-hierarchy\"></a>\n+## Почему в БЭМ не рекомендуется создавать элементы элементов (`block__elem1__elem2`)?\n+\n+>В объяснении приводятся названия БЭМ-сущностей, основанные на [соглашении по именованию БЭМ](../../naming/naming.ru.md).\n+\n+В БЭМ-методологии вложенную структуру поддерживают только блоки (`block__elem`). Имя блока обеспечивает пространство имен, которое гарантирует зависимость элементов только от блока.\n+\n+Блок может иметь вложенную структуру элементов в DOM-дереве:\n+\n+```html\n+<div class='block'>\n+    <div class='block__elem1'>\n+        <div class='block__elem2'>\n+            <div class='block__elem3'></div>\n+        </div>\n+    </div>\n+</div>\n+```\n+\n+Однако эта же структура блока в БЭМ-методологии всегда будет представлена плоским списком элементов:\n+\n+```css\n+.block{}\n+.block__elem1{}\n+.block__elem2{}\n+.block__elem3{}\n+```\n+\n+Это позволяет изменять DOM-структуру блока без внесения правок в коде каждого отдельного элемента.\n+\n+```html\n+<div class='block'>\n+    <div class='block__elem1'>\n+        <div class='block__elem2'></div>\n+    </div>\n+    <div class='block__elem3'></div>\n+</div>\n+```\n+\n+<a href=\"i-bem-vs-JS\"></a>\n+## Зачем нужен `i-bem.js`, если можно писать JavaScript для независимых блоков на привычном jQuery?\n+\n+Такой вариант возможен. Более того, `i-bem.js` написан с использованием jQuery.\n+\n+Разработка по БЭМ требовала решения одних и тех же задач на JavaScript в терминах блоков, элементов и модификаторов. Это приводило к регулярному повторению одних и тех же действий. Чтобы автоматизировать процесс и избавиться от «копипаста», а также предоставить удобные хелперы пользователям, был написан [i-bem.js](https://ru.bem.info/technology/i-bem/).\n+\n+<a name=\"css-cascade\"></a>\n+## Почему в БЭМ не приветствуются каскады в CSS?\n+\n+Применение каскада увеличивает связанность кода и делает его повторное использование невозможным. Это противоречит принципам БЭМ. Согласно методологии стили для каждой БЭМ-сущности должны быть прописаны отдельно, независимо.\n+\n+Методология БЭМ допускает использование каскадов, но рекомендует по-максимуму его сократить.\n+\n+Например, каскад уместен, чтобы менять элементы в зависимости от состояния блока или заданной ему темы:\n+\n+```css\n+.nav_hovered .nav__link\n+{\n+    text-decoration: underline;\n+}\n+```\n+```css\n+.nav_theme_islands .nav__item\n+{\n+    line-height: 1.5;\n+}\n+```\n+\n+<a name=\"long-name\"></a>\n+## Почему БЭМ использует длинные имена классов?\n+\n+БЭМ не запрещает использовать `btn` вместо `button`. Как раз наоборот, методология позволяет выбрать любую удобную для проекта стратегию именования. Например, все варианты верны: `context`, `ctx` или `c`, `attributes`, `attrs` или `as`. Важно выбрать один из них и использовать консистентно во всем проекте.\n+\n+Имена элементов и модификаторов все же могут казаться новичкам неоправданно длинными (`btn_hvrd` и `btn__txt`). Есть два основных довода в пользу использования таких имен:\n+\n+* Уникальное имя блока в именах элементов и модификаторов обеспечивает пространство имен и позволяет защитить элементы от взаимного влияния друг на друга. Элементы всегда являются частью блока и не могут взаимодействовать с окуржающими блоками, аналогично Shadow DOM в Web Components.\n+\n+* Именам CSS-селекторов в БЭМ уделяется такое же внимание, как и именам переменных в JavaScript. Понятные, легко масштабируемые названия БЭМ-сущностей должны облегчать отладку кода не только в JavaScript, но и в CSS.\n+\n+<a name=\"comb-css\"></a>\n+## Почему в БЭМ не рекомендуется использовать комбинированные селекторы для создания CSS-правил к модификатору?\n+\n+>Комбинированый селектор `.block.mod` позволяет корректно написать CSS к модификатору. Почему нельзя применять модификатор к блоку, используя сокращенную форму записи `<div class=\"block mod\">` вместо рекомендуемой`<div class=\"block block_mod\">`?\n+\n+Необходимость указывать блок в имени модификатора имеет ряд причин:\n+\n+**Избегаем неоднозначности**\n+\n+В БЭМ распространено использование миксов — совмещение разных БЭМ-сущностей на одном DOM-узле. При миксе модификатора, нужна гарантия, что он окажет влияние только на ту БЭМ-сущность, к которой он относится.\n+\n+Например, рассмотрим микс пункта меню (`menu__item`) и кнопки (`button`). В HTML это будет выглядеть так:\n+\n+HTML\n+```html\n+<div class=\"menu__item button\"></div>\n+```\n+\n+Добавим модификатор `active` в сокращенной форме записи:\n+\n+HTML\n+```html\n+<div class=\"menu__item button active\"></div>\n+```\n+\n+Если не указывать имя блока, то модификатор окажет влияние на обе БЭМ-сущности.\n+\n+В такой форме записи HTML-разметка не дает понять, к чему относится модификатор: к пункту меню (`menu__item.active`) или к кнопке (`button.active`). Использование имени блока (`button_active`) явно указывает на БЭМ-сущность, к которой будет применен модификатор.\n+\n+**Повышаем специфичность селекторов**\n+\n+Чем выше специфичность селектора, тем выше его приоритет.\n+Комбинированные селекторы имеют более высокую специфичность в CSS, чем одиночные. Это означает, что при переопределнии одиночного селектора модификатора с помощью родительского блока возникнут трудности.\n+\n+Рассмотрим пример:\n+\n+```html\n+<div class=\"header\">\n+  <button class=\"button active\">\n+</div>\n+```\n+Правила модификатора `active` для кнопки будут записаны как комбинированный селектор `.button.active`. При переопределнии кнопки с помощью родительского блока `header`, будет создан селектор `.header .button`. Специфичность обоих селекторов одинакова, значит применение CSS-правил будет зависеть только от порядка их объявления в декларации.\n+\n+Использование имени блока в названии модификатора обеспечивает более высокий приоритет CSS-правилам при переопределении блока. Селектор `.header .button` всегда будет иметь приоритет выше, чем `.button_active`.\n+\n+**Создаем понятную структуру блока**\n+\n+Запись вида `<div class=\"block mod\">` не дает явно понять, какие БЭМ-сущности используются в работе. По именам не всегда удается точно определить соответствие конкретной БЭМ-сущности. Так, из записи `<div class=\"checkbox button\">` нельзя утверждать, это микс модификатора и блока или микс двух блоков. Применение сложных или сокращенных имен также может ввести в заблуждение.\n+\n+Полное имя модификатора `<div class=\"block block_mod\">` явно показывает, о каких сущностях идет речь: `<div class=\"checkbox checkbox_button\">`.\n+\n+Четкая структура блока также облегчает поиск необходимой сущности в коде и файловой системе.\n+\n+Сравним результаты глобального поиска при рефакторинге проекта. Найдем модификатор `active`. В сокращенном виде (`active`) в результаты поиска попадут все возможные комбинации и HTML-фрагменты, где встречается `active`. В записи, рекомендуемой методологией, само название уже будет содержать уточняющий параметр в виде имени блока (`button_active`). Так как имя модификатора уникально, в результаты поиска попадут только нужные фрагменты.\n+\n+<a name=\"block-name\"></a>\n+## Почему нельзя писать `<div class=\"block_mod\">` вместо `<div class=\"block block_mod\">`, если имя модификатора уже содержит всю информацию о блоке?\n+\n+Совмещение нескольких модификаторов на одном и том же блоке (например, `<div class=\"block_theme_christmas block_size_big\">`) приведет к дублированию кода, реализующего базовую функциональность (логику и стили) блока.\n+\n+<a name=\"global-mod\"></a>\n+## Можно ли создавать глобальные модификаторы для блоков?\n+\n+>Удобно создать общие правила для таких глобальных модификаторов, как как `visible`, `invisible`, `red`, `opacity50` в глобальном классе и применять его к разным блокам. Почему БЭМ это не использует?\n+\n+В БЭМ нет понятия глобальных модификаторов.\n+\n+Модификатор — это свойство определяющее внешний вид, состояние или поведение блока или элемента. Он всегда относится к одной конкретной БЭМ-сущности.\n+\n+Таким образом, если есть необходимость вынести какое-то свойство за пределы одного блока и применять его к разным БЭМ-сущностям в проекте, необходимо создавать отдельный блок. Такой блок может быть реализован только в технологии CSS.\n+\n+Функционально БЭМ позволяет использовать несколько классов на одном DOM-узле и таким образом совмещать реализацию разных блоков. Такое объединение БЭМ-сущностей называется [миксом](../definitions/definitions.ru.md#mix):\n+\n+```html\n+<div class=\"block1 opacity50\"></div>\n+```\n+\n+<a name=\"global-reset\"></a>\n+## Почему БЭМ не рекомендует общий сброс стилей (reset)?\n+\n+>Глобальный сброс стилей — общепринятая практика в веб-разработке. Многие фреймворки перед началом работы приводят все к общему виду, а потом накладывают свои классы.\n+\n+БЭМ-методология не запрещает использовать общий сброс стилей. Но рекомендует делать его в рамках основных БЭМ-принципов, сохраняя независимотсь блоков.\n+\n+Общий сброс в CSS — это набор CSS-правил, который применяется к узлам документа и гарантирует их одинаковый внешний вид в разных браузерах. В большинстве случаев такие CSS-правила пишутся к селекторам на тег, что [не вполне подходит для БЭМ](#tag-css).\n+\n+При необходимости в БЭМ используется сброс стилей, но реализуется он для каждого блока отдельно. Блок — это независимый компонент страницы, который инкапсулирует в себе все необходимое для своего функционирования и правильного отображения. Реализация блока не должна меняться при воздействии внешних факторов. Если блок не может выглядеть нужным образом без применения к нему сторонних CSS-правил, добавленных на страницу, то он не может быть независимым.\n+\n+Рассмотрим пример. Если в проекте блоки меню и список в HTML выражены с помощью `<ul>`, значит каждый блок должен предоставлять сброс CSS для `<ul>`. Повторов в результируеющем коде можно избежать с помощью CSS-оптимизатора.\n+\n+Если в проекте не испльзуется CSS-оптимизатор, который объединяет селекторы с одинаковым набором правил, можно применить CSS-препроцессор. Тогда для каждого нового блока можно делать сброс правил, миксуя чистый код. Например, в SASS это будет выглядеть так:\n+\n+```\n+.menu {\n+    @include reset-list;\n+}\n+.menu__item {\n+    @include reset-list-item;\n+}\n+...\n+.list {\n+    @include reset-list;\n+}\n+.list__item {\n+    @include reset-list-item;\n+}\n+```\n+\n+Такой способ следует использовать только при отсутсвии оптимизатора.\n+\n+<a name=\"tag-css\"></a>\n+## Почему в БЭМ не используют пользовательские теги (custom tags) для формирования CSS-правил блока?\n+\n+>Блоки могут выражаться в HTML с помощью пользовательских тегов, к которым создаются CSS-правила. На первый взгляд, селекторы на тег могут полностью заменить CSS-классы для блоков. В таком случае классы можно будет использовать только для выражения модификаторов: `<button class=\"mod\"/>`.\n+\n+Применение пользовательских тегов в качестве селекторов для блока может рассматриваться, как один из вариантов использования БЭМ-методологии. Однако этот подход менее гибкий в отличие от рекомендованного применения классов.\n+\n+Использование селекторов на тег влечет ряд ограничений:\n+\n+* Зависимость от тега делает невозможным использование миксов — размещения нескольких БЭМ-сущностей на одной DOM-ноде. А классы дают возможность свободно совмещать любые БЭМ-сущности: `<div class=\"block1 block2\">`.\n+* Использование тегов не всегда дает возможность выразить любой блок отдельным, уникальным тегом. Например, для ссылок всегда необходим тег <a>, а для полей — <input>.\n+\n+<a name=\"tag-class-css\"></a>\n+## Можно ли объединять тег и класс в селекторе? Например, `button.button`.\n+\n+Совмещение тега и класса в селекторе повышает его специфичность. Это усложняет переопределение блока.\n+\n+При добавлении модификатора, селектор `.button_mod` не переопределит свойства блока, записанные как `button.button`, так как специфичность `button.button` выше. Для успешного переопределения модификатор блока также должен быть скомбинирован с тегом `button.button_mod`.\n+\n+В развивающемся в проекте может появится `input.button`, `span.button` и, например, `a.button`. И все модификаторы блока `button` и вложенные в него элементы потребуют четыре разные декларации для каждого случая.","path":"method/faq/bem-method-faq.ru.md","position":343,"original_position":343,"commit_id":"1543ff4177679c39bc0255bec507a1df6cda3738","original_commit_id":"1543ff4177679c39bc0255bec507a1df6cda3738","user":{"login":"Nikulinnn","id":6550707,"avatar_url":"https://avatars.githubusercontent.com/u/6550707?v=3","gravatar_id":"","url":"https://api.github.com/users/Nikulinnn","html_url":"https://github.com/Nikulinnn","followers_url":"https://api.github.com/users/Nikulinnn/followers","following_url":"https://api.github.com/users/Nikulinnn/following{/other_user}","gists_url":"https://api.github.com/users/Nikulinnn/gists{/gist_id}","starred_url":"https://api.github.com/users/Nikulinnn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nikulinnn/subscriptions","organizations_url":"https://api.github.com/users/Nikulinnn/orgs","repos_url":"https://api.github.com/users/Nikulinnn/repos","events_url":"https://api.github.com/users/Nikulinnn/events{/privacy}","received_events_url":"https://api.github.com/users/Nikulinnn/received_events","type":"User","site_admin":false},"body":">В развивающемся **в** проекте ","created_at":"2015-05-27T16:31:12Z","updated_at":"2015-05-27T16:31:12Z","html_url":"https://github.com/bem/bem-method/pull/254#discussion_r31152849","pull_request_url":"https://api.github.com/repos/bem/bem-method/pulls/254","_links":{"self":{"href":"https://api.github.com/repos/bem/bem-method/pulls/comments/31152849"},"html":{"href":"https://github.com/bem/bem-method/pull/254#discussion_r31152849"},"pull_request":{"href":"https://api.github.com/repos/bem/bem-method/pulls/254"}}},"pull_request":{"url":"https://api.github.com/repos/bem/bem-method/pulls/254","id":36243699,"html_url":"https://github.com/bem/bem-method/pull/254","diff_url":"https://github.com/bem/bem-method/pull/254.diff","patch_url":"https://github.com/bem/bem-method/pull/254.patch","issue_url":"https://api.github.com/repos/bem/bem-method/issues/254","number":254,"state":"open","locked":false,"title":"FAQ: first questions added","user":{"login":"innabelaya","id":6286656,"avatar_url":"https://avatars.githubusercontent.com/u/6286656?v=3","gravatar_id":"","url":"https://api.github.com/users/innabelaya","html_url":"https://github.com/innabelaya","followers_url":"https://api.github.com/users/innabelaya/followers","following_url":"https://api.github.com/users/innabelaya/following{/other_user}","gists_url":"https://api.github.com/users/innabelaya/gists{/gist_id}","starred_url":"https://api.github.com/users/innabelaya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/innabelaya/subscriptions","organizations_url":"https://api.github.com/users/innabelaya/orgs","repos_url":"https://api.github.com/users/innabelaya/repos","events_url":"https://api.github.com/users/innabelaya/events{/privacy}","received_events_url":"https://api.github.com/users/innabelaya/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-05-26T20:46:28Z","updated_at":"2015-05-27T16:31:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e749704d4834e96f2bf7d471500c135d9718e907","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bem/bem-method/pulls/254/commits","review_comments_url":"https://api.github.com/repos/bem/bem-method/pulls/254/comments","review_comment_url":"https://api.github.com/repos/bem/bem-method/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bem/bem-method/issues/254/comments","statuses_url":"https://api.github.com/repos/bem/bem-method/statuses/1543ff4177679c39bc0255bec507a1df6cda3738","head":{"label":"bem:bem-faq","ref":"bem-faq","sha":"1543ff4177679c39bc0255bec507a1df6cda3738","user":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"repo":{"id":820900,"name":"bem-method","full_name":"bem/bem-method","owner":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bem/bem-method","description":"BEM — a methodology how to develop web projects applicable for any technology","fork":false,"url":"https://api.github.com/repos/bem/bem-method","forks_url":"https://api.github.com/repos/bem/bem-method/forks","keys_url":"https://api.github.com/repos/bem/bem-method/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bem/bem-method/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bem/bem-method/teams","hooks_url":"https://api.github.com/repos/bem/bem-method/hooks","issue_events_url":"https://api.github.com/repos/bem/bem-method/issues/events{/number}","events_url":"https://api.github.com/repos/bem/bem-method/events","assignees_url":"https://api.github.com/repos/bem/bem-method/assignees{/user}","branches_url":"https://api.github.com/repos/bem/bem-method/branches{/branch}","tags_url":"https://api.github.com/repos/bem/bem-method/tags","blobs_url":"https://api.github.com/repos/bem/bem-method/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bem/bem-method/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bem/bem-method/git/refs{/sha}","trees_url":"https://api.github.com/repos/bem/bem-method/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bem/bem-method/statuses/{sha}","languages_url":"https://api.github.com/repos/bem/bem-method/languages","stargazers_url":"https://api.github.com/repos/bem/bem-method/stargazers","contributors_url":"https://api.github.com/repos/bem/bem-method/contributors","subscribers_url":"https://api.github.com/repos/bem/bem-method/subscribers","subscription_url":"https://api.github.com/repos/bem/bem-method/subscription","commits_url":"https://api.github.com/repos/bem/bem-method/commits{/sha}","git_commits_url":"https://api.github.com/repos/bem/bem-method/git/commits{/sha}","comments_url":"https://api.github.com/repos/bem/bem-method/comments{/number}","issue_comment_url":"https://api.github.com/repos/bem/bem-method/issues/comments{/number}","contents_url":"https://api.github.com/repos/bem/bem-method/contents/{+path}","compare_url":"https://api.github.com/repos/bem/bem-method/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bem/bem-method/merges","archive_url":"https://api.github.com/repos/bem/bem-method/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bem/bem-method/downloads","issues_url":"https://api.github.com/repos/bem/bem-method/issues{/number}","pulls_url":"https://api.github.com/repos/bem/bem-method/pulls{/number}","milestones_url":"https://api.github.com/repos/bem/bem-method/milestones{/number}","notifications_url":"https://api.github.com/repos/bem/bem-method/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bem/bem-method/labels{/name}","releases_url":"https://api.github.com/repos/bem/bem-method/releases{/id}","created_at":"2010-08-06T06:52:01Z","updated_at":"2015-05-27T07:47:27Z","pushed_at":"2015-05-27T10:09:34Z","git_url":"git://github.com/bem/bem-method.git","ssh_url":"git@github.com:bem/bem-method.git","clone_url":"https://github.com/bem/bem-method.git","svn_url":"https://github.com/bem/bem-method","homepage":"http://bem.info","size":26101,"stargazers_count":195,"watchers_count":195,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":60,"mirror_url":null,"open_issues_count":37,"forks":60,"open_issues":37,"watchers":195,"default_branch":"bem-info-data"}},"base":{"label":"bem:bem-info-data","ref":"bem-info-data","sha":"353fae1947d9ae85e8e7bb0f5b3af3bacaa83e13","user":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"repo":{"id":820900,"name":"bem-method","full_name":"bem/bem-method","owner":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bem/bem-method","description":"BEM — a methodology how to develop web projects applicable for any technology","fork":false,"url":"https://api.github.com/repos/bem/bem-method","forks_url":"https://api.github.com/repos/bem/bem-method/forks","keys_url":"https://api.github.com/repos/bem/bem-method/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bem/bem-method/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bem/bem-method/teams","hooks_url":"https://api.github.com/repos/bem/bem-method/hooks","issue_events_url":"https://api.github.com/repos/bem/bem-method/issues/events{/number}","events_url":"https://api.github.com/repos/bem/bem-method/events","assignees_url":"https://api.github.com/repos/bem/bem-method/assignees{/user}","branches_url":"https://api.github.com/repos/bem/bem-method/branches{/branch}","tags_url":"https://api.github.com/repos/bem/bem-method/tags","blobs_url":"https://api.github.com/repos/bem/bem-method/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bem/bem-method/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bem/bem-method/git/refs{/sha}","trees_url":"https://api.github.com/repos/bem/bem-method/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bem/bem-method/statuses/{sha}","languages_url":"https://api.github.com/repos/bem/bem-method/languages","stargazers_url":"https://api.github.com/repos/bem/bem-method/stargazers","contributors_url":"https://api.github.com/repos/bem/bem-method/contributors","subscribers_url":"https://api.github.com/repos/bem/bem-method/subscribers","subscription_url":"https://api.github.com/repos/bem/bem-method/subscription","commits_url":"https://api.github.com/repos/bem/bem-method/commits{/sha}","git_commits_url":"https://api.github.com/repos/bem/bem-method/git/commits{/sha}","comments_url":"https://api.github.com/repos/bem/bem-method/comments{/number}","issue_comment_url":"https://api.github.com/repos/bem/bem-method/issues/comments{/number}","contents_url":"https://api.github.com/repos/bem/bem-method/contents/{+path}","compare_url":"https://api.github.com/repos/bem/bem-method/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bem/bem-method/merges","archive_url":"https://api.github.com/repos/bem/bem-method/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bem/bem-method/downloads","issues_url":"https://api.github.com/repos/bem/bem-method/issues{/number}","pulls_url":"https://api.github.com/repos/bem/bem-method/pulls{/number}","milestones_url":"https://api.github.com/repos/bem/bem-method/milestones{/number}","notifications_url":"https://api.github.com/repos/bem/bem-method/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bem/bem-method/labels{/name}","releases_url":"https://api.github.com/repos/bem/bem-method/releases{/id}","created_at":"2010-08-06T06:52:01Z","updated_at":"2015-05-27T07:47:27Z","pushed_at":"2015-05-27T10:09:34Z","git_url":"git://github.com/bem/bem-method.git","ssh_url":"git@github.com:bem/bem-method.git","clone_url":"https://github.com/bem/bem-method.git","svn_url":"https://github.com/bem/bem-method","homepage":"http://bem.info","size":26101,"stargazers_count":195,"watchers_count":195,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":60,"mirror_url":null,"open_issues_count":37,"forks":60,"open_issues":37,"watchers":195,"default_branch":"bem-info-data"}},"_links":{"self":{"href":"https://api.github.com/repos/bem/bem-method/pulls/254"},"html":{"href":"https://github.com/bem/bem-method/pull/254"},"issue":{"href":"https://api.github.com/repos/bem/bem-method/issues/254"},"comments":{"href":"https://api.github.com/repos/bem/bem-method/issues/254/comments"},"review_comments":{"href":"https://api.github.com/repos/bem/bem-method/pulls/254/comments"},"review_comment":{"href":"https://api.github.com/repos/bem/bem-method/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bem/bem-method/pulls/254/commits"},"statuses":{"href":"https://api.github.com/repos/bem/bem-method/statuses/1543ff4177679c39bc0255bec507a1df6cda3738"}}}}