ShibaCodes

14 декабря 2020, Saint P.

# Понедельник 55 твитов

Доброе утречко понедельника! Всю эту незабываемую (или нет) неделю с вами проведу я, @ShibaCodes

7:36

Как вы понимаете, в область моих интересов входят как шибы, так и программирование, а сама я — невероятно разносторонняя личность

7:37
Лучшее мотивирующее видео что я видел pic.twitter.com/sbNKK717s0

Вот, кстати, и мотивирующая шиба дня:
twitter.com/valeranazzarov…

Лучшее мотивирующее видео что я видел pic.twitter.com/sbNKK717s0

7:41

Давайте я для начала представлюсь, да? Да.

7:41

Меня зовут Лена Рашкован, я фронтенд-разработчица в Авиасейлс.

7:42

Авиасейлс, поиск дешевых авиабилетов!

7:42

До Сала я поработала в МегаФоне специалистом по информационной безопасности и фронтом в Контуре и Яндексе.

7:44

Самые охуительные истории у меня, конечно, из МегаФона. Есть securityunderhood какой-нибудь? Позовите меня

7:45

Кстати, если у вас вдруг проблемы с иронией, эта неделя будет сложной(

7:46

Для вас

7:46

Охуительных историй из МегаФона не будет (мне сыкотно), но будут охуительные советы от бывшей безопасницы.

9:14

Логируйте только обезличенные данные пользователей. Если их можно будет идентифицировать — можно словить знатных пиздюлей

9:14

Валидируйте 👏 пользовательский 👏 ввод

9:14

Не отправляйте личные фотки через корпоративную сеть, а особенно с рабочей почты.

Где-то в далеком уральском горо… twitter.com/i/web/status/1…

9:14

Есть у меня еще не совет, а, скорее, когнитивное искажение. Для меня спор, что использовать для констант — let или… twitter.com/i/web/status/1…

9:18

Вот программа загружена в память, и злые хакеры хотят переопределить переменную, положив в нее что-то свое, поменяв… twitter.com/i/web/status/1…

9:19

Имеет ли это отношение к жс — хуй знает, но я так ломала программы на С (в учебных целях, естественно, товарищ майор, спокойно)

9:19
@jsunderhood Специалист по ИБ и фронт- это кажется совсем разные вещи, как так занесло

В фронт откуда только не заносит! Знаю химиков, философов, учителей русского языка

@jsunderhood Специалист по ИБ и фронт- это кажется совсем разные вещи, как так занесло

9:39

Вообще общего у спеца по ИБ и программиста (любого) — техническое образование.

9:41

4 курса универа — всевозможная математика, алгоритмы, программирование, сетевые технологии. И только пятый у нас ве… twitter.com/i/web/status/1…

9:43

Хотя нет, там была еще криптография, криптография заебись

9:43
Вообще общего у спеца по ИБ и программиста (любого) — техническое образование.

Любое математическое образование для разработчика — профильное. Является ли оно при этом обязательным, чтобы быть р… twitter.com/i/web/status/1…

Вообще общего у спеца по ИБ и программиста (любого) — техническое образование.

9:59

На всякий случай уточняю

10:00

Я не смогла стать хорошим спецом по ИБ просто потому, что мне было неинтересно. Классно было проводить аудиты безоп… twitter.com/i/web/status/1…

10:30

Occasional дикпик, конечно, вносил разнообразие в серые будни, но в среднем через меня проходило такое количество и… twitter.com/i/web/status/1…

10:32

При таких вводных усваивать новую информацию, чтобы сменить профессию, было, мягко говоря, затруднительно

10:34

Так что я съездила в отпуск, накопила сил, вернулась и положила заявление на стол

10:35

Как раз в это время начинался очередной интенсив по продвинутой верстке от @htmlacademy_ru. Все места на тот момент… twitter.com/i/web/status/1…

10:39

Интенсив, кстати, стоил треть моей месячной зп на тот момент, но я была настроена решительно

10:40

План был такой: в процессе обучения понять, моя это тема или нет. На успех намекал тот факт, что в универе любимым… twitter.com/i/web/status/1…

10:45

Правда, другим моим любимым проектом было написание криптоалгоритма на ассемблере, но где это можно применить, кром… twitter.com/i/web/status/1…

10:45

Кстати, не рекомендую идти на продвинутый интенсив, минуя базовый. Я смогла это вытянуть только потому, что на тот… twitter.com/i/web/status/1…

10:47
@jsunderhood Эххх))) а почему решила сразу пойти на платные курсы???))) ну, сама идея web в момент создания была в… twitter.com/i/web/status/1…

Веб сильно изменился с того момента, когда я интересовалась им в последний раз, а отличить в интернетах херню от не… twitter.com/i/web/status/1…

@jsunderhood Эххх))) а почему решила сразу пойти на платные курсы???))) ну, сама идея web в момент создания была в… twitter.com/i/web/status/1…

10:50

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

10:52

Все еще хожу за знаниями к хорошим спецам и плачу за это деньги, так быстрее и эффективнее всего. В этом году прохо… twitter.com/i/web/status/1…

10:54

Интенсив длился месяц, и это был месяц ада, но мне невероятно понравилось! Верстка — все еще одна из любимых частей моей работы.

10:57

Итак, я защищаю дипломный проект, у меня есть серт об окончании курса и дикое желание развиваться в вебе дальше. В… twitter.com/i/web/status/1…

11:05

Меня распирает ЧСВ. Ведь это знак судьбы, да?))

11:05

Рекрутер Гугла нашел у меня на гитхабе какую-то учебную поебень на С и звал на собес на позицию, хаха, security eng… twitter.com/i/web/status/1…

11:06

Рекрутеру Яндекса меня порекомендовал бывший однокурсник, который решил мне помочь на новом пути джедая. Я сходила… twitter.com/i/web/status/1…

11:06
@jsunderhood Такс, это не реклама))) попробуй добавиться к нам в комьюнити Facebook DevC: Moscow. И там ты увидишь… twitter.com/i/web/status/1…

Очень рада, что сейчас есть комьюнити для новичков! Наверняка на тот момент, когда я начинала, они тоже были, но уз… twitter.com/i/web/status/1…

@jsunderhood Такс, это не реклама))) попробуй добавиться к нам в комьюнити Facebook DevC: Moscow. И там ты увидишь… twitter.com/i/web/status/1…

11:07

Лирическое отступление: когда я жила в Екатеринбурге, там было два крупных работодателя — Яндекс и Контур. С Яндекс… twitter.com/i/web/status/1…

13:31

Сейчас, когда я старая и занятая, я тестовые не жалую, но на тот момент это был win-win: не пройду отбор, так научусь чему-нибудь!

13:31

Тестовое — калькулятор матриц — я делала 2 недели, оно все еще лежит на моем гитхабе и по большей части мне нравитс… twitter.com/i/web/status/1…

13:31

Первую неделю я вспоминала, как умножать матрицы, училась верстать кнопки с уголком и, конечно же, познавала js.

13:31

Вторую неделю я выполняла одно из требований — приложение должно корректно работать и отображаться в IE8. Это был… twitter.com/i/web/status/1…

13:31

Тут я поняла, что моя будущая работа не всегда будет приятной, а еще узнала слово полифил

13:57

Мое тестовое удовлетворило ребят из Контура, и пройдя небольшой собес, я стала новоиспеченным фронтом. Моей радости… twitter.com/i/web/status/1…

15:39

Я стала частью команды Контур.Фокуса, если кто знает этот сервис, дайте пять

15:39

Первой большой задачей было запилить новый сервис на реакте. Я сказала, что не ебу, что такое ваш реакт, отправьте… twitter.com/i/web/status/1…

15:39

Контур — классное место, особенно для начала карьеры, я очень рада, что туда попала. Там не боятся давать новичкам… twitter.com/i/web/status/1…

15:39
Я не смогла стать хорошим спецом по ИБ просто потому, что мне было неинтересно. Классно было проводить аудиты безоп… twitter.com/i/web/status/1…

Я сейчас читаю расследование про покушение на Навального, и вот что я вспомнила.
Быть безопасником в окологосударст… twitter.com/i/web/status/1…

Я не смогла стать хорошим спецом по ИБ просто потому, что мне было неинтересно. Классно было проводить аудиты безоп… twitter.com/i/web/status/1…

17:39

Я уже молчу про то, каким человеком надо быть, чтобы в наше время идти работать в ФСБ

18:05
@jsunderhood все что осталось от моего внутреннего ИБ-шника несколько несложных созданных ctf, один из них fctf3.now.sh

Кайф какой, CTF для фронтендеров

@jsunderhood все что осталось от моего внутреннего ИБ-шника несколько несложных созданных ctf, один из них fctf3.now.sh

18:28
Детка, ты не видела IE6 twitter.com/jsunderhood/st…

Я верстала под IE6 в универе, дед

Детка, ты не видела IE6 twitter.com/jsunderhood/st…

19:13

# Вторник 38 твитов

Доброе утречко вторника! Сегодня в @aviasales весь день hiring event, так что тредов от меня не ждите, но есть одна… twitter.com/i/web/status/1…

7:42

Часто кандидаты жалуются, что в их компании проблемы с процессами, но мало кто может объяснить, что конкретно не так.

7:42

Что для вас хорошо выстроенный процесс, а что — не очень?

7:42
@jsunderhood Когда я не могу найти концов и понять, к кому обратиться по тому или иному вопросу - это явно знак, чт… twitter.com/i/web/status/1…

Согласна: в компании должны быть очерчены зоны ответственности, а ответственные и способы связи (рассылка, канал в… twitter.com/i/web/status/1…

@jsunderhood Когда я не могу найти концов и понять, к кому обратиться по тому или иному вопросу - это явно знак, чт… twitter.com/i/web/status/1…

8:44
@jsunderhood Для меня важны не классные процессы чего угодно (разработки, приятия решений), а возможность на них вл… twitter.com/i/web/status/1…

Для меня тоже, поэтому я и согласилась быть первым фронтом в команде и выстраивать процессы с нуля) Но для новичка… twitter.com/i/web/status/1…

@jsunderhood Для меня важны не классные процессы чего угодно (разработки, приятия решений), а возможность на них вл… twitter.com/i/web/status/1…

8:48
@jsunderhood Для меня хорошо выстроенный процесс - это процесс, который работает сам, без специального человека. Дл… twitter.com/i/web/status/1…

Все так — договоренности между командами должны выглядеть как простой набор правил

@jsunderhood Для меня хорошо выстроенный процесс - это процесс, который работает сам, без специального человека. Дл… twitter.com/i/web/status/1…

8:51

Пример:
Я часто залезаю в код поиска, он вне моей зоны ответственности. Мы с командой серпа настроили процесс кросскомандного ревью.

8:55

Я добавляю метку к своей задаче в джире и переношу ее в Need Review. Копия задачи попадает к серпу на доску. В огов… twitter.com/i/web/status/1…

8:55

Ииии кстати, хорошо что я об этом вспомнила, потому что нужно это задокументировать в базе знаний нашей команды :)

8:57
@jsunderhood Доверие + мотивация + автоматизация(e.g. CI/CD) = лучший процесс)

Но на самом деле конечно все завис… twitter.com/i/web/status/1…

Прекрасная формула!

@jsunderhood Доверие + мотивация + автоматизация(e.g. CI/CD) = лучший процесс)

Но на самом деле конечно все завис… twitter.com/i/web/status/1…

9:08

Мне после гигантского Яндекса было непривычно, когда я спрашивала, куда я могу обратиться с таким-то вопросом, а мн… twitter.com/i/web/status/1…

9:08

Кстати, девочки, если очередной мужик назовет вас деткой в интернете, я даю вам лицензию откусить ему ебало

9:11

Больше всего мне интересно послушать про хорошие примеры процесса межкомандной коммуникации в распределенных компан… twitter.com/i/web/status/1…

10:42

Когда я вышла в Авиасейлс, я была первым фронтом не на Пхукете. Разница во времени с Пхукетом 4 часа, так что пол-р… twitter.com/i/web/status/1…

10:42

Знаю, что коммуникация должна быть по возможности асинхронной и в текстовом формате, а если общение ведется голосом… twitter.com/i/web/status/1…

10:42

В распределенных командах процесс онбординга — удаленный. Не скажу, что мне было просто, но очень помогло то, что б… twitter.com/i/web/status/1…

10:51
@jsunderhood Проблема митинги которые должны быть к примеру 15 минут, а очень сильно затягиваются и перерастают в р… twitter.com/i/web/status/1…

Такие митинги бесполезны и утомительны, организатор встречи должен ее модерировать

@jsunderhood Проблема митинги которые должны быть к примеру 15 минут, а очень сильно затягиваются и перерастают в р… twitter.com/i/web/status/1…

11:03
@jsunderhood Для меня хорошо выстроенный процесс состоит из:

Добавлю, что для всего перечисленного нужно сначала договориться и продолжать договариваться, потому что все меняет… twitter.com/i/web/status/1…

@jsunderhood Для меня хорошо выстроенный процесс состоит из:

11:08

Если где-то затык, что-то мешает выполнять свою работу эффективно, это повод для обсуждения, а не для бомбления в с… twitter.com/i/web/status/1…

11:08
@jsunderhood @aviasales Я бы сформулировал так: все неявное должно стать явным. Это включает в себя и написание док… twitter.com/i/web/status/1…

Часто описание задачи включает в себя только заголовок, и тогда наша задача уточнить требования и зафиксировать их… twitter.com/i/web/status/1…

@jsunderhood @aviasales Я бы сформулировал так: все неявное должно стать явным. Это включает в себя и написание док… twitter.com/i/web/status/1…

11:16

Это упростит жизнь техписам, которые будут документировать фичу по окончании разработки, это упростит жизнь тестиро… twitter.com/i/web/status/1…

11:22
@WUAuKaLdKv2O6kW @jsunderhood Стендапы нужно проводить стоя. Звучит очень нелепо, но желание обсуждать вселенские проблемы отпадает.

Стендапы в распределенных командах лучше проводить текстом.

В любом случае, стендап тоже встреча, и у нее должен б… twitter.com/i/web/status/1…

@WUAuKaLdKv2O6kW @jsunderhood Стендапы нужно проводить стоя. Звучит очень нелепо, но желание обсуждать вселенские проблемы отпадает.

11:44
@jsunderhood Плохой ответ как для разработчика. Я обычно отвечаю что это займет больше времени т.к технология незна… twitter.com/i/web/status/1…

А что страшного в том, чтобы сказать «я не знаю»?

Я обозначила, что сейчас не умею, но научусь, а при выполнении т… twitter.com/i/web/status/1…

@jsunderhood Плохой ответ как для разработчика. Я обычно отвечаю что это займет больше времени т.к технология незна… twitter.com/i/web/status/1…

13:08
@jsunderhood @aviasales Следующее, что отметил бы - рефлексия над процессом. Можно называть это ретроспективой, сут… twitter.com/i/web/status/1…

Тоже важный этап — агрегировать боли всех участников и вместе подумать, как их можно решить

Еще хорошо обращать вн… twitter.com/i/web/status/1…

@jsunderhood @aviasales Следующее, что отметил бы - рефлексия над процессом. Можно называть это ретроспективой, сут… twitter.com/i/web/status/1…

13:14
@jsunderhood Я не знаю говорить не страшно. А вот научите, да. Хорошо хоть не пережуйте за меня, а то сам не умею.… twitter.com/i/web/status/1…

Задача новичка в том числе в том, чтобы учиться, и учиться быстро. Если новичок просит отправить его на курсы, кото… twitter.com/i/web/status/1…

@jsunderhood Я не знаю говорить не страшно. А вот научите, да. Хорошо хоть не пережуйте за меня, а то сам не умею.… twitter.com/i/web/status/1…

13:43

И кстати для контекста — не у каждого инструмента есть мануалы и документация, и, если вы помните, у Реакта она был… twitter.com/i/web/status/1…

13:43

Хорошая документация расскажет вам о best practices и выдаст quick start guide. А если всего этого нет, то тут и не-новичку будет тяжко

13:47
@jsunderhood Если сводить стендапы только к отчёту перед коллегами, то есть к этим 3 вопросам, то смысл ритуала сов… twitter.com/i/web/status/1…

  • Рассажите, над чем работаете и в контексте чего находитесь
  • Планируете продолжать дальше? Закончили, а от резу… twitter.com/i/web/status/1…
  • 13:53
    @jsunderhood @alexahdp1 Цель этого мероприятия в Скраме в том, чтобы как можно раньше обнаружить препятствие, котор… twitter.com/i/web/status/1…

    Не смотрела на это с такой точки зрения, спасибо!

    У нас большая продуктовая тима, и спринты и планирования у нас о… twitter.com/i/web/status/1…

    @jsunderhood @alexahdp1 Цель этого мероприятия в Скраме в том, чтобы как можно раньше обнаружить препятствие, котор… twitter.com/i/web/status/1…

    16:14

    В Контуре у нас тоже была большая продуктовая команда и ежедневные летучки на овер-сорок минут, причем СТОЯ. Моя бабкина спина выла

    16:16
    @jsunderhood да брось) есть тимлид, есть сеньор, есть миддл в конце концов перед тобой! или у тебя команда была из… twitter.com/i/web/status/1…

    Короче, объясняю, как устроен мир, а то вы, возможно, не в курсах

    Не во всех командах есть больше одного фронта, о… twitter.com/i/web/status/1…

    @jsunderhood да брось) есть тимлид, есть сеньор, есть миддл в конце концов перед тобой! или у тебя команда была из… twitter.com/i/web/status/1…

    18:07

    Нас читают новички, так что

    1) Нормально, если вы не можете разобраться в незнакомой технологии в одиночку
    2) Норм… twitter.com/i/web/status/1…

    18:41

    Надеюсь, вам повезет с командой так же, как повезло некоторым здесь, что они теперь считают, что стали квалифициров… twitter.com/i/web/status/1…

    18:41
    @jsunderhood Кстати, было бы и интересно сделать опрос чтобы понять демографию аккаунта

    А давайте сделаем

    @jsunderhood Кстати, было бы и интересно сделать опрос чтобы понять демографию аккаунта

    19:19

    Как вы сами оцениваете ваш текущий уровень?

    19:19

    Ого, рекрутеры, внимание

    19:47
    @PanCudzoziemiec @jsunderhood Отличное комьюнити у Ильи Климова. И он тоже всегда всем отвечает, корректирует ребят… twitter.com/i/web/status/1…
    20:05

    А как ваш уровень оценивает работодатель?

    20:12

    # Среда 15 твитов

    Доброго утречка среды. Надеюсь, этот день будет менее срачегонным, потому что я решила рассказывать про свой опыт дальше.

    8:12

    Краткое содержание предыдущих серий: бросила карьеру в безопасности ради фронтенда, научилась верстать, зафейлила и… twitter.com/i/web/status/1…

    8:24

    Я проработала в Контуре полтора года.

    За это время силами классных людей там выросло внутреннее коммьюнити фронтов… twitter.com/i/web/status/1…

    8:34

    Зачем идти в Яндекс?

    На начальном этапе карьеры — за возможностями для развития, разнообразием задач, за духом ста… twitter.com/i/web/status/1…

    9:46

    (кстати, если вы будете хамить и разводить срач — я вас замьючу, и выбирайтесь оттуда потом как хотите, мне надоело)

    9:49

    Процесс найма в Я максимально бездушный: техсобес по скайпу + офлайн собес из четырех часовых секций (алгоритмы на… twitter.com/i/web/status/1…

    10:00

    Поток кандидатов там такой, что могут себе позволить и бездушными побыть, но это ебический стресс, ребят

    10:00

    Из плюсов — маловероятно, что вы вспотеете от любого другого собеса в вашей жизни, разве что в Гугл какой-нибудь, н… twitter.com/i/web/status/1…

    10:04

    По итогам пятисот собесов меня позвали в Погоду и спецпроекты.

    В Погоде были классные задачи, но древний жс и ни о… twitter.com/i/web/status/1…

    10:19

    В спецпроектах этих проблем не было: свежий стек, гендерный баланс, а еще часть проектов была образовательными, а образование я люблю :3

    10:29

    В службе спецпроектов было много проектов в разработке и на поддержке: были постоянно закрепленные за ними люди, но… twitter.com/i/web/status/1…

    13:15

    Короче, к проектам в такой схеме лучше не привязываться)

    13:15

    Сейчас расскажу, что делают в Яндексе стажеры и младшие разработчики, пусть и под контролем опытного лида.

    13:37

    ВСЕ

    ОНИ ДЕЛАЮТ ВСЕ

    13:37

    Пишут клиентский код, пишут сервер на ноде, продумывают архитектуру, настраивают инфраструктуру, стартуют большие п… twitter.com/i/web/status/1…

    13:37

    # Четверг 19 твитов

    Доброе утречко четверга! pic.twitter.com/Ntj0lu1mf6

    9:28

    Сегодня я хочу поделиться, как знания, полученные на конференциях и митапах, помогли мне в работе и послушать ваши истории)

    9:28

    На Питерский HolyJS 2018 приезжал @DavidKPiano и рассказывал про XState и как с помощью стейт-машин можно управлять… twitter.com/i/web/status/1…

    9:28

    Ну или 2019, у меня беды с башкой

    9:31
    Действительно #HolyJS pic.twitter.com/1Nv1Syzo9L

    Суть в том, чтобы избегать вот такой лапши

    Действительно #HolyJS pic.twitter.com/1Nv1Syzo9L

    9:31

    (кстати, на слайде есть мат, и зуб даю чуваку никто не сказал, что его это не красит, ну да ладно)

    9:31

    Прелесть стейт-машин в том, что они могут из набора данных вывести нужное состояние

    9:32

    Я в то время работала над Яндекс.Лицеем, это образовательный проект для обучения старшеклассников программированию

    9:35

    Лето в образовании — всегда горячая пора, надо нахерачить фич к новому учебному году

    А еще летом сезон поступления в Лицей

    9:35

    У нас была система поступления, написанная из говна и палок. Все в мыле, все занятые. И тут мы решаем, что было бы… twitter.com/i/web/status/1…

    9:38

    Проверено ли его тестовое, можно ли записываться на собес и когда, если он записан — когда и куда ему нужно подойти… twitter.com/i/web/status/1…

    9:38

    Бэкендер занят, так что выводить это состояние нужно было на фронте из набора флажков

    И тут в моей голове щелкнуло… twitter.com/i/web/status/1…

    9:39

    Покурила документацию и породила на основе XState прекрасную страничку pic.twitter.com/PvPWWrlXbn

    9:42

    Вот такая саксес-стори. Расскажите теперь и вы мне что-нибудь :)

    9:44

    Ах да, XState прекрасна своей визуализацией.

    Вот какая-то версия моего автомата
    xstate.js.org/viz/?gist=6948…

    9:53

    Визуализатор помогает задокументировать и оттестировать логику, даже не начиная писать юай

    10:46
    @jsunderhood Новый инспектор выглядит в разы круче

    А еще

    @jsunderhood Новый инспектор выглядит в разы круче

    10:47
    @jsunderhood вот бы еще линк на доклад

    Хоба youtube.com/watch?v=o84Xw8…

    @jsunderhood вот бы еще линк на доклад

    10:55
    @jsunderhood Ещё с помощью пакета xstate/test можно генерировать тесты по модели. Так же с помощью стейтчартов можн… twitter.com/i/web/status/1…
    11:49

    # Пятница 17 твитов

    Доброго вечера пятницы!
    Я сегодня не разгибаясь допиливала таски перед отпуском, так что извините, если заскучали.
    О чем поговорим?

    18:03

    Ну, поиграли в демократию и хватит

    18:43

    Пусть будет оверинжиниринг. Под этим я понимаю явление, когда реализация идеи настолько излишне сложная, что идею с… twitter.com/i/web/status/1…

    18:43

    Иногда это происходит от желания обобщить раньше времени — код обрастает плохо продуманными абстракциями, и черт зн… twitter.com/i/web/status/1…

    18:43

    Иногда от незнания — можно быть просто не в курсе, что в html есть замечательная связка details+summary, которая де… twitter.com/i/web/status/1…

    18:43

    Иногда, имхо чаще всего, от использования неподходящего под задачу инструмента
    (Yes, reduce, I’m looking at you)

    18:43

    Когда на собесе кандидат использует вместо цикла редьюс, понимаю, что сейчас будет весело

    18:43

    Помню, был божественный англоязычный тред, где чувак просил прислать ему примеры кода с редьюсом и переписывал их н… twitter.com/i/web/status/1…

    18:44

    Еще можно «изящно решить задачу одной строкой» (мне кажется, поэтому многие неравнодушны к редьюсу), так, что потом… twitter.com/i/web/status/1…

    18:46

    Часто оверинженеры любят регулярные выражения. Ими тоже можно задачу в одну строку решить, а потом кто-то потратит… twitter.com/i/web/status/1…

    18:52

    Я предпочитаю написать несколько коротких регулярок, проверяющих что-то поочередно, чем одну, внушающую ужас перед… twitter.com/i/web/status/1…

    18:52

    Все написанное выше крайне субъективно, если у вас пригорело, сочувствую) Но рада буду обсудить контрпримеры! Уройте меня

    18:53

    Ах да, я сама-то тоже оверинженерка. Причины обычно две — незнание и усталость.

    19:01

    Мой типичный грех — злоупотребление хуком useEffect. Засовываю туда какое-нибудь вычисление, в которое могло быть и… twitter.com/i/web/status/1…

    19:01

    Щас просто ради интереса прошлась по своим PR и встретила свой грех трижды. @kamyshev_code, спасибо за терпение!) pic.twitter.com/BfjxAr6iJI

    19:11

    Расскажите что ли, чем грешите. Злоупотребляете редьюсом? Делаете лишнее, там где не надо? Любите втащить редакс сл… twitter.com/i/web/status/1…

    19:16
    All code using array.reduce should be rewritten without array.reduce so it's readable by humans *mutes thread*

    Я нашла!

    All code using array.reduce should be rewritten without array.reduce so it's readable by humans *mutes thread*

    20:17

    # Суббота 31 твит

    Доброго субботнего утречка! Эта неделя наконец-то заканчивается, и многие скоро вздохнут с облегчением, и я в том числе.

    7:27

    Последний свой год в Яндексе я занималась созданием и развитием библиотеки компонентов образовательных сервисов, сн… twitter.com/i/web/status/1…

    7:27

    Эта движуха началась из-за того, что ui-либа, которая была тогда, не справлялась с задачами кастомизации. Когда был… twitter.com/i/web/status/1…

    9:53

    Мы внутри себя поресерчили, как такие компоненты лучше писать, эта тема меня очень увлекла, и по итогам я сделала д… twitter.com/i/web/status/1…

    9:53

    Основное требование к компонентам в библиотеке — гибкость и возможность настроить под свой сервис. У сервисов есть… twitter.com/i/web/status/1…

    9:53

    Разработчики общеяндексовой либы решали параллельно те же проблемы, и в итоге мы все стали придерживаться одного по… twitter.com/i/web/status/1…

    10:07

    Эта штука — пушка. Лучше всего она проявляет себя на больших сложных компонентах, но я попробую рассказать, какие п… twitter.com/i/web/status/1…

    10:07

    Раскрывашка умеет открываться и показывать контент и закрываться, скрывая его. Это основа компонента, причина для е… twitter.com/i/web/status/1…

    10:09

    А дальше начинается вариативность: выглядит компонент у всех по-разному. Значит, выделяем внешний вид в отдельный h… twitter.com/i/web/status/1…

    10:16

    На сервисе две темы? Не беда: compose(withThemeOne, withThemeTwo)(base). Модификатор темы «включится», если в собра… twitter.com/i/web/status/1…

    10:16

    Аналогично с логикой. Можно научить раскрывашку залипать при прокрутке: на сервисе она может использоваться, чтобы… twitter.com/i/web/status/1…

    10:26

    Нужно ли это всем потребителям? Нет. Должен ли им приезжать лишний код, а на компоненте висеть лишние обработчики?… twitter.com/i/web/status/1…

    10:26

    Так можно разделять не только логику, но и код для разных платформ (для десктопов не должны приезжать тачи, а для тачей, например, хаверы).

    10:29

    Сейчас, правда, появились мутанты-дескпады и смешали все карты)
    Мы так под конец разработки узнали, что наши компон… twitter.com/i/web/status/1…

    10:29

    Еще одно преимущество такого подхода — легко проводить продуктовые эксперименты, просто заменив нужный кусочек

    10:31

    У всего есть трейдофф, и в данном случае это перформанс. Нужно искать баланс в количестве хоков, но программирование вообще про баланс

    10:32

    Такая пушка, конечно, нужна не всем.

    Есть ли другие подходы к проектированию реиспользуемых гибких компонентов? Чуть позже расскажу :)

    10:33

    Наверняка вы видели монолитные компоненты с пропсами на два экрана, которые потом щупальцами рассовывались по его в… twitter.com/i/web/status/1…

    12:09

    А может и нет, я не ваша мама)

    12:09

    Этот паттерн, как и многие хорошие апи, использует инверсию контроля. Наглядный пример — любой перебирающий метод м… twitter.com/i/web/status/1…

    12:09

    Было бы странно, если бы sort пытался покрыть всевозможные сценарии использования. Как насчет отсортировать массив… twitter.com/i/web/status/1…

    12:09

    Тут я технично оставлю ссылочку на статью восхитительного @kentcdodds
    kentcdodds.com/blog/inversion…

    12:09

    Этот паттерн можно объяснить как «торчать кишками компонента наружу», давая к ним прямой доступ. Например, так:

    <L… twitter.com/i/web/status/1…

    12:09

    Чтобы подчеркнуть, что внутренние компоненты имеют смысл только внутри внешнего, их часто именуют через точку, доба… twitter.com/i/web/status/1…

    12:09

    Эта идея не новая, конечно, это уже сто лет есть в HTML. select+option, details+summary, ul+li, вот это все. Торжес… twitter.com/i/web/status/1…

    12:09

    Рулит внутренним состоянием основной компонент и обогащает своим состоянием детей, например, через контекст. Более… twitter.com/i/web/status/1…

    12:09

    Я очень люблю этот подход, и если его применить к месту, получается прямо супер

    12:09

    У меня как-то была задача сделать компонент координатной плоскости. У плоскости может быть сетка, оси, на ней могут… twitter.com/i/web/status/1…

    12:09

    А может и не быть) Понимаете? Контроль, над тем что будет, — у потребителя. Как-то так:

    <CoordinateSystem width={5… twitter.com/i/web/status/1…

    12:09

    Состояние плоскости (текущий масштаб, шкалы по осям, размеры) распространяются через контекст или через дополнитель… twitter.com/i/web/status/1…

    12:09

    У меня даже интерактивчик остался) pic.twitter.com/RjRQUYiP5b

    12:16

    # Воскресенье 19 твитов

    Доброго вечера воскресенья, надеюсь, у вас такой же классный день, как и у меня :)

    Подошью к этому твиту все, о чем успела рассказать.

    14:01
    Доброе утречко понедельника! Всю эту незабываемую (или нет) неделю с вами проведу я, @ShibaCodes

    Понедельник — представляюсь

    Доброе утречко понедельника! Всю эту незабываемую (или нет) неделю с вами проведу я, @ShibaCodes

    14:02
    Охуительных историй из МегаФона не будет (мне сыкотно), но будут охуительные советы от бывшей безопасницы.

    Понедельник — чем я занималась до фронтенда. Осторожно, обсценная лексика: не читайте, если вы неженка
    twitter.com/jsunderhood/st…

    Охуительных историй из МегаФона не будет (мне сыкотно), но будут охуительные советы от бывшей безопасницы.

    14:04
    Я не смогла стать хорошим спецом по ИБ просто потому, что мне было неинтересно. Классно было проводить аудиты безоп… twitter.com/i/web/status/1…

    Все еще понедельник — начало карьеры

    Я не смогла стать хорошим спецом по ИБ просто потому, что мне было неинтересно. Классно было проводить аудиты безоп… twitter.com/i/web/status/1…

    14:05
    Доброе утречко вторника! Сегодня в @aviasales весь день hiring event, так что тредов от меня не ждите, но есть одна… twitter.com/i/web/status/1…

    Вторник был про хорошие процессы. Мне не хватило интеллекта сразу собирать все ваши ответы в один тред, так что буд… twitter.com/i/web/status/1…

    Доброе утречко вторника! Сегодня в @aviasales весь день hiring event, так что тредов от меня не ждите, но есть одна… twitter.com/i/web/status/1…

    14:16
    Согласна: в компании должны быть очерчены зоны ответственности, а ответственные и способы связи (рассылка, канал в… twitter.com/i/web/status/1…

    Согласна: в компании должны быть очерчены зоны ответственности, а ответственные и способы связи (рассылка, канал в… twitter.com/i/web/status/1…

    14:16
    Для меня тоже, поэтому я и согласилась быть первым фронтом в команде и выстраивать процессы с нуля) Но для новичка… twitter.com/i/web/status/1…

    Для меня тоже, поэтому я и согласилась быть первым фронтом в команде и выстраивать процессы с нуля) Но для новичка… twitter.com/i/web/status/1…

    14:16
    Все так — договоренности между командами должны выглядеть как простой набор правил twitter.com/AntonSutarmin/…

    Все так — договоренности между командами должны выглядеть как простой набор правил twitter.com/AntonSutarmin/…

    14:16
    Прекрасная формула! twitter.com/redhead_dev/st…

    Прекрасная формула! twitter.com/redhead_dev/st…

    14:16
    Такие митинги бесполезны и утомительны, организатор встречи должен ее модерировать twitter.com/WUAuKaLdKv2O6k…

    Такие митинги бесполезны и утомительны, организатор встречи должен ее модерировать twitter.com/WUAuKaLdKv2O6k…

    14:16
    Добавлю, что для всего перечисленного нужно сначала договориться и продолжать договариваться, потому что все меняет… twitter.com/i/web/status/1…

    Добавлю, что для всего перечисленного нужно сначала договориться и продолжать договариваться, потому что все меняет… twitter.com/i/web/status/1…

    14:16
    Часто описание задачи включает в себя только заголовок, и тогда наша задача уточнить требования и зафиксировать их… twitter.com/i/web/status/1…

    Часто описание задачи включает в себя только заголовок, и тогда наша задача уточнить требования и зафиксировать их… twitter.com/i/web/status/1…

    14:16
    Стендапы в распределенных командах лучше проводить текстом.

    В любом случае, стендап тоже встреча, и у нее должен б… twitter.com/i/web/status/1…

    Стендапы в распределенных командах лучше проводить текстом.

    В любом случае, стендап тоже встреча, и у нее должен б… twitter.com/i/web/status/1…

    14:16
    Как вы сами оцениваете ваш текущий уровень?

    Еще во вторник мы изучали «демографию» аккаунта. Смотрите на результаты

    Как вы сами оцениваете ваш текущий уровень?

    14:16
    Доброго утречка среды. Надеюсь, этот день будет менее срачегонным, потому что я решила рассказывать про свой опыт дальше.

    В среду рассказала, как собеседовалась в Яндекс и зачем twitter.com/jsunderhood/st…

    Доброго утречка среды. Надеюсь, этот день будет менее срачегонным, потому что я решила рассказывать про свой опыт дальше.

    14:16
    Доброе утречко четверга! pic.twitter.com/Ntj0lu1mf6

    В четверг — про XState и как можно применить знания с конференций в реальной разработке

    Доброе утречко четверга! pic.twitter.com/Ntj0lu1mf6

    14:16
    Доброго вечера пятницы!
    Я сегодня не разгибаясь допиливала таски перед отпуском, так что извините, если заскучали.
    О чем поговорим?

    В пятницу мы поиграли в демократию, и получился очень opinionated неглубокий тред про оверинжениринг twitter.com/jsunderhood/st…

    Доброго вечера пятницы!
    Я сегодня не разгибаясь допиливала таски перед отпуском, так что извините, если заскучали.
    О чем поговорим?

    14:16
    Доброго субботнего утречка! Эта неделя наконец-то заканчивается, и многие скоро вздохнут с облегчением, и я в том числе.

    В субботу рассказала про общие компоненты образовательных сервисов Яндекса и про разработку reusable реакт-компонен… twitter.com/i/web/status/1…

    Доброго субботнего утречка! Эта неделя наконец-то заканчивается, и многие скоро вздохнут с облегчением, и я в том числе.

    14:16

    Надеюсь, вам было интересно или хотя бы весело) Рада была провести с вами эту неделю! Всем спасибо и до встречи

    14:17

    other