Skip to content

Instantly share code, notes, and snippets.

@varya
Created October 12, 2012 11:32
Show Gist options
  • Save varya/3878795 to your computer and use it in GitHub Desktop.
Save varya/3878795 to your computer and use it in GitHub Desktop.
Задание для стажера

Про CSS

Из задания http://yuri.ya.ru/replies.xml?item_no=4484

  • сверстать звездочки
  • сверстать прогрессбар
  • сверстать кнопку

CSS-вёрстка должна быть по БЭМ-методологии. Материалы, в том числе и видео докладов, можно найти в Клубе БЭМ. Вести разработку нужно на GitHub. Дополнительным плюсом будет, если вы используете bem tools для сборки проекта. Пример можно посмотреть здесь https://github.com/bem/bem-bl-test . Вопросы по установке и настройке можно задавать в клубе на Яру.

Про JavaScript

У тебя есть массив CSS-классов, используемых в документе. Для простоты представим, что в документе нет DOM-узлов с 2мя или более CSS-классами.

[
'b-statcounter',
'b-statcounter__metrika',
'b-statcounter__metrika_type_js',
'i-bem',
'b-search__table',
'b-form-input',
'b-form-input_theme_grey',
'b-form-input_size_l',
'i-bem',
'b-form-input__input',
'b-search__button',
'b-form-button__content',
'b-form-button__text',
'b-form-button__input',
'i-bem',
'b-main-menu',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab',
'b-main-menu__tab_type_selected',
'b-main-menu__tab',
'b-main-menu__tab_type_selected',
'l-page__right',
'b-static-text',
'b-static-text',
'b-foot__layout-column',
'b-foot__layout-column_type_left',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column',
'b-foot__layout-column_type_center',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column_type_penultima',
'b-link',
'b-foot__link',
'b-foot__layout-column',
'b-foot__layout-column_type_right',
'b-copyright__link',
'b-foot__layout-gap-i'
]

Нужно превратить эти классы в короткие. Так, чтобы самый частовстречающийся класс имел самое короткое новое название. Для формирования новых названий у есть набор букв. Например "a, b, c, d".

Нужно построить таблицу соответствия старых классов новым. Самый частоиспользуемый будет соответствовать 'a', следующий по использованию — на 'b', и так далее. После того как использована буква 'd', следует использовать 'aa', 'ab', 'ac', ... 'aaa' и т.д.

Результатом выполнения задания будет JS-код, строящий хеш соответствий. Заданные буквы следует хранить отдельно так, чтобы можно было потом изменить алфавит, не нарушив работу программы.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment