# Понедельник 13 твитов
Всем продуктивного понедельника! На этой неделе с вами @xanf_ua и у меня обширный список вопросов и вбросов - от ин… twitter.com/i/web/status/1…
11:08А какие темы вы бы хотели от меня услышать? Давайте вначале соберём глас народа, а потом сравним мой список и ваши… twitter.com/i/web/status/1…
11:09Спасибо всем за отклики :) Завтра начнём жечь
А пока давайте начнём "за жизнь". Прошлый раз в андерхуде я был в 20… twitter.com/i/web/status/1…
17:03Я понял, что больше всего кайфа мне приносит преподавать. Я познакомился с крутыми преподавателями не в IT и понял,… twitter.com/i/web/status/1…
17:04Понял, что "владеть айти-компанией" - это вообще не моя история, мне нравится быть инженером. Поэтому когда в компа… twitter.com/i/web/status/1…
17:05Тем не менее 7 лет управления компанией были бесценным опытом - они научили меня уметь измерять всё деньгами. Тепер… twitter.com/i/web/status/1…
17:07Что за плюшки? Финансовая дисциплина, осознание того что не стоит держать все яйца в одной корзине, особенно если э… twitter.com/i/web/status/1…
17:09И поскольку я хотел преподавать, я верил, что нельзя преподавать "голоса в голове" - поэтому устроился на работу в… twitter.com/i/web/status/1…
17:10Но это приносит кучу проблем (про них говорю отдельно) - фактически это ощущается как 2.5 фултайм нагрузки - ты раб… twitter.com/i/web/status/1…
17:12От этого регулярно страдали мои студенты (но про это мы еще поговорим, как я лажаю со сроками в преподавании, как м… twitter.com/i/web/status/1…
17:13"Обещание" конечно! Телефон почему-то решил исправить (про телефон мы тоже поговорим, это первая железка за много л… twitter.com/i/web/status/1…
17:14@jsunderhood Планы ничто, планирование все. (с) Эйзенхауэр18:44
# Вторник 44 твита
Доброе утро, коллеги! Как вам спалось?
Хочу в качестве утренней разминки рассказать о сне, своих экспериментах с… twitter.com/i/web/status/1…
7:20Для меня сон - это всегда ощущение потерянного времени и маленькой смерти. Мне жалко спать. Поэтому я всегда относи… twitter.com/i/web/status/1…
7:22Когда я работал в аутсорсинговой компании, практиковал полифазный сон. Спал 3 часа ночью и 2х45 минут днём. Первые… twitter.com/i/web/status/1…
7:26Когда у меня была своя компания - сон был стрессом. Вернее не сон, а пробуждение, потому что каждое пробуждение был… twitter.com/i/web/status/1…
7:27Когда я закрыл компанию я три месяца высыпался. Помогло слабо. Моя основная проблема - если у меня в голове есть мы… twitter.com/i/web/status/1…
7:29Сейчас должно было стать лучше, но нет - достаточно после 8-9 вечера писать видео "с лицом" - а это два источника… twitter.com/i/web/status/1…
7:32Ок, поныл, теперь к конструктиву.
Думаю все знают что ложиться спать надо и просыпаться в одно и то же время лучш… twitter.com/i/web/status/1…
7:35У меня категорически не работает мелатонин в таблетках. Вот просто ноль эффекта. Пробовал его и как средство для бо… twitter.com/i/web/status/1…
7:37Как я меряю качество сна? Я пробовал разные трекеры сна, самым показательным для меня оказалась комбинация из показ… twitter.com/i/web/status/1…
7:41Эти показатели меряет polar vantage v, да и любые, думаю, спортивные часы с непрерывным трекингом пульса. Они меряю… twitter.com/i/web/status/1…
7:43В такую погоду как сейчас тоже прекрасно спится :) pic.twitter.com/HHjaDg5KVr
7:45Очень хорошо для меня работает низкая температура в помещении для сна (около 17 градусов), открытое окно. Если вы е… twitter.com/i/web/status/1…
7:49Правда не знаю как у вас, у меня в городе открытое окно - катастрофический источник пыли, в том числе очередь вредн… twitter.com/i/web/status/1…
7:54@_olegkusov Все ещё хуже у меня бывает. Сижу как-то в 2 часа ночи, потому что понимаю что если не доделаю багу - не… twitter.com/i/web/status/1…7:57
@jsunderhood я обычно окно не закрываю вообще. Иногда правда зима случается, но лучше в холоде и со свежим воздухом, чем без него.7:59
Ещё я пытался научиться остановке внутреннего диалога чтоб лучше спать. Каждая первая школа медитации этому учит. Н… twitter.com/i/web/status/1…
8:03А теперь что будет если не спать или спать плохо, как я. В 20 лет не будет ничего, в 25 будете уставшим, в 30 - мог… twitter.com/i/web/status/1…
8:07Поскольку сейчас, как вы догадались, за рулём, хотел сделать фото с красной зоной к прошлому твиту, а оказалось, чт… twitter.com/i/web/status/1…
8:09@jsunderhood Настоятельно рекомендую к прочтению Why We Sleep Мэтью Уокера, я после нее многое переосмыслил в распо… twitter.com/i/web/status/1…8:13
А теперь что будет если не спать или спать плохо, как я. В 20 лет не будет ничего, в 25 будете уставшим, в 30 - мог… twitter.com/i/web/status/1…8:15
В завершение темы. Есть мало вещей в жизни, о которых я жалею, что не начал думать раньше. Сон в объемах столько, с… twitter.com/i/web/status/1…
9:08Давайте переходить к серьезным темам и начну с самой важной для меня - управление состоянием. Вопрос в зал - какими… twitter.com/i/web/status/1…
9:48Похоже status.fastly.com обеспечил мне перерыв :) а то хотел покидаться ссылками на гитхаб и гитлаб, а оба ле… twitter.com/i/web/status/1…
10:35Спасибо всем за дельные замечания и вопросы. Как и обещал - делюсь своим видением проблемы стейт-менеджмента
11:35Для меня сейчас - это основная и фундаментальная проблема в рамках GitLab. Я ее формулирую так "как реализовывать х… twitter.com/i/web/status/1…
11:36Нюанс начинается уже с определения: я осознанно ставлю вопрос технического долга важнее скорости деливери фич. Это… twitter.com/i/web/status/1…
11:38Другими словами - фокус на "скорость деливери фич" не даёт нам существенного запаса для "критического deliverable"… twitter.com/i/web/status/1…
11:39Что для меня важно - there is EXACTLY one way to do it. В проектах, где больше одного инженера, если что-то можно с… twitter.com/i/web/status/1…
11:42Интересно, что программисты часто сопротивляются идее ограничений, ведь мы неизбежно в них упрёмся. Отчасти это, ко… twitter.com/i/web/status/1…
11:44Именно поэтому, к примеру, "голый" Redux вызывает у меня боль - слишком много способов сделать одну и ту же вещь, д… twitter.com/i/web/status/1…
11:46В то же время, если взять допустим RTK (redux-toolkit) - то это на порядок более взрослая система, которая принудит… twitter.com/i/web/status/1…
11:48Нет, я не фанат redux или redux-toolkit :)
Нельзя не упомянуть свежерелизнутую redux-toolkit.js.org/rtk-query/over… RTQ Query (… twitter.com/i/web/status/1…
11:51Нет, я не фанат redux или redux-toolkit :)11:53Нельзя не упомянуть свежерелизнутую redux-toolkit.js.org/rtk-query/over… RTQ Query (… twitter.com/i/web/status/1…
Здесь я не могу не кинуть огород в камень Vuex, который является стандартом де-факто в мире Vue - там всё это выгля… twitter.com/i/web/status/1…
11:55Пока я писал этот пост, @themagicworldof прислал типичный ответ про состояние "в идеале его не должно быть". Как по… twitter.com/i/web/status/1…
11:57@themagicworldof @kamyshev_code TL;DR этого треда:13:18
Итак, продолжаем про state management, а именно Apollo Client. apollographql.com/docs/react/
Для тех, кто не в курсе -… twitter.com/i/web/status/1…
18:09О недостатках, хотя нет, хм... ОСОБЕННОСТЯХ Apollo Client можно говорить очень долго - к примеру, они КРАЙНЕ react-… twitter.com/i/web/status/1…
18:11Фактически, вы можете из своих компонентов, продолжать писать GraphQL-запросы и мутации и ваши компоненты __почти__… twitter.com/i/web/status/1…
18:13К примеру, @nodkz не очень любит все эти финты с локальным состоянием в Apollo, и я прекрасно его понимаю
Тем не м… twitter.com/i/web/status/1…
18:35@nodkz Время рекламной паузы: я недавно сделал мастер-класс по GraphQL где половину времени посвятил работе с лока… twitter.com/i/web/status/1…18:38
Ну начались интеграции) Илья очень хорош, надеюсь промокоды пойдут в дело))18:52@nodkz Время рекламной паузы: я недавно сделал мастер-класс по GraphQL где половину времени посвятил работе с лока… twitter.com/i/web/status/1…
@jsunderhood @nodkz Мы в команде, пока смотрим и рисерчим в сторону своего кастомного линка, который и сами будем п… twitter.com/i/web/status/1…19:24
Если кратно, то стейт-менеджер должен обеспечивать:
- Двустороннюю синхронизацию данных
- Оптимизацию потоков данн… twitter.com/i/web/status/1…
20:55Давайте переходить к серьезным темам и начну с самой важной для меня - управление состоянием. Вопрос в зал - какими… twitter.com/i/web/status/1…
# Среда 14 твитов
Среда, середина недели! И начнем опять с нетехнической темы. Я хочу поговорить о карьерных лестницах. Есть распрост… twitter.com/i/web/status/1…
10:33Итак, карьерные лестницы и мои ощущения на них.
Во многом этот тред навеян заполнением своего Career Mapping в Git… twitter.com/i/web/status/1…
15:55Начнём с самого простого - с иерархии. Если с первыми шагами у инженера всё просто - junior, middle, senior, то дал… twitter.com/i/web/status/1…
15:56Когда я говорю о карьерном тупике инженерной работы, то имею ввиду, что часто "продолжением" этой лесенки рисуют вс… twitter.com/i/web/status/1…
15:57Структура карьерной лестницы целиком диктуется бизнес-потребностями компании, поэтому в том, что к примеру в аутсор… twitter.com/i/web/status/1…
15:58По моему опыту, четким признаком такого места является наличие "высокой" технической должности (она может называтьс… twitter.com/i/web/status/1…
16:00Другими словами, речь идет не о развитии конкретного инженера, а о "заполнении" вакансии. Когда вакансия наверху ос… twitter.com/i/web/status/1…
16:01Еще раз акцентирую внимание - подобная структура - ни хорошо ни плохо, но важно осознавать её, чтобы понимать, как… twitter.com/i/web/status/1…
16:02Одной из главных проблем роста по принципу "молодец" - принцип Питера ru.wikipedia.org/wiki/%D0%9F%D1…
Я не раз видел как… twitter.com/i/web/status/1…
16:38@jsunderhood @dmtrKovalenko Ещё есть очень клёвый сайд-эффект всех этих матриц и «развития под компанию» - узкая сп… twitter.com/i/web/status/1…17:31
Не важно, сколько бабушек ты перевёл через дорогу, сколько спас людей, и сколько задонатил Медиазоне.17:33Если ты не д… twitter.com/i/web/status/1…
Я помню, что обещал про urql, но уже завтра :)
Сегодня пойду разбираться дальше с React 18, глядишь видео выложу
17:34@ghaiklor @jsunderhood @dmtrKovalenko А я ещё докину.17:35Среди грейдов «выше сеньора» есть разные архетипы:
💡 State management is difficult not because managing state is difficult, but because managing state in a way where… twitter.com/i/web/status/1…
К контексту вчерашнего обсуждения
💡 State management is difficult not because managing state is difficult, but because managing state in a way where… twitter.com/i/web/status/1…
19:38
# Четверг 18 твитов
Карьерную лестницу правильнее называть карьерной пирамидой. Если нанять 10 классных ребят, то только 1 поднимется п… twitter.com/i/web/status/1…8:59Итак, карьерные лестницы и мои ощущения на них.
Во многом этот тред навеян заполнением своего Career Mapping в Git… twitter.com/i/web/status/1…
Итак urql. Если вдруг это буквосочетание прошло мимо-вас - это мощная и эффективная альтернатива apollo client в качестве graphql клиента
9:06Когда я первый раз узрел formidable.com/open-source/ur… то-ли на Hacker News, то ли на Dev.to мой скепсис… twitter.com/i/web/status/1…
9:07Более того, если бы в абстрактном GitLab я бы сейчас принимал решение - я бы взял именно urql и в этом треде попробую пояснить почему
9:08Я конечнео мог бы просто кинуть ссылку на formidable.com/open-source/ur… но все вот эти разговоры про "быстрее, выше, силь… twitter.com/i/web/status/1…
9:16И если с именованием переменных мы ничего не можем сделать, то пуговицу... в смысле инвалидацию кеша частично же мы… twitter.com/i/web/status/1…
9:18Проблема с этими подходами очевидна - они ужасно масштабируются с ростом системы. при добавлении новой query по сут… twitter.com/i/web/status/1…
9:23Добавьте туда страннейшее решение Apollo делать это в слое отображения (да, если вы вызываете мутацию несколько раз… twitter.com/i/web/status/1…
9:28Почему так и можно ли лучше? Ответ - потому что GraphQL-схема почти не несёт семантики связей между мутациями и зап… twitter.com/i/web/status/1…
9:33Почему "почти"? Потому что со значительной вероятностью если мы изменяем объект типа Х - запросы, у которых тип Х[]… twitter.com/i/web/status/1…
9:34Собственно это и есть киллер-фича urql которая работает на удивление хорошо - он может быть schema-aware и сделать это магически!
9:38Божечки-кошечки! А в urql принесли таки local resolvers! formidable.com/open-source/ur…
С таким подходом могу заявить, чт… twitter.com/i/web/status/1…
9:39Божечки-кошечки! А в urql принесли таки local resolvers! formidable.com/open-source/ur…9:39С таким подходом могу заявить, чт… twitter.com/i/web/status/1…
При этом у urql сверхмощный механизм интеграции в любую часть работы urql - от кеширования до собственно отправки з… twitter.com/i/web/status/1…
9:47Другими словами, если у вас "на той стороне" не Apollo-server со специфичными для аполло экстеншнами, если вы не со… twitter.com/i/web/status/1…
9:56@jsunderhood @domosedev @stream @defer Берите apollo server. Пока он один из самых продвинутых.13:56Есть еще express-g… twitter.com/i/web/status/1…
Так, сегодня у меня работун (вместо того чтобы работать днём игрался с локальными резолверами urql, теперь пора раб… twitter.com/i/web/status/1…
17:49# Пятница 5 твитов
Пока я пилю тред про обучение, чтоб он не был в стиле @fillpackart и справляюсь с очередным странным багом пока он… twitter.com/i/web/status/1…
13:45@jsunderhood @fillpackart Так же, кажется, иногда для понимания важности вышки нужна практика.14:02Нужно нормальное ср… twitter.com/i/web/status/1…
@jsunderhood @fillpackart Другими образными словами: чтобы писать рабочий софт вышка не особо полезна.14:12Она может б… twitter.com/i/web/status/1…
@jsunderhood У меня нет не только вышки, но среднее специальное вообще из другой области. Но куда мне хочется разви… twitter.com/i/web/status/1…15:28
@jsunderhood @fillpackart Для большинства - да. Отделить меньшинство, которое обойдётся без него, сложно.16:38
# Суббота 11 твитов
Ну что, поехали первый из пяти (а может и больше) тредов про образование. Тредов будет тамк много, потому что это т… twitter.com/i/web/status/1…
15:10Начнём с животрепещущего вопроса про "нужно ли программисту высшее образование"? !0 лет назад я бы отвечал "однозна… twitter.com/i/web/status/1…
15:11Я не хочу касаться избитых утверждений "диплом не нужен, кроме как чтобы завести трактор" - все так. Я буду говорит… twitter.com/i/web/status/1…
15:11Я встречал крутых ребят в 23 года с навыками, кругозором и знаниями, которые были выпускниками ВУЗа. Я не встречал… twitter.com/i/web/status/1…
15:12В рамках этого треда "крутым" я считаю человека не только с хард-скиллами уровня... ну допустим сеньйор (в конце-ко… twitter.com/i/web/status/1…
15:13Я не хочу скатываться до банальных рассуждений "в 17 лет сложно обеспечить сбалансированное развитие себя", поэтому… twitter.com/i/web/status/1…
15:13Почему "перекосы" это проблема - потому что если мы говорим о развитии инженера (как справедливо подчеркивает… twitter.com/i/web/status/1…
15:14Самое время потизерить следующий тред про образование - поговорим о курсах, которые помогают "войти в айти" и об ог… twitter.com/i/web/status/1…
16:50Итак, давайте поговорим о курсах. Сразу хочу сказать (вдруг кто-то не знает) - я заангажирован, так как сам занимаю… twitter.com/i/web/status/1…
18:05Начну с агрессивного вброса: текущую ситуацию с рынком онлайн-образования в ру-сегменте иначе как ЖОПОЙ я назвать н… twitter.com/i/web/status/1…
18:07Начнем с маркетинга и давайте посмотрим, к примеру, на @Skillbox_ru . Посмотрите на полную версию картинки из тизер… twitter.com/i/web/status/1…
18:12# Ссылки
other
- https://status.fastly.com/
- https://redux-toolkit.js.org/rtk-query/overview
- https://www.apollographql.com/docs/react/
- https://gitlab.com/gitlab-org/gitlab/-/issues/300413/
- https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/data/engineering_ic_career_matrix.yml#L123
- https://www.youtube.com/watch?v=zJWIJ5h3eTs
- https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%9F%D0%B8%D1%82%D0%B5%D1%80%D0%B0
- https://formidable.com/open-source/urql/
- https://formidable.com/open-source/urql/docs/comparison/
- https://formidable.com/open-source/urql/docs/graphcache/local-resolvers/
- http://dev.to/