xanf_ua

7 июня 2021

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

Всем продуктивного понедельника! На этой неделе с вами @xanf_ua и у меня обширный список вопросов и вбросов - от ин… twitter.com/i/web/status/1…

11:08

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

11:09

Для тех кто не в курсе кто такой @xanf_ua:

11:18

Спасибо всем за отклики :) Завтра начнём жечь

А пока давайте начнём "за жизнь". Прошлый раз в андерхуде я был в 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 :)

Нельзя не упомянуть свежерелизнутую redux-toolkit.js.org/rtk-query/over… RTQ Query (… twitter.com/i/web/status/1…

11:53

Здесь я не могу не кинуть огород в камень 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
Ну начались интеграции) Илья очень хорош, надеюсь промокоды пойдут в дело))

@nodkz Время рекламной паузы: я недавно сделал мастер-класс по GraphQL где половину времени посвятил работе с лока… twitter.com/i/web/status/1…

18:52
@jsunderhood @nodkz Мы в команде, пока смотрим и рисерчим в сторону своего кастомного линка, который и сами будем п… twitter.com/i/web/status/1…
19:24
Если кратно, то стейт-менеджер должен обеспечивать:

  • Двустороннюю синхронизацию данных
  • Оптимизацию потоков данн… twitter.com/i/web/status/1…

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

20:55

# Среда 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
Не важно, сколько бабушек ты перевёл через дорогу, сколько спас людей, и сколько задонатил Медиазоне.

Если ты не д… twitter.com/i/web/status/1…

17:33

Я помню, что обещал про 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…

Итак, карьерные лестницы и мои ощущения на них.

Во многом этот тред навеян заполнением своего Career Mapping в Git… twitter.com/i/web/status/1…

8:59

Итак 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

  • Вернуть данные в мутации. Хорошо работает с изменением данных (аве, нормализация), но плохо - когда в результате… twitter.com/i/web/status/1…
  • 9:20

    Проблема с этими подходами очевидна - они ужасно масштабируются с ростом системы. при добавлении новой 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…

    С таким подходом могу заявить, чт… twitter.com/i/web/status/1…

    9:39

    При этом у 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. Пока он один из самых продвинутых.

    Есть еще express-g… twitter.com/i/web/status/1…

    13:56

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

    17:49

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

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

    13:45
    @jsunderhood @fillpackart Так же, кажется, иногда для понимания важности вышки нужна практика.

    Нужно нормальное ср… twitter.com/i/web/status/1…

    14:02
    @jsunderhood @fillpackart Другими образными словами: чтобы писать рабочий софт вышка не особо полезна.

    Она может б… twitter.com/i/web/status/1…

    14:12
    @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