# Понедельник 132 твита
На этой неделе с вами Виталий @harisov Харисов.
Работаю в Яндексе, живу в Симферополе, один из создателей @bem_ru
Начнём через пару часов.
7:14На этой неделе
9:11Я работал программистом с 2001 (vitaly.harisov.name/resume).
Писал на Java и C++ (драйвер компорта под Win).
Вёрстка была хобби. Тусил в фидо.
9:14С сентября 2005 начал верстать для Яндекса, первый проект был Адреса (ныне закрыт).
С января 2006 работаю в Яндексе официально.
9:16Работаю в Симферополе, построил офис с нуля.
Начинал надомником, через 9 месяцев присоединился @makishvili, сняли офис 20 кв.м.
9:19Через год пришли @yuritkachenko и @natashamaki.
Делали всю вёрстку новых сервисов Яндекса: Адреса, Музыка, Яру, Погода, Народ, что-то ещё.
9:22В 2008 сменили офис (если интересно покажу фотки) на 90 кв.м. (позже расширили до 120).
Пришли @olyuwik, @lento4ka45 и @gurugray.
9:27Об опыте построения офиса писал большой пост на Яру, но он уже недоступен. :(
В 2012 мы переехали в новый офис.
В пике было 75, сейчас 57.
9:32@cssunderhood Сразу традиционный вопрос - верстальщик умирающая профессия или верстальщики еще нужны?9:32
@freiksenet_ru @cssunderhood я считаю, верстальщик - это переходная профессия. Кому нравится верстать со временем идет дальше, к фронтенду.9:43
@cssunderhood @freiksenet_ru а куда все движется?9:45
@freiksenet_ru9:49и умирающая, и ещё нужны.
Где программисты не хотят знать про CSS — верстальщик нужен. Или где выжать максимум из браузера
@freiksenet_ru мы в Яндексе отказались от верстальщиков, как отдельной касты.9:49Компании выгоднее, чтобы все умели всё: JS, и CSS, и шаблоны.
@hellbeast92 @freiksenet_ru9:50Не обязательно. Кто-то умеет верстать в совершенстве и ему дальше не надо.
Кто-то не может программировать.
@voischev @freiksenet_ru9:50Я считаю, что и дальше будут и те, кто умеют верстать и отдавать вёрстку программистам.
И те, кто могут всё сами.
@voischev @freiksenet_ru9:51Это как с электромобилями и self-driving cars, их появление не отменяет в один момент машины на ДВС.
@cssunderhood @freiksenet_ru ваша правда, но я не верю, что человеку достаточно, то что он имеет.9:51
Каждый выбирает чем ему заниматься и куда двигаться. Не обязательно иди во фронтенд, если к этому нет желания.
9:53@cssunderhood где какие люди будут трудиться?) а что с дизайнерами? Они будут верстать? @freiksenet_ru9:53
Думаю, что в больших компаниях отдельных верстальщиков больше не будет.
Они будут на фрилансе и в мелких фирмах.
9:54Верстающий дизайнер стОит на рынке дороже, но спрос на них не большой, только у тех компаний, кто до этого дорос.
9:56@cssunderhood @voischev Контринтуитивно, не наоборот ли будет? Большая компания может позволить отдельных верстальщиков, маленькая - нет.9:57
Отдельный верстальщик — удлинение процесса разработки.
Два универсала стоят дороже, чем верстальщик+программист.
9:59@cssunderhood @voischev Два человека в целом дороже чем один человек, даже если один человек на ступеньку выше. Особенно это так на западе.9:59
Двух универсалов нанять (и удержать!) сильно сложнее, чем верстальщика+прог.
От фрилансера проще получить вёрстку, чем всё.
10:02@cssunderhood вот как раз большие компании и останутся с верстальщиками, потому что воркфлоу устоявшийся и никто его менять не будет.10:03
Мы в Яндексе от отдельных верстальщиков отказались, переучили почти всех на фронтендеров. Флоу меняется при желании.
10:04Сейчас хотим такой же шаг сделать с автотестированием, сделать инфраструктуру для тестов такую, чтобы их писали фронтендеры.
10:05@cssunderhood @naorunaoru а если верстальщик больше в дизайн чем программирование, все ровно переучивали во фронтенд?:)10:08
У нас не было верстальщиков «больше в дизайн», мы не искали и не нанимали таких людей.
10:09@cssunderhood Расскажи про возраст. Что меняется в работе? Что бы ты 5 лет назад сделал по другому чтобы сегодня тебе было лучше?10:16
Как сказал @veosys на CodeFest2015:
— Оглядываясь на год назад, что бы вы поменяли в стартапе?
— Я бы поменял рубли…
10:19А серьёзно, я бы больше внимания уделял своему здоровью/йоге, больше внимания уделял росту как разработчику, а не руководителю.
10:21С возрастом хочется делать то, что принесёт наибольший результат, а не только то, что интересно.
Идеально чтобы одновременно.
10:23Ну и очень важно не только, что делать, но и с кем.
Для меня сейчас гораздо важнее команда и ощущение единства, чем 5 лет назад
10:25Я сейчас и есть руководитель команды/продуктовый менеджер БЭМ и Лего (тот же БЭМ, но внутри Яндекса).
10:31Рост как разработчика дал бы в некоторых случаях больше результата продукту.
И повысил бы мою стоимость вне Яндекса.
10:32@cssunderhood как думаешь, сменишь ли когда-нибудь работу после стольких лет в Яндексе?10:32
Я сильно завязан на Симферополь и сдвинуть меня с места нереально.
Для смены компании нужны обстоятельства непреодолимой силы
10:36@cssunderhood @toivonens а ты говоришь что надо было расти как разработчику. Почему? Это дало бы больше результата?10:36
@cssunderhood @toivonens «наибольший результат» → кажется, для этого нужно как раз из разработчика стать менеджером или арт.диром а-ля Бюро10:36
Пост про опыт построения офиса Яндекса в Симферополе с 2006 по 2011:
vitaly.harisov.name/article/office/
10:40Работая в одной компании, лучше прокачивать опыт руководства, это даёт наибольший результат при прочих равных.
10:44Чтобы иметь возможность работать где угодно в мире, лучше прокачивать скилл разработки, а не руководства.
10:45«Вы не любите кошек? Да вы их просто готовить не умеете!»
Вот и с БЭМ так.
Не вижу причины стыда.
@kalashnikau @Devgru @toivonens
10:47Сегодня день разогрева.
Задавайте вопросы про опыт работы, про Яндекс, про профессию.
Про CSS и БЭМ поговорим позже, в течение недели.
10:51@cssunderhood Как думаешь, надо 2 аккаунта @cssunderhood и @jsunderhood ?10:52
Если эти аккаунты вести близко к их названию, то да, мне интересно читать их оба.
10:54Проще при смене работы, но и возможностей/результата в отдельно взятой компании меньше.
Это два разных вектора.
10:56@cssunderhood @toivonens Исходя из ваших ответов, вывод один - быть разработчиком проще. Больше позиций в по миру, чем для руководителей.10:56
@cssunderhood По факту сильные руководители всем нужны, и ценятся больше (или не хуже) разработчиков. Сложность в том, что их обычно растят.10:56
Всё так. Руководителей редко нанимают с улицы, обычно это рост внутри компании.
Поэтому при смене работы важен опыт разработки
10:58@cssunderhood И сложно стать хорошим руководителем работая в одной компании, нужен очень разносторонний опыт, особенно на интернац. рынке.10:58
@toivonens @cssunderhood Просто это относительно очевидно. Может есть еще какие то мотивы?10:58
@operatino достаточно много вакансий всевозможных тим-лидов в последнее время, где нужен именно опыт руководства @cssunderhood @toivonens10:59
И руководства, И разработки.
Вопрос был про то, чтобы я изменил 5 лет назад.
@mistadikay @operatino @toivonens
10:59@mistadikay Зависит от рынка конечно, но да, последнее время особенно из Украины много подобных вакансие в FE dev. @cssunderhood @toivonens11:08
@operatino @cssunderhood Мне кажется для разработчика долгий опыт в одной компании это тоже плохо. Привыкаешь к одной модели работы.11:09
Это не про Яндекс точно, у нас мало кто работает над одним проектом очень долго.
Много возможностей для перехода
11:12@cssunderhood @toivonens Спасибо за ответы. Я тоже считаю, что тех. руководителю нужно расти одновременно и в разработке.11:13
@operatino @cssunderhood Это еще хуже если компания что-то типа Яндекса (или, хз, Гугла). Это свой мир, практически отдельный от индустрии.11:15
@operatino @cssunderhood Даже много разных проектов в одной компании скорее всего будут иметь похожую внутреннюю культуру.11:15
И да, и нет.
В Яндексе достаточно большое разнообразие проектов/технологий, чтобы мочь выбрать что-то своё.
11:16@cssunderhood Ну как не спросить твоего мнения:11:17БЭМ без тулзов уже не БЭМ?
Про БЭМ не сегодня, будет отдельные дни, тогда поговорим обстоятельно.
Тогда и отвечу на вопрос.
11:18@cssunderhood @operatino Но проекты все Яндекса, значит в них все похожее - культура, билд инструменты, стиль.11:18
У вас слишком романтическое представление о культуре разработки Яндексе :)
11:19@cssunderhood как не "прогореть" на работе, как избежать застоя, ведь это, зачастую - основная проблема увольнения11:19
У меня практически не было застоя в компании, всегда двигался вперёд и деятельность постепенно менялась.
Активность — внутри
11:21Важно самому себе ставить цели и достигать их, быть проактивным, управлять самим собой
Тогда застоя не будет, что бы не делал
11:22@freiksenet_ru @cssunderhood @operatino через сколько лет надо менять место?11:22
@cssunderhood @operatino Я работал с людьми из гугла и у них были гугловские представления о том как все делать. Не верю что такого нет в Я.11:24
Конечно общие представления есть, но все команды разные.
Например, code style для XSLT:
4 spaces indent
Всё )
11:26@cssunderhood а если работа перестает быть интересной, перспективной с позиции опыта, инструментов, языка - пилить opensource, контриб-ть?12:00
@cssunderhood Практикуется ли удаленная работа в Яндексе?12:01
@cssunderhood По теме верстак vs фронт. Каким набором знаний/технологий должен овладеть верстак что бы стать фронтом (объективно)?12:03
@cssunderhood @blond_ru но предпочтение всё же офисной работе? или не так важно12:04
Да, предпочтение офису
При этом каждая команда сама решает какому именно офису, у нас их много.
Большой перекос в сторону Москвы
12:05@cssunderhood а в Я есть отдел, который занимается вопросами безопасности фрнтнд? Например тестирует его на наличие «дыр»?12:22
@cssunderhood @sskrebkov какой шаблонизатор рекомендуете?12:23
@cssunderhood а у вас есть какой то «чек-лист» безопасности для фронтенда? Поделитесь?12:37
@cssunderhood Тот же вопрос по доступности верстки — как вы её контролируете? Есть ли чек-лист, которым можно поделиться или все секретно?12:39
Про accessibility у нас есть прекраснейший гайд, сделал Руслан Сагитов (github.com/ruslansagitov/), надо перевести и опубликовать
12:43@cssunderhood pixel perfect практикуете? чем/кем тестируете?12:44
В вёрстке макета скорее нет, чем да. И между браузерами тоже.
В одном браузере между версиями библиотеки
12:47@cssunderhood а у вас есть сертификация людей использующих БЭМ? Что бы сдать и получить бумажку «Знаток css-бем заверенный самим Я».12:47
Мы хотим раздавать БЭМ-ачивки через Mozilla Open Badges (openbadges.org), но никак не дойдём задеплоить, код уже написан @SilentImp
12:50@cssunderhood @SilentImp Опубликуй по-русски. Как раз на русском материалов очень мало.12:50
Чтобы опубликовать на русском, надо придумать куда, а мы пока с этим не определились. И есть небольшие «проблемки».
12:51@cssunderhood сколько собеседований прошел что бы работать в яндекс14:56
Одно собеседование и тестовое задание сверстать главную Яндекса (потратил 18 часов и ещё 4 чтобы сделать поддержку NN4 и IE4)
14:57@cssunderhood @MikitaLisavets @naorunaoru ну не совсем, у нас скорее были (есть) дизайнеры с вёрсткой, например Даня Ковчий14:59
Это другое. Вопрос был про то, что если верстальщик умеет дизайнить, зачем его переучивать во фронт.
@gurugray @MikitaLisavets @naorunaoru
15:00@cssunderhood С какого года занимаетесь версткой/фронтенд ?15:01
С 2001.
Погружение в вёрстку начал с вдумчивого чтения спецификаций CSS2 и HTML 4.01.
Из спецификаций много что не работало
15:03@cssunderhood @CodeRuleZZZ "вдумчивого чтения спецификаций" - это то, чего сейчас многим не хватает15:05
1) Сборка проекта15:08
2) Шаблонизатор
3) Клиентский JavaScript
4) Deploy
@cssunderhood ну так-то это необходимый минимум, но недостаточно же еще магии для превращения. Наставник там, или отэц!15:15
Наставник в любом деле нужен, не только в превращении верстальщика во фронтендера.
15:16@cssunderhood Что должен знать фронтендер? Понятно, что JS и что требования могут разниться от компании к компании. Есть ли некий стандарт?15:17
Сделать сайт от начала (вёрстка) до конца (деплой в продакшн).
Чем сложнее сайт и его архитектура — тем круче разработчик.
15:19@cssunderhood Кто был твоим наставником по организации офиса в Симфи?15:25
Мой ментор — руководитель в Москве, Надежда Строганкова.
Надя меня нашла в ЖЖ (harisov.livejournal.com/26279.html), собеседовала, наняла
15:34@cssunderhood Подскажи инструмент, сейчас вроде модно делать сайты без всяких php, простой шаблонизатор типа, пару команд и он тебе html15:34
Помогите с ответом
@andexds Подскажи инструмент, сейчас модно делать сайты без всяких php, простой шаблонизатор, пару команд и он тебе html
15:37@cssunderhood От начала до конца, включая бэкенд? Это full stack разработчик уже. Или в чём разница?15:37
@cssunderhood иногда говорят, что фронтенд+дизайнер в одном хорошо и правильно. Ваше мнение?15:38
Знающий вёрстку дизайнер, умеющий сверстать свой макет, хотя бы работающий в одном браузере — это чудо.
В Яндексе такие есть.
15:39@cssunderhood Как должен быть построен идеальный процесс взаимоотношений front и back разработчиков?15:39
@cssunderhood Как должен быть построен идеальный процесс взаимоотношений front и back разработчиков?
Через API.
15:40@yaroshevich @cssunderhood У меня очень редко обновляемый сайт, сайт портфолио, я думаю делать его статичным, собирать сходу и выкладывать
Посмотрите этот вебинар:
Если пойдёт — вебинары про сборку и js.
15:48@cssunderhood Я себе представляла это скорее как фронтенд, который такой молодец, что и в дизайне и интерфейсах чудо как хорош.15:48
@cssunderhood Я себе представляла это скорее как фронтенд, который такой молодец, что и в дизайне и интерфейсах чудо как хорош.
Умеющий дизайнить верстальщик ещё большая редкость, чем умеющий верстать дизайнер.
15:49@cssunderhood а есть какие то курсы или куда обратиться чтобы подтянуть недостающих знаний и пониманий для работы во фронтэнде?15:52
Вопрос ко всем — как лучше/быстрее всего учится вёрстке и фронтенду?
Какие самоучители, курсы, сайты?
В Яндексе есть ШРИ.
15:54@cssunderhood @askaza Это чудо, пока цель сверстать без натяжки на движок. Натягивающему возможно придется переделывать некоторые вещи16:05
Никто не берёт код дизайнера для дальнейшей работы с ним, он используется как живой прототип вместо макета в psd.
16:06@cssunderhood Расскажи, вы в Gemini проверяли компоненты с кастовыми шрифтами? Работало?18:37
@cssunderhood @sushkazzlo лучший способ, это прочитать пару книг по html\css для базы, а потом идти работать за еду в какую нибудь компанию18:38
@cssunderhood @CodeRuleZZZ а сейчас фронтендеры через что должны пройти чтобы попасть в Яндекс?18:39
Попасть в Яндекс — заполнить заявку на yandex.ru/jobs/
Резюме/ответы хорошие — будет 4 собеседования по часу
18:42Как-то сегодня много твитов, попробую завтра поменьше, чтобы не раздувать ленту.
Завтра продолжим, не переключайтесь.
21:42# Вторник 46 твитов
Всем доброго утра.
Вопрос залу: что считается bleeding edge современной вёрстки?
Что-то такое, что нигде или почти нигде не работает.
8:30@xwoody @cssunderhood @CodeRuleZZZ а БЭМ это обязательный пункт для работы в Яндекс?10:16
Нет, БЭМ не являтся обязательным пунктом для работы в Яндексе
В нём нет ничего сложного, понять работая
@hellbeast92 @xwoody @CodeRuleZZZ
10:18@cssunderhood знание спецификации обязательно для работы в яндекс ?
Я бы очень хотел чтобы да, но нет, доскональное знание спецификации не является обязательным условием
twitter.com/CodeRuleZZZ/st…
@CodeRuleZZZ
Привет, посоветуйте плиз какие есть правильные способы локализации на клиенте. @cssunderhood14:01
Сайт статика, i18n(форматы, даты, валюты) не критично, просто перевод ru en c переключателем языка. @cssunderhood14:01
@cssunderhood Затронь пожалуйста тему динамики. Кто за это отвечает, какие инструменты и какой подход используете? Документируется как-то?14:02
@cssunderhood Затронь пожалуйста тему динамики. Кто за это отвечает, какие инструменты и какой подход используете? Документируется как-то?
Накидывайте варианты:
14:02В том, что описано, но не работает с большим отрывом лидирует Grid Layout.
Давние боли: вёрстка paged media (версия для печати) и писем.
14:05@cssunderhood @arseniydmitriev @askaza Были попытки избежать дублирования работы и использовать дизайнерский код? С чем возникли трудности?14:05
@cssunderhood @arseniydmitriev @askaza Были попытки избежать дублирования работы и использовать дизайнерский код? С чем возникли трудности?
Всё упирается в то, что дизайнер делает не кросс-браузерный код, проще переделать
twitter.com/koloskof/statu…
@koloskof @arseniydmitriev @askaza
@cssunderhood неужели версии для печати актуальны?14:08
Версии для печати актуальны для использования информации в офлайне, иногда это бывает нужно.
14:09Тема прикручивания вёрстки к динамике обширна и холиварна, я не хочу её сам обсуждать. Но готов дать возможность получить ответы
@pepelsbey
@VasyaRomashova @cssunderhood Лично я знаю случай: электронные билеты. Плюс различные документы ради документов в государственные инстанции14:13
@cssunderhood @VasyaRomashova есть области, в которых версия для печати дико актуальна vimeo.com/7493090214:13
Увы да, например делал шаблоны для резюме, там это очень актуально. @VasyaRomashova @cssunderhood14:13
@cssunderhood, плюс «печать» это ещё и экспорт в PDF (эта сволочь ещё жива), речь не только о бумаге.14:18
@cssunderhood судя по ответам, как ни крути, от бумажек не избавиться. ;(14:18
@cssunderhood @arseniydmitriev @askaza Что если есть хорошая, кросбраузенрая, базовая библиотека компонентов. Дизайн по сути реиспользование14:18
Это и создание нового, и реиспользование.
Новое дизайнеру закодить сложно, готовое может быть сложным.
@koloskof @arseniydmitriev @askaza
14:20@cssunderhood кстати, многие боли paged media (что где и как разрывать и т.д.) актуальны и для CSS Columns14:21
@cssunderhood @arseniydmitriev @askaza в этом плане интересен подход, который предлагают в @protein_io14:29
Да, если у @protein_io всё получится — это будет заметный шаг вперёд. Ждём первую альфу.
@koloskof @arseniydmitriev @askaza
14:31Мы сделали для себя bem-components и предлагаем всем использовать:
@koloskof @gearmobile @arseniydmitriev @askaza
14:33Давайте всё-таки заставим MS Edge обновиться до актуального CSS Grid! wpdev.uservoice.com/forums/257854-…14:35
Morning! A quick push with some new articles, videos, slides added to my BEM resources repo14:36
@cssunderhood Когда нужно верстать таблицу дивами? Плюсы и минусы перед <table>?
Не вижу смысла верстать таблицу дивами, если это табличные данные.
Хотя недавно в ленте был вариант
twitter.com/carpogoryanin/…
@carpogoryanin
@cssunderhood а обратное? Где уместно использовать display:table-* для нетабличных данных, чисто визуально?14:55
@cssunderhood а обратное? Где уместно использовать display:table-* для нетабличных данных, чисто визуально?
Да, display: table* уместно использовать, где нужно табличное поведение вне зависимости от разметки.
twitter.com/SelenIT2/statu…
@SelenIT2
bem-components сделана так, что дизайн задаётся на отдельном уровне, легко сделать свой.
@koloskof @gearmobile @arseniydmitriev @askaza
15:04@cssunderhood @gearmobile @arseniydmitriev @askaza Что по поводу более крупных "кирпичиков". Списков, табов, менюшек и.т.д (то что кочует)?15:05
По аналогии с bem-components делается библиотека. Взять инфраструктуру тестов и док-ции.
@koloskof @gearmobile @arseniydmitriev @askaza
15:06@cssunderhood @koloskof @arseniydmitriev @askaza хз, но для меня это все сложно. а есть что более попроще в этом плане? готовые компоненты?
bem-components можно использовать «какбутстрап»:
twitter.com/gearmobile/sta…
@gearmobile
@yuritkachenko @iamstarkov @cssunderhood @kizmarh @gearmobile все не так. Частично права на Stylus перешли Automatic (1/2)17:22
@yuritkachenko @iamstarkov @cssunderhood @kizmarh @gearmobile Т.к. TJ во время его написания работал в LearnBoost (ныне Cloudup) (2/2)17:22
@iamstarkov @cssunderhood @kizmarh @gearmobile никто из Automattic и ex-LearnBoost/Cloudup ничего не коммитит уже больше 2-х лет.17:49
@_h4_ @cssunderhood @iamstarkov @kizmarh @gearmobile права до сих пор у Automattic, они разрешили нам перенести его в свою организацию.18:13
@cssunderhood @gearmobile жаль не знал раньше, пишем сами подобные базовые вещи для проектов.
Подписывайтесь на @bem_ru, будете знать новости #b_ из первых рук.
twitter.com/koloskof/statu…
@koloskof @gearmobile
@cssunderhood а почему velocity сейчас становится чуть ли не обязательным skill'ом?20:52
@cssunderhood очередная фигня? myitacademy.ru/index.html )
Ничего про них не знаю.
Кто-то сталкивался?
twitter.com/gearmobile/sta…
@gearmobile
@cssunderhood github.com/julianshapiro/…
Ну это же просто библиотека.
Вы её не знаете при приёме на работу — вы её знаете через два дня работы
twitter.com/gearmobile/sta…
@gearmobile
# Среда 54 твита
@cssunderhood если использовать bem-components как бутстрап, какой самый логичный способ переопределения стилей? (заменить желтый цвет)
Если делать другую тему — не подключать design и сделать свой CSS.
Если подправить — добавить уровень.
twitter.com/koloskof/statu…
@koloskof
@cssunderhood bem-components это здорово. Есть что-то подобное для типографики? (заголовки/списки/абзацы/цитаты итд)
Нет, это проектно/дизайно зависимо и лучше делать на проекте или свою библиотеку для группы проектов.
twitter.com/koloskof/statu…
@koloskof
@cssunderhood у нас на проекте есть файл cosmetic.sass. В нем модификаторы отступов с шагом, выравнивание, цвета итд. Есть подобное в БЭМ?
Если хочется всё доопределить в одном файле, можно сделать блок cosmetic и зависеть от него в page.
twitter.com/koloskof/statu…
@koloskof
@cssunderhood нет мыслей создать pазвернутые гайды типа google.com/design и библиотеку/среду для дизайна в браузере, как в @polymer ?
Нет. У нас никогда не дойдут до этого руки, всегда будет что-то более важное.
twitter.com/koloskof/statu…
@koloskof
@cssunderhood у меня пока не было опыта вёрстки писем, как это делать? пока что больше всего нравится beefree.io, но там не сохранить
Я не верстал письма уже 100 лет, знания уже устарели.
Может кто-то поможет?
Вчера была ссылка на Хабр.
twitter.com/GrawlCore/stat…
@GrawlCore
@cssunderhood Ваш LEGO когда-нибудь появится в открытом доступе? Или он сильно специфичен?
Наш Лего в открытом доступе — это bem-bl и bem-core/bem-components.
Всё остальное специфично и не нужно.
twitter.com/koloskof/statu…
@koloskof
У меня сегодня вынужденное молчание.
Утром проснулся, а айфон — нет. :(
Твиттер для меня — TweetBot3/iOS.
Починил телефон, снова на связи
19:51Мы сейчас делим БЭМ на три части
Методология
Как делать, теория
Платформа
Готовый код
Комьюнити
Кто использует
Проекты сообщества
Сегодня о первой части — методологии.
Это теория, как делать. Никакого готового кода.
Используя методологию можно сделать свою реализацию.
19:57Мы переделали описание методологии, убрали упоминания платформы (bemjson, bemhtml, enb, etc).
Какие проблемы решает
ru.bem.info/method/solved-…
Вводим терминологию
Блок
Элемент
Модификатор
Микс
Дерево
Реализация блока
Технология блока
Уровень переопределения
Соглашение по именованию.
Важно мочь в строке найти имя блока, элемента, модификатора.
Чем отделяются — НЕ ВАЖНО.
20:09Имена могут быть составными.
control-group
ControlGroup
Должна быть нотация для составных имён и возможность программно понять где что.
20:32Это всё БЭМ:
.block-name__elem-name_mod-name_mod-val
.blockName__elemName—modName
.blockName-elemName_modName_modVal
.block₽elem€mod£val
20:37В БЭМ-нотации НЕТ возможности вкладывать элементы в элементы:
.blo__list__item
Можно:
.blo__list
.blo__list-item
@cssunderhood А какая нотация используется у вас? Или обе? Кэмел-кейс в первый раз вижу для этого.
У нас
.block-name__elem-name_mod-name_mod-value
twitter.com/SilentImp/stat…
@SilentImp
@cssunderhood уже наверное не первый спрашиваю, но: миксование - да или нет?
Мы активно используем смешивание сущностей:
class=“button search__button”
ru.bem.info/method/definit…Микс
twitter.com/ALF_er/status/…
@ALF_er
Собственно это всё про БЭМ в CSS.
Следующий важный шаг — перестать писать весь CSS в одном файле и начинать бить его поблочно на файлы.
21:29В простейшем случае разделения на файлы, каждый блок хранится в отдельном файле:
blocks/
blo1.css
blo2.css
В простейшем случае разделения на файлы, каждый блок хранится в отдельном файле:blocks/
blo1.css
blo2.css
Но чаще блок — это отдельная директория:
blocks/
blo1/
blo1.css
blo2/
blo2.css
twitter.com/cssunderhood/s…
@cssunderhood
Но чаще блок — это отдельная директория:blocks/
blo1/
blo1.css
blo2/
blo2.css
Отдельная директория позволяет позже добавить к CSS блока другие технологии, например, документацию.
twitter.com/cssunderhood/s…
@cssunderhood
Отдельная директория позволяет позже добавить к CSS блока другие технологии, например, документацию.
blocks — уровень переопределения, тут блоки.
Уровней может быть много.
Порядок уровней важен.
twitter.com/cssunderhood/s…
@cssunderhood
Уровень переопределения позволяет добавить реализацию к блоку или перекрыть, что было раньше.
На примере CSS это понятнее всего объяснить.
21:46После разбиения блоков по файлам, нужно собрать это всё обратно для использования в продакшене одного файла.
Сборка
ru.bem.info/method/build-m…
В сборке страницы (или бандла, всякая страница — бандл, но не всякий бандл — страница) важны декларация, зависимости блоков, порядок уровней
21:50Собственно, разбивка блоков по файлам и применение сборки сильно отдаляет от просто «БЭМ в CSS» и приближает к использованию в полный рост.
21:54Наверное, уже есть тыщи примеров, но я случайно сделал открытие/закрытие паранджи на CSS codepen.io/tyv/pen/rOVRrZ22:24
@cssunderhood каждый? даже самый маленький? а общих стилей вообще нету, даже html имеет класс?
Да, каждый блок в отдельный файл.
Маленький завтра может вырости, для однозначности лучше раскладывать.
twitter.com/meuwka/status/…
@meuwka
@cssunderhood куда пишете media query?
Обычно в сам блок.
Но с media query обычно не всё однозначно, они ортогональны БЭМ и не всегда системны.
twitter.com/meuwka/status/…
@meuwka
@cssunderhood "cоглашение по именованию" – архаизм. Проблему куда лучше решают инструменты. Да и они станут не нужны с приходом Shadow DOM.
There are only two hard things in computer science: cache invalidation and naming things.
Phil Karlton.
twitter.com/rdvornov/statu…
@rdvornov
@cssunderhood "cоглашение по именованию" – архаизм. Проблему куда лучше решают инструменты. Да и они станут не нужны с приходом Shadow DOM.
Соглашение по именованию едино для всех технологий на проекте и для файловой системы.
Какие инструменты?
twitter.com/rdvornov/statu…
@rdvornov
@cssunderhood каждый? даже самый маленький? а общих стилей вообще нету, даже html имеет класс?
Что ты понимаешь под «общих стилей»?
twitter.com/meuwka/status/…
@meuwka
@cssunderhood это относится к минусам подхода. Напомню про свой доклад (в нем, в том числе, есть эта цитата) slideshare.net/basisjs/ss-484…23:30
@cssunderhood главным образом, пре-процессоры, которые трансформируют исходный код в рамках всех "технологий" обеспечивая инкапсуляцию23:30
@cssunderhood у меня например есть что-то вроде github.com/twbs/bootstrap… и заголовки у меня собраны в typography, а у вас всё это блоки?
Глобальные стили зло, мешают переносить блоки с проекта на проект, но можно всё это написать в блок global.
twitter.com/meuwka/status/…
@meuwka
@cssunderhood Неееет, как так, делал ТРЯП и потерял такой день...
Всё есть в ленте/аккаунте, можно прочитать все твиты.
twitter.com/adinvadim/stat…
@adinvadim
@cssunderhood привязка к файловой системе, имхо, это ошибка – лишает гибкости...
Да, не всегда ресурс — файл и мы новые инструменты сборки проектируем так, чтобы не завязываться на файлы
twitter.com/rdvornov/statu…
@rdvornov
@cssunderhood перекрыть - дополнить или заменить?
Уровень переопределения позволяет и дополнить, и заменить. Отменить не позволяет.
Всё как в CSS.
twitter.com/adinvadim/stat…
@adinvadim
@cssunderhood а вы изначально без reset.css всё делали? Или как-то позже к этому пришли?
Раньше всё делалось с reset.css, постепенно от него отказались и в bem-components его нет.
Никто не умер.
twitter.com/Splurov/status…
@Splurov
@cssunderhood у вас же поди сотни килобайт кода было написано с ним, как получилось всё отрефакторить и отойти от него? Постепенно руками?
Никак, сервисы, написанные с reset.css, живут с ним.
Новые делаются уже без ресета.
twitter.com/Splurov/status…
@Splurov
@Splurov @cssunderhood мне кажется, что они просто перестали использовать теги отличные от div/span :(
Да, как страница выглядит без стилей — уже никто не заморачивается.
Важнее, как прочитывается.
twitter.com/alexeyten/stat…
@alexeyten @Splurov
@cssunderhood @Splurov reset.css сейчас можно заменить автовключением all: initial в блоки и элементы github.com/maximkoretskiy…23:47
@cssunderhood Есть большой проект, грядет глобальный редизайн, с изменением структуры и все такое.Переписывать каждый блок или с нуля все?
Я вам посоветую, а потом буду виноват, что ничего не получилось ;)
twitter.com/dersmoll/statu…
@dersmoll
@cssunderhood @Splurov ну и для all: initial есть полифил github.com/maximkoretskiy…23:48
@Andre_487 @cssunderhood общего плана, например, css modules github.com/css-modules/cs… (как бы я к нему не относился)23:49
@Andre_487 @cssunderhood из более частного шаблонизатор в @basisjs, пока нет хорошей статьи, но про это есть тут: slideshare.net/basisjs/ss-484…23:50
@cssunderhood библиотека блоков же общая по всем проектам? Как на одном может быть reset, а на другом нет?
Новые проекты имеют новый дизайн и новую библиотеку, она без reset.css.
twitter.com/Splurov/status…
@Splurov
@rdvornov @cssunderhood Разве в CSS Modules не так же, как в любых модулях, где соответствие иерархии на ФС делает только лучше?23:51
@cssunderhood супер! Но мне всегда было странно, почему не идете в сторону стат. анализа. Если начнете применять – будет большой шаг вперед23:51
@cssunderhood :) окей, допустим, это гипотетическая ситуация на будущее, с возможностью заложить фундамент для будущих метаморфоз
«В любой непонятной ситуации лучше всё переписать»
twitter.com/dersmoll/statu…
@dersmoll
@Andre_487 @cssunderhood в css modules не важно как расположены файлы, можно сослаться на любой css файл, где бы он ни был (в рамках FS)23:54
@Andre_487 @cssunderhood в css modules не важно как расположены файлы, можно сослаться на любой css файл, где бы он ни был (в рамках FS)
БЭМ он ведь не только и не сколько про сборку, а про работу человека с кодом.
Порядок — добро
twitter.com/rdvornov/statu…
@rdvornov @Andre_487
@cssunderhood а еще я общался с чуваками, что агитировали за css-modules. Они решают проблемы, которые в хорошей команде(-ах) не возникнут23:58
# Четверг 42 твита
@dersmoll @cssunderhood если у вас хорошая архитектура (достаточно инкаплированные модули или "блоки") – редизайн может быть помодульным0:02
@dersmoll @cssunderhood помодульно = процесс может быть либо последовательным, либо параллельным, а не "большой бабабум на неопредел. срок"0:03
@iSnifer @cssunderhood ну а для команд идея CSS Modules очень простая — это автоматический БЭМ. Когда компьютер делает БЭМ за вас.
Таки БЭМ не только про CSS.
twitter.com/andrey_sitnik/…
@andrey_sitnik @iSnifer
@meuwka @cssunderhood адаптивность и правда чаще всего просто в блоке пишется, а вот если отдельная версия, то уровнем переопределения0:07
@cssunderhood Виталий, и это, пожалуй, самая популярная фраза про БЭМ :)
У нас про это есть подробный ответ на форуме:
twitter.com/iSnifer/status…
@iSnifer
@Andre_487 @cssunderhood главное понимать, компоненты не могут быть полноценными черными ящиками, если мы делаем сложные интерфейсы/сценарии0:55
@Andre_487 @cssunderhood основные проблемы возникают на межкомпонентной интеграции и в попытках сделать что-то "нестандартное"0:55
@rdvornov @cssunderhood Это да Такая проблема в яндексовом БЭМе пока не имеет продуманного решения, каждая команда делает по-своему0:55
@Andre_487 @cssunderhood эта проблема практически нигде не решена. Те кто говорят, что у них такой проблемы нет, скорей всего, обманывают ;)0:55
@cssunderhood а так:1:41
b-block[mod-name=mod-val] .elem
Вопрос с подвохом ;-)
@aristov7 @cssunderhood а так нет миксов, так что не БЭМ.1:41
Всем доброе утро.
Продолжаем нашу неделю
БЭМ в @cssunderhood
Сегодня поговорим о БЭМ-платформе.
Не переключайте канал.
8:47БЭМ-методология описывает теорию, как делать, без реализации.
Методологию можно использовать по частям.
Многим достаточно BEM CSS.
8:49Если освоена сборка — можно картинки блоков класть в папки блоков.
Тесты скриншотами для контроля регрессий туда же
ru.bem.info/tools/testing/…
Когда CSS пишется по БЭМ, всё разложено по файлам, есть сборка, хочется, чтобы и HTML блока лежал с CSS.
Начинаем писать шаблоны поблочно.
9:27Если CSS ничего особенного не надо, то с шаблонами сложнее.
Для отрисовки блока, нужно передать данные этого блока, всё, что не разметка.
9:35@cssunderhood а что делать если в нескольких блоках используется одна и та же картинка? дублировать?
Оформить эту картинку (и может быть её окружение) как отдельный блок и использовать его везде.
twitter.com/teardrop_lisa/…
@teardrop_lisa
@cssunderhood это может усложнить структуру
А может наоборот её упростить и сделать более плоской.
Смотря с какой стороны смотреть.
twitter.com/teardrop_lisa/…
@teardrop_lisa
Мы в качестве формата данных блока используем JSON с предопределёнными полями.
Назвали его (сюрприз) BEMJSON:
9:42Описание БЭМ-дерева делается в промежуточном формате, описывающем блоки/элементы/модификаторы/данные-блока.
Это позволяет генерировать HTML
9:44Формат данных блока может быть любым, не обязательно BEMJSON, важно, чтобы там была информация о сущностях и данные.
9:46Формат данных блока может быть любым, не обязательно BEMJSON, важно, чтобы там была информация о сущностях и данные.
BEMJSON:
{
block: “search”,
mods: { type: “suggest”},
content: [
{ elem: ‘hint’, content: ’🔎′ }
]
}
Формат данных блока может быть любым, не обязательно BEMJSON, важно, чтобы там была информация о сущностях и данные.
Формат в XML может быть таким:
<b:search m:type=“suggest”>
<e:hint>🔎</e:hint>
</b:search>
BENJSON переводится в HTML шаблонизатором.
bh-php
github.com/bem/bh-php/
BEMHTML
ru.bem.info/technology/bem…
Шаблоны для каждого блока кладутся в папку блока:
blocks/
blo1/
blo1.css
blo1.png
blo1.bh.php
Собираются через enb.
10:29Фактически, генерация HTML может быть отдельным слоем, который получает на вход БЭМ-дерево и отдаёт HTML.
Этот слой можно унести в браузер.
10:31Бекенд генерирует JSON (или любой другой формат с данными).
Он преобразуется в BEMJSON (БЭМ-дерево).
Из него получается HTML.
10:34Слой BEMJSON -> HTML максимально простой, работа с данными и их преобразование на уровне трансформации JSON -> BEMJSON.
10:35Один из вариантов преобразования JSON -> BEMJSON — шаблонизатор BEMTREE
Назван так, потому что создаёт БЭМ-дерево.
10:37BEMTREE шаблоны добавляются в папку блока.
Блок знает как построить свой BEMJSON и HTML
blocks/
b/
b.css
b.bemtree
b.bemhtml
@cssunderhood @meuwka Допустим как emmet только в консольке прописать new block > element1 + element2 и разворачиваются папки 1/1
Прям как emmet нет, есть
bem create -b block
Технологии создадутся, заданные по умолчанию для уровня.
twitter.com/ros_ivanov/sta…
@ros_ivanov
@cssunderhood У вас в офисе не слишком много людей работает. Принято-ли среди мужчин обходить всех с рукопожатиями? Как ты сам к этому отн.?
Ну как «не очень много», 4 этажа, 57 человек.
Принято рукожаться.
Сейчас отношусь к этому «никак».
twitter.com/mista_k/status…
@mista_k
После перехода на блочное написание шаблонов (а иногда до), хочется и js писать блочно.
И иметь возможность доопределять блоки, как в CSS.
14:06Для этого мы разработали мини-фреймворк i-bem.js
декларативной стиль — набор состояний
интегрируется с BEMHTML/BH
14:11Ну и что бы совсем хорошо было — ко всему этому добавляем библиотеки готовых блоков:
14:15bem-core
ru.bem.info/libs/bem-core/
Базовый набор блоков, i-bem.js, page.
Ничего визуального, только необходимые технологии/хелперы.
14:17bem-components
ru.bem.info/libs/bem-compo…
Визуальные примитивы, «кирпичи» практически любой страницы.
14:19bem-components
ru.bem.info/libs/bem-compo…Визуальные примитивы, «кирпичи» практически любой страницы.
Реализовано так, что дизайн лежит отдельным уровнем, его можно не подключать и реализовать свой вместо яндексового.
14:21Реализовано так, что дизайн лежит отдельным уровнем, его можно не подключать и реализовать свой вместо яндексового.
Для этого надо написать только CSS, вся остальная логика работы блока используется из базовой реализации.
14:22Для быстрого старта проекта сделали
project-stub
ru.bem.info/tutorials/quic…
И генератор для yeoman, для кастомизации
ru.bem.info/tools/bem/bem-…
БЭМ-платформа
BEMJSON
BEMHTML / BH
i-bem.js
bem-core / bem-components
project-stub
enb-bem
Всё интегрированно, можно использовать отдельно
14:30Про платформу это всё на сегодня. Задавайте вопросы.
Завтра поговорим о третьей важной части БЭМ — сообществе.
15:02# Пятница 31 твит
Доброе утро.
Сегодня поговорим о третьей составляющей БЭМ — сообществе.
Какие каналы получения информации, как участвовать в разработке.
10:20Много информации, всё сложно
Переписали раздел Методология.
Редизайн
Выделим явно разделы Платформа и Сообщество
10:25@cssunderhood как правильно по БЭМ задать имена классов для обоих header в данном случае - codepen.io/gearmobile/pen… ?
Если это один блок, то header.
Если разные:
header-aside
header-main
twitter.com/gearmobile/sta…
@gearmobile
У всякой штуки в этом мире есть как поклонники, так и хейтеры.
Есть хейтеры и у БЭМ.
Подписывайтесь, бывает весело
11:16Максимально простое описание методологии BEM CSS.
Сделан @iamstarkov, @floatdrop, @toivonens.
Твиттер @getbem.
11:19Вебинары
Вёрстка
ru.bem.info/talks/loftscho…
Вёрстка
ru.bem.info/talks/beminar-…
Сборка
ru.bem.info/talks/beminar-…
JS
ru.bem.info/talks/beminar-…
Овер 500 фоловеров! Наберу тыщу — опубликую своё фото. RT если заинтриговал, если нет — в избранное.11:36
Хочется, чтобы браузеры научились поддерживать favicon.svg
Это позволит отдавать одну векторную иконку, вместо кучи apple-touch-icon и пр.
14:13Хочется, чтобы браузеры научились поддерживать favicon.svgЭто позволит отдавать одну векторную иконку, вместо кучи apple-touch-icon и пр.
Сейчас с этим всё плохо
Только Firefox 41+ :(
14:17@cssunderhood @andrey_sitnik А вы в @yandex уже поддерживаете caniuse.com/#feat=srcset (понятное дело с фолбеком на IE) ?
AFAIK нет.
twitter.com/Rukomoynikov/s…
@Rukomoynikov
@cssunderhood @bem_xxx так это что, хейтеры здесь? Я думал, это смешная пародия от фанатов14:27
Любые вопросы про БЭМ, нужна помощь или что-то не работает — пишите на форум,
Для этого нужен аккаунт на гитхабе.
14:32Вакансия в команду разработки Лего/БЭМ в
Москва
yandex.ru/jobs/vacancies…
Питер
yandex.ru/jobs/vacancies…
Симферополь
yandex.ru/jobs/vacancies…
Вакансия в команду разработки Лего/БЭМ вМосква
yandex.ru/jobs/vacancies…Питер
yandex.ru/jobs/vacancies…Симферополь
yandex.ru/jobs/vacancies…
В комментарии в форме желательно написать, что вы хотите в Лего/БЭМ и узнали об этой вакансии в @cssunderhood :)
14:36@cssunderhood @ros_ivanov @meuwka а как на счёт tadatuta.github.io/bemmet/ ;)14:37
@cssunderhood @andrey_sitnik вдобавок к пачке иконок понадобится еще и svg отдавать?
В идеале — только svg.
twitter.com/karismafilms/s…
@karismafilms @andrey_sitnik
В общем я, кажется, всё что хотел рассказать за эту неделю — рассказал.
Задавайте вопросы.
В воскресенье freestyle, поговорим про хобби.
14:39@cssunderhood я использую в проектах один png 128х128 (или 512х512). Интересно, в чем может быть проблема.
Safari/iOS не использует favicon, ввёл свой «стандарт» apple-touch-icon
Это и проблема
Хочется единый favicon.svg
14:42@cssunderhood для закладок работает, home screen — да, нужен apple-touch, но это одна и та же иконка png 512x512, которая скейлится сама
png 512x512 дофига весит, если сравнивать с svg.
14:53@cssunderhood то, что svg везде хочется, я не спорю :) но бывает растр еще. а пока нет svg это оверкил, по-моему pic.twitter.com/83hkHwuWmw15:04
@cssunderhood с точки зрения поисковой оптимизации, как Яндекс относится к множественным <h1> на одной странице (в <article>, <section>)?
Я ничего не знаю про SEO.
twitter.com/juwain/status/…
@juwain
@cssunderhood @andrey_sitnik то, что можно запузырить один вектор, и он будет хорошо рендериться во всех размерах - иллюзия недизайнеров
В 16x16 не будет, всё что выше — вполне.
twitter.com/kojoru/status/…
@kojoru @andrey_sitnik
@cssunderhood таки ведь ещё целая суббота впереди.
У меня заготовленные темы закончились.
twitter.com/_h4_/status/64…
@_h4_
@cssunderhood @_h4_ как насчет bem в RoR?
Ничего про это не знаю.
twitter.com/mamyashev/stat…
@mamyashev @_h4_
@cssunderhood Какой текстовый редактор предпочитаете?
Vim
Sublime3
twitter.com/yustovskiy/sta…
@yustovskiy
@cssunderhood кем ты видишь себя через пять лет?
Живя на пороховой бочке, очень сложно ответить на этот вопрос.
Но в принципе — тем же, там же.
twitter.com/tormanager/sta…
@tormanager
# Суббота 42 твита
@voischev @cssunderhood круто, а как из json развернуть папки ну и структуру в целом? может есть что готовое?
Готового нет, записал как идею использование bemmet для bem-tools для создания блоков.
twitter.com/ros_ivanov/sta…
@ros_ivanov @tadatuta
@cssunderhood слышала активно практикуете парное программирование? какие инструменты для удаленного можете порекомендовать?
Посоветуйте инструмент для удалённого парного программирования, что сейчас самое удобное?
twitter.com/meuwka/status/…
@meuwka
@arturi @cssunderhood этого очень, очень мало - realfavicongenerator.net/faq. А до векторных иконок ещё далеко( caniuse.com/#feat=link-ico…9:33
@cssunderhood для Atom вот этот неплохой: atom.io/packages/atom-… @meuwka9:52
@arturi @cssunderhood может кто посоветует cli генератор? Хочу хранить в исходниках одну иконку 192x192, и генерировать все как build-step10:56
Затронем тему производительности фронтенда.
Простые правила, чтобы не было мучительно больно.
И накидайте ссылок на хорошие книги/блоги.
11:11Правило 1: всё передающееся по сети должно быть сжато.
Статику gzip-овать, используя zopfli, github.com/google/zopfli
11:17@cssunderhood отличные материалы на google developers: developers.google.com/web/fundamenta…11:17
Правило 1: всё передающееся по сети должно быть сжато.Статику gzip-овать, используя zopfli, github.com/google/zopfli
Клиент поддерживает Deflate — отдавать .css.gz, нет — просто .css.
То же самое с JS и статическим HTML.
11:18Правило 2: всё передающееся по сети должно быть оптимизировано
PNG/JPG
imageoptim.com
CSS
github.com/jakubpawlowicz…
JS
Что лучше?
Правило 3: всё что можно не передавать по сети — не передавать (ваш КО)
Стили MSIE не нужны Safari.
Для touch не нужны стили desktop.
11:26Правило 3: всё что можно не передавать по сети — не передавать (ваш КО)Стили MSIE не нужны Safari.
Для touch не нужны стили desktop.
Картинки отдавать с вечным кешированием, имя файла — хеш от его содержимого.
Загружаем заново, если он изменился.
11:29Картинки отдавать с вечным кешированием, имя файла — хеш от его содержимого.Загружаем заново, если он изменился.
Это умеет делать borschik
При обработке CSS он может заменять имена файлов в background.
11:32Правило 4: параллельная загрузка наше всё.
Браузер делает ограниченное количество запросов к одному хосту. И ограниченное количество хостов
11:34Правило 4: параллельная загрузка наше всё.Браузер делает ограниченное количество запросов к одному хосту. И ограниченное количество хостов
Статику с отдельного хоста (без кук).
Получается — сделать алиасы и отдавать с нескольких хостов параллельно.
11:38@cssunderhood @meuwka а нам screenhero.com нравится11:39
@cssunderhood Интересная заметка в блоге веб-студии о практических результатах оптимизации некоторых больших сайтов product.voxmedia.com/2015/8/13/9143…11:41
@mostolovista, вы не пробовали сделать инструмент для обработки CSS, чтобы максимизировать параллельность загрузки?
И инструмент для анализа, какие картинки на странице показываются раньше и передвигать их правила выше
@mostolovista
twitter.com/cssunderhood/s…
Правило 5: генерировать в процессе сборки и потом отдавать статически всё, что можно.
Если можно сгенерировать статический HTML — делай это
11:46@cssunderhood отличный доклад с DUMP 2015 - Оптимизация загрузки веб-страниц: vimeo.com/12401522012:02
@cssunderhood Правило №4 сейчас скорее анти-паттерн. Лучше включить SPDY и HTTP/2 на сервере, чем городить паралльную загрузку с 3-4 хостов.
Какой процент браузеров сейчас поддерживает HTTP/2 ?
twitter.com/mista_k/status…
@mista_k
@cssunderhood Поделись, пожалуйста, своим мнением по поводу инициативы «Deprecating Non-Secure HTTP» blog.mozilla.org/security/2015/…
HTTPS это хорошо.
Яндекс почти весь перешёл уже на https.
twitter.com/mista_k/status…
@mista_k
@cssunderhood caniuse.com/#search=spdy caniuse.com/#feat=http2 Все современные браузеры уже давно. IE стал вечнозелёным и скоро подтянется.12:22
@cssunderhood Правило №4 сейчас скорее анти-паттерн. Лучше включить SPDY и HTTP/2 на сервере, чем городить паралльную загрузку с 3-4 хостов.12:22
У меня есть вот такая штука github.com/tadatuta/creat… @cssunderhood @ros_ivanov12:22
Правило 6: загрузка одних ресурсов не должна блокировать загрузку основного HTML и других ресурсов.
Но и мигания быть не должно.
12:254 сервера по 4 картинки одновременно или сколько там сейчас можно. Грузить с a.yastatic.net, b.yastatic.net,…
12:39@cssunderhood у браузеров кроме ограничения количества соединения с хостом, есть просто ограничение на количество соединений
Ну да, задача впихнуть максимум полезного в это ограничение.
Сначала и параллельно грузить важное.
twitter.com/mostolovista/s…
@mostolovista
@cssunderhood оно же и так параллельно загружается, куда уж параллельнее?12:43
@cssunderhood у браузеров кроме ограничения количества соединения с хостом, есть просто ограничение на количество соединений12:44
@cssunderhood и в самом популярном браузере оно составляет десять штук: browserscope.org/?category=netw…12:44
@cssunderhood притом субдомены могут указывать технически на одно и то же пространство, одни и те же файлы, только домен в сырцах разный12:44
@cssunderhood последний браузер, не поддерживающий дефлейт, был ИЕ6 СП2
По этим вашим интернетам не только браузеры ходят.
twitter.com/ruGreLI/status…
@ruGreLI
@cssunderhood почему в БЭМ всё ещё строковый шаблонизатор и когда он будет DOM? Кажется, что переделать этот момент не так сложно
Это вопрос к @veged и @dfilatov_
twitter.com/kuksikus/statu…
@kuksikus
@cssunderhood @mostolovista с распространением spdy/quic это уже не совсем правда. Один домен может быть быстрее16:05
@alexeyten @cssunderhood если шардирование настроено с помощью CNAME тогда хуже не будет.16:05
@alexeyten @cssunderhood но опять таки, оно и сейчас не всегда полезно. Всё надо применять к месту.16:05
@cssunderhood какую связку БЕМ технологий чаще всего используют ваши дизайнеры? Пишут ли bem-json?
БЭМ, не БЕМ
BEMJSON не пишут, разработали сами себе jBlock и делают прототипы на нём.
Говорят так проще
twitter.com/koloskof/statu…
@koloskof
@cssunderhood гораздо "интересней" конечно использовать bem-json и шаблонизатор. Но мозг немного ломается.
От чего именно ломается? В простых случаях там всё просто
Можем помочь на форуме
ru.bem.info/forum/
twitter.com/koloskof/statu…
@koloskof
@cssunderhood Разбираюсь со струрой project-stub. Не понятно какие именно из технологий использовать. Всего много.
Начните с «классики» ;)
BEMJSON + BEMHTML.
Научитесь генерировать HTML, а потом уже можно добавлять js.
twitter.com/koloskof/statu…
@koloskof
# Воскресенье 91 твит
@cssunderhood подскажите - нужен gulp+bootstrap+sass для возможности кастомизации в ходе workflow9:04
@cssunderhood Обнаружил еще один хороший ресурс, на котором переводятся на русский интересные статьи prgssr.ru9:04
@cssunderhood Вот важный впрос ко всем верстальщиком в чатике: что почитать из профильной литературы для верстальщика?9:04
@cssunderhood @dfilatov_ @kuksikus наверное имеется ввиду virtual DOM, т. к. чисто DOM-шаблонизаторы существуют давно и с ними есть проблемы9:04
@cssunderhood @dfilatov_ @kuksikus с виртуальным тоже есть нюансы — экспериментируем github.com/dfilatov/vidom9:04
@cssunderhood @dfilatov_ @kuksikus а чем не нравится строковый шаблонизатор, кроме того, что за него смузи в коворкингах не нальют?9:05
От всей души поздравляем всех наших разработчиков с днём программиста!9:50Да и не наших тоже, чего уж там :)
Сегодня freestyle, любые вопросы/ответы.
Я хочу поговорить о хобби, считаю, что это то, что должно быть у каждого в том или ином виде.
9:52Хобби — это то, что приносит моральное удовлетворение.
При этом, как правило, ест время и/или деньги.
9:59У меня таких хобби три
-
Игра на басу в офисной группе
-
Строительство пассивного дома
-
Благотворительный фонд
10:02
gorod-mechty.org
@veged @cssunderhood @dfilatov_ я про то, что i-bem из bemjson делает строку, а потом это вставляется в dom, или я чего-то не знаю?10:03
@kuksikus @cssunderhood @dfilatov_ а что со скоростью? есть какие-то адекватные сравнения?10:22
@veged @cssunderhood @dfilatov_ что быстрее вставляется в dom? Dom-объект или строка? Конечно есть. И разница огромная10:22
@veged @cssunderhood @dfilatov_ можно призвать @rdvornov :) вот из его презентации, как это повлияло на backbone pic.twitter.com/ymqYbSAD5n10:23
@cssunderhood 1. что играете?
Что получается :)
Импровизируем (гитара, клавиши, бас, ударные), вокала нет.
Постоянного ничего не играем
twitter.com/beshur/status/…
@beshur
@veged @cssunderhood @dfilatov_ а если взять любой браузер без аппаратного ускарения (любой на iOS кроме safari) разница будет очень заметна10:26
@ardshock @cssunderhood css secret - lea verou. А в целом хорошие книги по хтмл ксс - редкость. Имхо все тренды черпать из статей лучше.10:27
На строительстве дома получил очень много опыта.
Только применить его больше пока негде.
Вообще стройка очень похожа на веб-разработку.
10:56На строительстве дома получил очень много опыта.Только применить его больше пока негде.
Вообще стройка очень похожа на веб-разработку.
Даже строя по проекту — придётся частично переделывать.
Сделанное разными людьми не стыкуется.
Баги — это дорого.
11:00@cssunderhood дом это уже хобби? Так все плохо там?
Хобби по определению приносит моральное удовлетворение, ест время/деньги, никогда не окупится.
twitter.com/yuritkachenko/…
@yuritkachenko
Хобби по определению приносит моральное удовлетворение, ест время/деньги, никогда не окупится.
Почти закончил
Вообще, если бы не заморачивался с пассивностью и экологичностью — закончил бы давно
twitter.com/cssunderhood/s…
@yuritkachenko
Хочу жить в Симферополе и при этом улучшать его — сделал благотворительный фонд «Город мечты»
Высаживаем деревья, восстанавливаем сломанное
11:20Хочу жить в Симферополе и при этом улучшать его — сделал благотворительный фонд «Город мечты»Высаживаем деревья, восстанавливаем сломанное
Проблемы с финансированием, всем всё пофиг.
Постоянно ищу тех, кому не пофиг и кто хочет изменить окружение.
11:22Сайт «Город мечты» поднят на Wordpress, неудобно.
Хочу переписать на bem platform, но руки не доходят
Никто не хочет переделать для опыта?
11:24В городе, особенно в центре, нельзя просто взять и посадить дерево.
Нужно разрешение от мэрии, получается сложно, фонду проще, чем частному
11:26Садить дают не везде: коммуникации, рекламные щиты.
Из 30 первых высаженных деревьев два года назад осталась половина.
Остальные выломаны.
11:31@cssunderhood ага, не просто так наверное паттерны проектирования из архитектуры переняли
Их переняли из архитектуры потому что больше не откуда было, не потому, что они подходят идеально для ПО
twitter.com/sergey23z/stat…
@sergey23z
@cssunderhood хулиганами или природной стихией выломаны?
Вандалами. Причём некоторые деревья ломали планомерно в течение нескольких дней.
twitter.com/mistadikay/sta…
@mistadikay
@kuksikus @cssunderhood @dfilatov_ а в замерах учитывается разница во времени генерации строки и объекта? ;-)11:37
@cssunderhood не опускаются руки после такого?
Нет, это опыт.
Поняли, что надо закладывать в смету высадки палки, чтобы делать мини-ограду.
twitter.com/mistadikay/sta…
@mistadikay
@cssunderhood apple-touch-icon достаточно 1 отдавать, самую большую, без указания размера. Она отскейлится в нужное. Это официальный хинт.11:59
@dersmoll почитай про редизайн hh.ru Они переверстывали поблочно/постранично, в порядке приоритета "ужаса". @cssunderhood11:59
@cssunderhood не опускаются руки после такого?
Гораздо бОльшая проблема — действия властей, спиливших 20 больших деревьев на улице, «они бились током»
twitter.com/mistadikay/sta…
@mistadikay
@gearmobile @cssunderhood Если правильно понял – github.com/yeoman/generat…12:16
@sudilkovsky «Переверстать всё и в срок». Андрей Сумин. @cssunderhood @dersmoll12:52
@cssunderhood есть записи банды?
Есть записи репетиций на айфон, ничего интересного для внешнего слушателя.
twitter.com/GrawlCore/stat…
@GrawlCore
Благотворительный фонд ест в основном только деньги, очень мало времени.
twitter.com/webholt/status…
@webholt
@cssunderhood Как относишься к спорту? Удалось ли выработать "правильный" баланс работа/спорт без ущерба работе?
Занимаюсь йогой, она позволяет моей спине не развалиться окончательно и способствует спокойствию ума.
twitter.com/koloskof/statu…
@koloskof
@cssunderhood Как относишься к спорту? Удалось ли выработать "правильный" баланс работа/спорт без ущерба работе?
Баланса между работой и спортом так и не достиг.
Работа канибализирует все остальные активности.
twitter.com/koloskof/statu…
@koloskof
@cssunderhood Много времени уделяешь самообразованию? На что сейчас делаешь упор в разработке/дизайне или может в какой-то другой тематике?
Раньше уделял очень много времени, сейчас нет
Долго руководил без разработки, начал программировать опять
twitter.com/koloskof/statu…
@koloskof
@cssunderhood Какое твое отношение к "технологичной еде". Что думаешь по поводу soylent.com ?
Я предпочитаю натуральную пищу, выращенную в моём регионе проживания.
К soylent не отношусь, не пробовал
twitter.com/koloskof/statu…
@koloskof
@harisov пользуясь случаем — очень хорошо переписали. Стройно и лаконично. Всем большой респект и @inna__neige, в частности :-)16:55
@cssunderhood мануал или книгу с чего начать можно?
Когда начинал, моей йогой очень долго было изменение питания
«Трактат о питании»
yadi.sk/i/4OcUUC11ewnjs
twitter.com/gunlinux/statu…
@gunlinux
@cssunderhood мануал или книгу с чего начать можно?
А йогу лучше начинать с инструктором, чтобы отстроить.
Я люблю yoga23.com, рекомендую.
twitter.com/gunlinux/statu…
@gunlinux
@cssunderhood Какие-нибудь книжки сейчас читаете? И какие последние три прочитанные книги?
bookmate:
«Марсианин» (очень)
«Будущее» Глуховского (очень, но не слабонервным)
На бумаге
«Робинзон Крузо»
twitter.com/psyw/status/64…
@psyw
@cssunderhood @koloskof это, к слову, один из громадных плюсов Крыма17:03
@cssunderhood товарищи! мне кажется, вы немного заскучали без дела? есть желание ? сурово “потрепать” сие творение - goo.gl/Gx7c7917:04
@cssunderhood пассивный дом — это распространённый термин? Можно идти гуглить?
В моём случае это «пассивный автономный экодом», каждое слово значимо.
twitter.com/_h4_/status/64…
@_h4_
Пока я в эфире, рекламирую новый блог о производительности от @mostolovista:
Твиттер: @perfception
Будет круто!
19:24@cssunderhood мануал или книгу с чего начать можно?
По йоге рекомендую почитать
«Третье открытие силы»
Художественная, очень
«Научная йога»
Демистификация.
twitter.com/gunlinux/statu…
@gunlinux
@cssunderhood как относишься к анекдотам про басистов?
Обожаю
«
Гитарист: какой соляк, все девчонки мои!
Барабанщик: какая сбивка!
Басист: до-ми-соль, до-ми-соль…
»
twitter.com/veged/status/6…
@veged
@cssunderhood @mistadikay от вандалов разве спасёт? :-(
Нет, но хоть что-то.
twitter.com/veged/status/6…
@veged @mistadikay
@cssunderhood @veged @koloskof 3 года занимаюсь, тоже начал разваливаться. Йога спасла и дала гибкость, которая едва ли для меня реальна.21:05
Задавайте вопросы, осталось 3 часа до конца смены.
21:23@cssunderhood заменят фронтенд-разработчиков "роботы" через 10 лет или нет?
Нет.
Программирование для веб всегда будет неведомой хуйнёй, недоступной для роботов!
twitter.com/yuritkachenko/…
@yuritkachenko
@cssunderhood are u happy?
Если под счастьем понимать особую химию в голове, как при влюблённости, то нет
Но я доволен жизнью )
twitter.com/teardrop_lisa/…
@teardrop_lisa
Кстати, на следующей неделе будем вместе с @tadatuta на @FrontTalks в Екатеринбурге, хорошая возможность поговорить о #b_ и не только.
21:33@cssunderhood вообще я скорее про утилиты писал, потому роботы в кавычках.
Как это представляешь?
Вряд ли робот сможет писать бизнес-логику
А так, конечно, #b_ захватит мир.
twitter.com/yuritkachenko/…
@yuritkachenko
@cssunderhood посмотри на Parse b Firebase. Скоро логику модно будет писать двигая квадратики.21:38
@cssunderhood посмотри на Parse b Firebase. Скоро логику модно будет писать двигая квадратики.
А-ха-ха.
Я это слышал лет 15 назад в контексте, что всё уже запрограммировано и больше не надо.
twitter.com/yuritkachenko/…
@yuritkachenko
@cssunderhood, насколько ты лёгок на подъём? Стоит ли звать на конференции, локальные встречи и т.п?
В целом лёгок.
Я не уверен, что могу что-то новое рассказать, поэтому обычно не езжу.
twitter.com/pepelsbey/stat…
@pepelsbey
@cssunderhood, насколько ты лёгок на подъём? Стоит ли звать на конференции, локальные встречи и т.п?
Ну и ай кэнт андэрстэнд йоур бэрбэриэн лэнгвтдж.
Встретимся на #fronteers2015? ;)
twitter.com/pepelsbey/stat…
@pepelsbey
@cssunderhood @harisov большое спасибо. Было приятно читать всю неделю. Много полезных и нужных ответов. Переключаю фокус на @bem_ru21:44
@cssunderhood @harisov большое спасибо. Было приятно читать всю неделю. Много полезных и нужных ответов. Переключаю фокус на @bem_ru
Спасибо, это была интересная неделя!
Кстати, мне можно продолжать задавать вопросы в @harisov и @bem_ru.
twitter.com/koloskof/statu…
@koloskof
@cssunderhood так скажет любой
Да, счастлив.
Я там, где хочу быть.
С теми, с кем хочу.
И делаю, что считаю нужным
Что ещё нужно?
twitter.com/teardrop_lisa/…
@teardrop_lisa
@cssunderhood когда твоя следующая смена =)
Хорошо, когда каждую неделю новый ведущий
Надеюсь, что их будет много и они не будут повторяться долго
twitter.com/ros_ivanov/sta…
@ros_ivanov
@veged @kuksikus @cssunderhood @dfilatov_ в моих замерах время ген. строк не учитывалось, но время ген. dom – да slideshare.net/basisjs/dom-27…22:14
@veged @kuksikus @cssunderhood @dfilatov_ innerHTML обычно выигрывает на больших единичных фрагментах, но проигрывает на повторяющихся22:14
@veged @kuksikus @cssunderhood @dfilatov_ основные накладные расходы получаются на операциях с полученым через innerHTML DOM-фрагментом22:15
@veged @kuksikus @cssunderhood @dfilatov_ но все это имеет значение, в основном, для сложных динамических интерфейсов22:17
@freiksenet_ru @kuksikus @cssunderhood @veged @dfilatov_ чтобы минимизировать погрешность + slideshare.net/basisjs/dom-27…22:22
@freiksenet_ru @kuksikus @cssunderhood @veged @dfilatov_ и для сложных приложений 1000 это норм и не предел, не обязательно 1 список etc22:22
@rdvornov @kuksikus @cssunderhood @veged @dfilatov_ Если вас волнует скорость на мобильниках то там и 20 элементов не влезет.22:28
@rdvornov @kuksikus @cssunderhood @veged @dfilatov_ Надо рендерить то что пользователь видит и мерить это. Микробенчмарки это бесполезно.22:28
@freiksenet_ru @rdvornov @cssunderhood @veged @dfilatov_ опрометчивое заявление. У меня есть другой опыт22:29
@freiksenet_ru @rdvornov @cssunderhood @veged @dfilatov_ опрометчивое заявление. У меня есть другой опыт
Напиши про свой опыт.
twitter.com/kuksikus/statu…
@kuksikus
Вообще, конечно, жаль, что это происходит на русском и остальной мир не видит
Надеюсь, что рунет когда-то дорастёт до общения на английском
22:32@kuksikus @rdvornov @cssunderhood @veged @dfilatov_ Опрометчиво говорить про рендеринг 1000 элементов на мобильных как про типичный юзкейс.22:32
@cssunderhood не всегда то, что ты делаешь, будет использоваться так, как ты планируешь…22:32
@cssunderhood я делал большую тяжелую статистику думая, что ей будут пользоваться только на десктопах…22:32
@freiksenet_ru @kuksikus @cssunderhood @veged @dfilatov_ мобильные отдельная тема, но и там DOM подходы дают большую производительность22:33
Мне надоело вас ретвитить, напишите посты в блоги и подставьте на суд общественности.
@freiksenet_ru @rdvornov @kuksikus @veged @dfilatov_
22:36@rdvornov @kuksikus @cssunderhood @veged @dfilatov_ Оптимизация в головах а не во фреймворке. Мерять надо приложение а не придуманный бенч22:37
@cssunderhood @freiksenet_ru @kuksikus @veged @dfilatov_ если заапрувят, на HighLoad будет новый доклад по теме highload.ru/2015/abstracts…22:44
@cssunderhood @freiksenet_ru @kuksikus @veged @dfilatov_22:53
пока есть слайды (и где-то видео) устаревшего доклада slideshare.net/basisjs/moscow…
На этой неделе с вами был
@harisov, Яндекс, Симферополь
Работайте меньше, получайте больше, используйте #b_ и да пребудет с вами сила
Thnx
22:57@cssunderhood немного пропустил, буду читать в понедельник) а было про то как перевести большой проект на бэм ?!
С этим вопросом лучше на
#b_ форум
ru.bem.info/forum/
twitter.com/talgautb/statu…
@talgautb
@cssunderhood даже Яндексу, с его ресурсами, по ощущениям проще продвигать тот же БЭМ на чужбине, чем у нас...
Твоими бы устами да мёд пить.
На русском вещать в разы проще, чем на английском.
twitter.com/rdvornov/statu…
@rdvornov
@cssunderhood на любом языке сложно, нужно учиться. Но даже если вещаешь на родном и тебя не поддерживают, то вряд ли решишься на английский
Ха!
twitter.com/rdvornov/statu…
@rdvornov
# Ссылки
github.com
- https://github.com/ruslansagitov/
- http://github.com/sturobson/BEM-resources
- https://github.com/maximkoretskiy/postcss-autoreset
- https://github.com/maximkoretskiy/postcss-initial
- https://github.com/css-modules/css-modules
- https://github.com/bem/bh-php/
- https://github.com/bem/bem-forum-content-ru/
- https://github.com/bem/
- https://github.com/bem-incubator/
- https://github.com/sturobson/BEM-resources
- https://github.com/google/zopfli
- https://github.com/jakubpawlowicz/clean-css
- https://github.com/haydenbleasel/favicons
- https://github.com/tadatuta/create-files-by-bemjson
- https://github.com/dfilatov/vidom
- https://github.com/kovchiy/jblock
- https://github.com/yeoman/generator-gulp-webapp
ru.bem.info
- https://ru.bem.info/tools/testing/gemini/
- https://ru.bem.info/talks/beminar-css-2015/
- https://ru.bem.info/libs/bem-components/v2.3.0/
- https://ru.bem.info/blog/bem-as-bootstrap/
- https://ru.bem.info/method/solved-problems/
- https://ru.bem.info/method/definitions/
- https://ru.bem.info/method/naming-convention/
- https://ru.bem.info/method/definitions/#
- https://ru.bem.info/method/filesystem/
- https://ru.bem.info/method/build-method/
- https://ru.bem.info/forum/163/
- https://ru.bem.info/technology/bemjson
- https://ru.bem.info/technology/bemhtml/
- https://ru.bem.info/technology/bh/
- https://ru.bem.info/technology/bemtree/
- https://ru.bem.info/technology/i-bem/
- https://ru.bem.info/libs/bem-core/
- https://ru.bem.info/libs/bem-components/
- https://ru.bem.info/tutorials/quick-start-static/
- https://ru.bem.info/tools/bem/bem-stub/
- https://ru.bem.info/
- https://ru.bem.info/forum/
- https://ru.bem.info/blog/
- https://ru.bem.info/talks/loftschool-music-2015
- https://ru.bem.info/talks/beminar-css-2015
- https://ru.bem.info/talks/beminar-build-2015
- https://ru.bem.info/talks/beminar-js-2015
- http://ru.bem.info/forum/
- https://ru.bem.info/tools/optimizers/borschik/
www.slideshare.net
- http://www.slideshare.net/basisjs/ss-48417378/15
- http://www.slideshare.net/basisjs/ss-48417378
- http://www.slideshare.net/basisjs/dom-27356908/60
- http://www.slideshare.net/basisjs/dom-27356908/75
- http://www.slideshare.net/basisjs/moscow-js-domtemplates
other
- http://vitaly.harisov.name/resume
- http://vitaly.harisov.name/article/office/
- http://openbadges.org/
- http://harisov.livejournal.com/26279.html
- https://yandex.ru/jobs/
- https://yandex.ru/jobs/vacancies/dev/dev_int_yaservices/
- https://yandex.ru/jobs/vacancies/dev/dev_int_yaservices_spb/
- https://yandex.ru/jobs/vacancies/dev/dev_int_yaservices_simf/
- https://vimeo.com/74930902
- https://vimeo.com/124015220
- https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6514853-update-css-grid
- http://m.habrahabr.ru/post/265753/
- https://clck.ru/9aUSS
- https://clck.ru/9aZ6j
- http://codepen.io/tyv/pen/rOVRrZ
- http://getbem.com/
- http://caniuse.com/#feat=link-icon-svg
- http://caniuse.com/#search=spdy
- http://caniuse.com/#feat=http2
- http://tadatuta.github.io/bemmet/
- http://realfavicongenerator.net/faq
- https://atom.io/packages/atom-pair
- https://developers.google.com/web/fundamentals/performance/
- https://imageoptim.com/
- https://screenhero.com/
- http://product.voxmedia.com/2015/8/13/9143805/performance-update-2-electric-boogaloo
- http://a.yastatic.net/
- http://b.yastatic.net/
- http://www.browserscope.org/?category=network&v=top
- http://prgssr.ru/
- http://abookapart.com/
- http://gorod-mechty.org/
- https://yadi.sk/i/4OcUUC11ewnjs
- http://yoga23.com/
- https://goo.gl/Gx7c79
- https://perfception.com/
- http://www.highload.ru/2015/abstracts/1889.html