Владимир Ульянов

Владимир Ульянов

Темы
Неделя
Dec 23, 2019 → Jan 13, 2020

Архив недели @lionskape

Понедельник


Всем привет. Ночь собирается, и начинается мой дозор. А всё потому, что я сейчас в командировке в США и буду писать о ней. А еще о технологиях: Cordova BFF немного про DevOps для UI ...и другие штуки На часах 22:45, начнем же. С вами @lionskape, Владимир Ульянов.

Начнем с простого опроса. Вам нужно мобильное приложение (вы очень хотите попасть в "маркеты"). По срокам как обычно - еще вчера. Внутри будут формочки, тексты, таблички, кнопки и что-нибудь еще. Что возьмете?
🤔 65.9% ReactNative
🤔 19.9% Flutter
🤔 4.9% NativeScript
🤔 9.3% Cordova

@jsunderhood pwa
Отличный кейс для изучения. Однако, на данный момент у PWA практически нет жизненно важных фичей, они только-только появляются. twitter.com/burnmthfck/sta…

Соответственно, еще года 3-4 (как минимум) нам придется ждать, пока хотя бы базовые нативные фичи станут общедоступными.

Моё персональное мнение, что PWA - безусловно стоящий блок технологий, но на него на данный момент нельзя опираться. А вот как прогрессивное улучшения для веба - отличное решение.

Оставлю еще небольшую затравочку, и дам всем спокойно доработать рабочий день :) В США стоит приехать даже просто что бы посмотреть на этот мост :) P.S. Раньше никогда не обращал внимание на ограничения камер, а сейчас спасает только панорамный режим. И то - не всегда.
notion image

Итак, немного о США. Ради одной только природы стоит ехать. И тема сегодняшнего вечера - парки. Вчера, специально для вас съездил в MuirWoods.

Первое, что бросается в глаза - высоченные, огроменные деревья.
notion image
notion image
notion image

Однако, это не самые большие, что есть в США, зато их много.

Тут же много-много разнообразных дорожек, мостиков, камней.
notion image
notion image
notion image

Прямо в парке можно встретить камеры для животных. Хотя они, наверное делаю на них забавные фото туристов :)
notion image

Тут же протекают различные ручейки, каналы.
notion image
notion image
notion image

Если подняться по горной тропе на вершину - можно увидеть совсем другие пейзажи, и то, насколько кривые у меня руки :)
notion image
notion image
notion image

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

🔥Тред (Владимир Ульянов)
Ну, и небольшой soft-сабж на вечер. Как вы думаете - интеграция новых членов команды (как онбординг, так и неформальная) это проблемы самих утопающих задача для хорошей команды ваш вариант? Тут нет правильных и неправильных ответов, просто тема. Посмотрим как зайдет :)

@jsunderhood Неплохой доклад был на #kharkivjs youtu.be/A5sEEncsduo по онбордингу рекомендую
Сам не смотрел, но раз советуют, то стоит и ретвитнуть twitter.com/Blackrabbit99/…

Итак, подводя итоги вечернего сабжа: Часто встречается, что людей бросают на произвол Но, активное комьюнити считает, что интеграция сотрудника интеграция должна быть Интеграция должна идти со стороны комманды Но есть мнение, что это вотчина тимлида (при его наличии)

А еще бытует мнение, что если команда тебя не онбордит, то стоит подумать о том, что бы уйти в другое место, т.к. это сигнал о плохих процессах.

Начнем с простого опроса. Вам нужно мобильное приложение (вы очень хотите попасть в "маркеты"). По срокам как обычно - еще вчера. Внутри будут формочки, тексты, таблички, кнопки и что-нибудь еще. Что возьмете?
Итак, опрос скоро заканчивается, кто не успел - голосуем! twitter.com/jsunderhood/st…

@jsunderhood У меня много фрилансеров. И есть несколько правил, которым я следую: На проекты, по которым есть запас по срокам лучше брать новых людей, чтобы их проверить. Редко получается попасть на адекватного человека с первого раза, на 1 проект должно быть 2-3 кандидатуры новичков.
Онбординг фрилансеров - штука еще более не тривиальная. twitter.com/madex_/status/…

Вторник


@jsunderhood Верить в людей - это хорошо. Прививать культуру взаимопомощи - это отлично. Надеяться что команда сама обучит новичка без явной на то мотивации и куче собственных задач- это прекрасно, но с высокой вероятностью, новичку не уделят достаточного времени и он будет сам искать ответы.
Еще отличный пункт по поводу онбординга. Культура должна быть спущена сверху, так сказать "насаждена", но таким образом, что бы дальше она работала с минимальной поддержкой. twitter.com/nmatuhin/statu…

@jsunderhood "Как поступлю" - буду прикреплять его к более опытным сотрудникам. Опытным будет разнообразие в работе, новичку гарантированный куратор. Можно даже бонусы выдавать за успешное кураторство (по фидбеку от новичка и результатам работы новичка)
Еще один способ онбординга - персональные кураторы, как часть роста опытных сотрудников. twitter.com/nmatuhin/statu…

@jsunderhood В Jira или др.трекер добавить пунктом workflow "документация" (сотрудник должен пойти в вики или репо с техдокументацией, посмотреть как его доработка влияет на документацию, дописать туда изменения, переснять скриншоты, только после этого можно отправлять таск на проверку)
Интересный поинт, но получится просто убер дорогая документация. twitter.com/nmatuhin/statu…

Начнем с простого опроса. Вам нужно мобильное приложение (вы очень хотите попасть в "маркеты"). По срокам как обычно - еще вчера. Внутри будут формочки, тексты, таблички, кнопки и что-нибудь еще. Что возьмете?
Итак, в Москве утро, а потому мы начинаем новый день. И начнем мы с разбора результатов опроса twitter.com/jsunderhood/st…

Ожидаемо, первое место занял RN. Судя по ответам людей - все выбирают его из-за известности, размера комьюнити, и популярности самого React'a. Pitfalls: много платформозависимого кода разработка не так проста как веб, очнеь много специфичных вещей в веб - не зайдет

На втором месте, ожидаемо, стоит Flutter. Либо у нас больше Dart разработчиков чем кажется, либо люди не берут это в расчет. Хотя сам язык достаточно простой. Pitfalls: Dart Почти нет компонентов для IOS, а значит будет выглядеть чужеродно Отладка сложнее чем RN

А вот дальше идет Cordove :) Про нее будет в подробнее в следующем треде. Мое сводное мнение - технология незаслуженно отстает от flutter, скорее всего из-за слабого community.

Ну и завершает наш опрос - NativeScript. На самом деле мне практически нечего сказать про этот подход. Видимо, раз его не пиарит google, то люди им просто не доверяют. А так - они должны занять место Flutter, но в мире JS.

Ну, и в дополнение пару слов про другие технологии: Capacitor, может заменить Cordova, но еще слишком молодой PWA, фактически нет поддержки, и нужно ждать обновления устройств + есть не все спецификации Flow9 и прочие NoName - нет комьюнити, доверия, высокий порог входа

Мда, сначала пиши, потом проверяй, потом выкладывай. Опечатка, конечно. Технология называется Cordova.

🔥Тред (Владимир Ульянов)
Итак, долгожданный пост (или целый день) про Cordova.

Cordova, это "коробочка", предоставляющая доступ к OS через плагины. В нее мы кладем весь сайт целиком. Это дает нам: доступ к почти всем нужным нативным API (через стандартные плагины) доступ к любым нужным API через написание плагинов Это как electron для мобильных.

Про минусы: вы не получите хороших анимаций вы не получите хороших жестов вы не можете хорошо использовать 3D графику сама Cordova достаточно старая, из-за чего есть проблемы вам придется немного работать с платформой (например для биометрии) маленькое community

Отдельно про "Cordova старая". Пример - gradle исторически должен лежать в path, а конфиг ему править можно только патчингом после сборки приложения (это нужно для использования локальных репозиториев пакетов, например). Во времена создания Cordova это не было "стандартом".

Еще пример - часть задач можно выполнить только императивно, например добавление кастомных плагинов.

А теперь сделаю бутерброд и добавлю немного очевидных плюсов: Это самый быстрый способ сделать два приложения для сторов. Скорость разработки таких приложений - чуть медленнее мобильной версии сайта. Отладка - вы просто отлаживаете свой js в браузере

У вас есть доступ к любому нативному API Релизы Cordova очень стабильны, проект явно достиг зрелости Вы можете собрать сайт в electron Вы можете сделать из этого кода обычный веб-сайт почти бесплатно Вам подойдет любой JS разработчик / фреймворк

И еще пара очень важных моментов: то, что ассоциируется с Cordova у людей - приложения прошлого века, сделанные без всяких rect / vue / angular размер бандла все еще имеет значение. Вы убираете сеть для загрузки бандла, но всё остальное - остается при вас.

Дальше будет больше, а пока - задавайте вопросы :)

🔥Тред (Владимир Ульянов)
@jsunderhood Не вижу минус: невозможно сделать production-ready приложение. Как только вы станете успешным, придется все выкинуть и сделать заново, хотя бы на React Native.
Это не минус. Это, что вы вымениваете на дешевизну старта. Фактически - это является самым большим плюсом приложения на Cordova. Многим компаниям нужны не не production приложения, а PoC / MvP, которые не жалко выкинуть, что бы не случилось. Добро пожаловать в Agile. twitter.com/8xx8ru/status/…

@jsunderhood Не вижу большой разницы сразу стартовать на React Native. И получить все плюсы, что были перечислены и почти 0 минусов. Оверхед на понимание почти тот же, но, комьюнити больше, тулчейн лучше, перформанс лучше, анимации, (за жесты и 3d не знаю)
А вот и распространенное заблуждение. будешь постоянно работать с платформой, с ее особенностями (пример - селекты) придется изучать новый способ верстки придется изучать сам RN Это всё не свойственно Cordova. Для людей без опыта - разница будет минимум раза в 2. twitter.com/8xx8ru/status/…

@jsunderhood Ошибка рассуждения в том, что не разработчик платит за переписывание, а бизнес. И получается, что компания на старте делает заведомо плохую инвестицию, притом что скорость разработки не сильно просядет, не на порядки.
Практика показывает, что при выборе - нормально на RN за год или приемлемо на Cordova на 4 месяца, выигрывают те кто пишет быстрее. Более того, в случае провала - врятли что-то сильно поменяется от RN, зато на Cordova ты сильно сэкономишь. twitter.com/8xx8ru/status/…

Итак, долгожданный пост (или целый день) про Cordova.
Немного best-practices разработки на Cordova: пишите тонкие клиенты (можете взять BFF, что бы вынести часть логики из приложения) избегайте сложных анимаций избегайте сложных жестов автоматизируйте сборку помните, что приложение скоро уйдет на свалку twitter.com/jsunderhood/st…

@jsunderhood Для одной из компаний делал приложение ReactNative + WebView с Turbolinks. Еще быстрее в разработке, нет дублирования бизнес логики в мобилке, нужные куски можно делать нативными в ReactNative. Подход не для всех, но во многих случаях может быть достаточным решением для бизнеса.
Еще один вариант написания мобильного приложения. Вы можете взять RN и задешево добавить нормальную навигацию, по надобности использовать нативные компоненты. А всё приложение написать на WebView. Кейс интересный, хотелось бы увидеть, что у ребят получилось. twitter.com/platonov_kd/st…

Итак, пришло время для вечернего сабжа. Расскажите, как вы отситесь к простывшим людям в офисе? пусть работают из дома, а в офис не суются прихожу сам больной на работу, задачи то делать надо больные люди = больной код. Всегда лечусь на больничном

А еще если вы пишете n-й плагин (у всех своя n, но она не большая) - это отличный повод выбросить ваше приложение, и написать более платформенным способом.

@jsunderhood @AlexVaizer Потому что обычно не кем заменить, а дедлайн был вчера.
Большинство людей, которых я встречал, не берут больничные. Они либо ходят на работу, либо, в лучшем случае, работают из дома. Есть ли у кого-нибудь идеи, почему люди идут в офис, когда до дедлайна еще далеко? twitter.com/unforcons/stat…

@jsunderhood Работать больным нельзя, потому что КПД такой работы бывает даже отрицательным, не то, что нулевым. Я бы простуженным людям и за руль запрещал садиться) А работать больным иногда всё-таки приходится по мелочи из-за сроков "на вчера"(
Еще хороший поинт. Больные люди, с температурой и т.п. имеют значительно ослабленное внимание, и допускают много багов. До такой степени, что делают продукт менее стабильным, чем был до их правок. twitter.com/AlexVaizer/sta…

@jsunderhood Если люди больные ходят на работу то это проблема процессов компании. В норм компании есть правило: заболел - сиди дома. Несколько дней всегда можно так поработать. Лучше так чем заражать коллег.
Естественно лучше, но люди по разным причинам тащатся в офис, несмотря на эти правила. Вот мне и интересно - что же ими движет в эти моменты. twitter.com/nleonid/status…

@jsunderhood потому что размер выплат по временной недееспособности.
Хороший поинт. Один из критериев выбора работадателя в РФ - компенсация больничного до уровня оклада. twitter.com/asyavee/status…

@jsunderhood Потому что - не знают что можно спокойно поболеть несколько дней дома без справок и со всеми выплатами - чувство «долга» привитое в плохих компаниях - процессы настроены так плохо что бас фактор одного из человека ломает всю работу
Хороший поинт, с отсылкой к предыдущему треду про онбординг :) twitter.com/nleonid/status…

Итак, пришло время для вечернего сабжа. Расскажите, как вы отситесь к простывшим людям в офисе? пусть работают из дома, а в офис не суются прихожу сам больной на работу, задачи то делать надо больные люди = больной код. Всегда лечусь на больничном
Итак, раз уж я в коммандировке - расскажу как работают в моем офисе в bay area. Никто не ходит на больничные, просто не принято. Все берут wfh, во всех митингах есть возможность подключится удаленно. twitter.com/jsunderhood/st…

Отдельная тема про лекарства. Есть два вида лекарст сильные, те что лечат. На уровне антибиотиков - это исключительно по рецепту врача. слабые, снимающие симптомы, поднимающие иммунитет - такого добра навалом в любом супермаркете.

То есть типовой кейс - съездил в супермаркет, снял симптомы и работаешь из дома, пока не вылечишься.

Такой же кейс и для случаев если нужна помощь кому-то из семьи (например, заболел ребенок). Спокойно, без вопросов берут wfh, и работают из дома сколько нужно.

🔥Тред (Владимир Ульянов)
Ладно, вам пора отдыхать, а мне работать. Завтра будем говорить про BFF

@jsunderhood @8xx8ru 1/N Очевидно, что нет никакого смысла разделять самую низкоуровневую логику. Как именно рендерится компонент ввода текста? Как именно отрисовывается изображение? Как происходит работа с персистентностью? Это всё платформенные детали.
Интересно, есть ли в мире хоть одна компания, которая действительно смогла так сделать и заработать на этом? 🤔 Звучит как утопия, на бесконечность часов, разбивающаяся о реальность бытия. twitter.com/shaukote/statu…

@jsunderhood @8xx8ru 1/N Очевидно, что нет никакого смысла разделять самую низкоуровневую логику. Как именно рендерится компонент ввода текста? Как именно отрисовывается изображение? Как происходит работа с персистентностью? Это всё платформенные детали.
Раз уж тред окончен - прокомментирую: сложность поддержки такой системы - невыносимо сложна платформенный код загонит вас в тупик длительность интеграции - будет дольше написания двух приложений реальных кейсов нет, зато много докладов опровергающих эту идею twitter.com/shaukote/statu…

Среда


@jsunderhood Для переиспользования бизнес-логики на разных платформах у Google есть j2cl и j2objc. Основной код пишется на Java, есть свои недостатки, но задачу решает.
Воу, какого зверя мы затронули. twitter.com/grafov_nikita/…

Доброе утро, Россия. И мы начинаем новый день. Сегодня будем говорить про BFF, и начнем с простого опроса. Bспользуете ли вы BFF?
🤔 2.4% Использовали, отказались
🤔 10.5% Не используем, но хотим
🤔 32.4% Да, используем
🤔 54.7% Нет, не используем

На всякий случай расскажу, что такое BFF: Это "прослойка", которую пишут фронтендеры (обычно), работающая на сервере. Она обрабатывает запросы от фронтенда, и делает запросы в настоящий бэкенд.

Еще один Pitfall для разработки на Cordova. Она вам однозначно не подойдет, если вы работает в real-time. Кстати React Native, NativeScript - тоже скорее всего не подойдут. За flutter не скажу, но мне кажется real-time, это отличный повод сразу писать нативный код. twitter.com/ChillyBwoy/sta…

@jsunderhood Вариантов много, просто json удобный для веба. Если у тебя нормальные микросервисы, то бфф тебе будет мешать. Бфф используется для мапинга входящих данных. Когда бэкендеры не знают, что такое свагер и тд.
Типизация данных с бэкенда - лишь один из многих кейсов для использования BFF. twitter.com/a250188/status…

@jsunderhood @Vofus Ок, рест вообще спецификация. Ты бедешь википедией кидаться или все таки напишешь реальный кейс?
Токсичненькое сегодня утро :) twitter.com/a250188/status…

@a250188 @jsunderhood @Vofus Напишу от себя. В первую очередь БФФ слой в нашей архитектуре является валидатором клиентской сессии. Учитывая, что обычная страничка - это запрос в 3-4 микросервиса, уменьшение нагрузки на сервис аутентификации в разы.
Еще хороший вариант использования BFF. Сервис аутентификации - один из критически важных сервисов практически в любом приложении (где он есть, конечно). Многократное снижение нагрузки на него - уже более чем достаточный повод использовать BFF. А кейсов еще уйма в запасе :) twitter.com/DimonShin/stat…

@jsunderhood Если мне плохо, то плохо должно стать всем коллегам и знакомым, поэтому, конечно, правило простое: заболел - срочно на работу
А еще можно так устраивать диверсии :) twitter.com/aarexer/status…

@jsunderhood @raphaeel_ru а почему здороваешься при этом только с Россией?
Ух, вот это я затупил. Привет всему твиттеру, всем читателям, независимо от расположения, и любых других факторов. twitter.com/Exiliot/status…

Доброе утро, Россия. И мы начинаем новый день. Сегодня будем говорить про BFF, и начнем с простого опроса. Bспользуете ли вы BFF?
Итак, пока идет опрос, расскажу пару интересных фактов, когда стоит использовать BFF. twitter.com/jsunderhood/st…

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

Но - он не единственный. Можно, например, уменьшить нагрузку на сервис авторизации, потери на передаче данных через интернет. Делается это путем того, что один запрос на BFF делает один запрос аутентификации и несколько запросов к сервисам.

Еще вариант - вы можете научить его отдавать данные не из бекенда, а из моков / сгенерированные данные. Это позволит вам упростить реализацию без имплементации со стороны реального бэкенда, а так же продолжить разработку при проблемах в дев-среде.

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

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

Так же, при потребности, берет на себя роль service discovery. То есть, для клиента останется ровно один сервис, с которым он общается.

Поскольку BFF зачастую является stateless приложением - он легко горизонтально масштабируется.

Есть и некоторые недостатки у этого подхода: однозначно дополнительный слой ведет к увеличению сложности приложения в целом незначительно увеличивается время ответа из-за доп. прослойки (но не всегда)

🔥Тред (Владимир Ульянов)
@FapSpirit @jsunderhood @artuska BFF - это Api Gateway, который использует только определенный тип клиента. Например, могут быть отдельные BFF для web и для мобильного приложения. Api gateway более общая штука, к которой могут обращаться все. Я это понимаю как-то так.
Хорошая мысль, а вы что думаете по этому поводу, твиттер? twitter.com/vfurso/status/…

@FapSpirit @jsunderhood @artuska BFF - это Api Gateway, который использует только определенный тип клиента. Например, могут быть отдельные BFF для web и для мобильного приложения. Api gateway более общая штука, к которой могут обращаться все. Я это понимаю как-то так.
При чем частая ситуация, что BFF ходит, например в сервис авторизации, и в api gateway. Обычно в таких млучаях он получается особенно тонким. twitter.com/vfurso/status/…

Давайте вечером поговорим о токсичности. Расскажите, как вы на работе боретесь с токсичными людьми? Я знаю следущие паттерны: копим обиду, потом увольняем, без разбора пытаемся помочь человеку, объяснить. Может он не хотел навредить работаем, пока другие не разбегутся

Хорошая илюстрация одного из вариантов решения вопроса токсичности twitter.com/RussianPeep/st…

@jsunderhood Если токсичный человек - непосредственный начальник, то варианты маневра несколько ограничены :) Шагов всего два по сути: Прямой разговор Эскалация Результат: если ни то, ни другое не помогло, уходит либо токсичный человек, либо все остальные :)
 
Действительно, токсичные начальники - это огромная проблема. При чем, обычно токсичного начальника вообще никак нельзя излечить, т.к. он прошел точку невозврата. twitter.com/dkorobtsov/sta…

@jsunderhood Тебе не придётся бороться с токсичным человеком в команде, если это ты и есть pic.twitter.com/K7CiM7Xcnq
Еще отличный поинт. Многие токсичные люди - знают о своей токсичности, но им норм. twitter.com/aarexer/status…

@jsunderhood Имхо, токсичный человек, из-за которого уходят остальные - это обычно следствие, а не причина. Причина - слабый менеджмент / нет нормальных HR процессов / нормальной культуры в компании. Когда все перечисленное в порядке, откровенные упыри обычно отсеиваются при найме.
Ну, может не при найме, но на испытатедьном. А вообще - это совпадает с моими наблюдениями - в небольших компаниях больше токсичности. twitter.com/dkorobtsov/sta…

@jsunderhood На проде тоже моки будут?
Еще один пример токсичности. Человек намеренно пытается спровоцировать тебя на грубость. twitter.com/a250188/status…

@jsunderhood Лучше вам этого не знать, пишите дальше просто про токсичность
Милениалы придумали что-то, про что им лучше не знать. 👌 twitter.com/Marat_Galiev/s…

@jsunderhood Стараюсь изолировать персонажа. Если действия касаются непосредственно меня прямо обсуждаю. Например: а любит путина. А звалит путина не при мне. Пример 2. Б валит вину за невыполненный спринт на меня за моей спиной. Б приглашен на общение к директору в моем присутствие.
Я бы назвал это "Очной ставкой". Интересный вариант, но очень сложный в реализации, и вообще не всегда возможный. twitter.com/WebDevPanda/st…

@jsunderhood Любой руководитель может делать 1х1 с любым из своих подчинённых. Если у тебя как руководителя проблема, ты сам её должен решить. Как это без 1х1 сделать я не знаю.
Хороший вариант. Если твой подчиненный - токсичный, то можно попытаться провести с ним серию 1х1, что бы решить проблему. Главное не забросить, иначе возможны рецидивы :) twitter.com/shuvalov_js/st…

@shuvalov_js Ну, давай попробую на пальцах сформулировать. Токсичные люди, это люди приносящие вред своими soft-скилами другим сотрудникам. При чем можно выделить три случая: сотрудник-сотрудник начальник-сотрудник сотрудник-начальник Начальник может быть непрямым
Кому интересно - попытался на пальцах объяснить, что я имею ввиду под токсичностью на работе. twitter.com/jsunderhood/st…

@jsunderhood @shuvalov_js блин. понятно что токсичность вред. не объяснил на самом деле. хоть пару примеров чтоли
Пара примеров: явным образом провоцирует тебя вместо своей работы - занимается поиском проблем в чужой часто срывается на агрессию лицемерие, ложь, и т.п. постоянно изображает из себя жертву twitter.com/pasynkov/statu…

@jsunderhood @WebDevPanda хороший тред и комменты хорошие
Во, первая похвала за неделю xD twitter.com/ZolotoyEveryda…

Четверг


Итак твиттер, тема сегодняшнего дня - DevOps. Расскажите - что такое DevOps?

@jsunderhood Это навык, которым в той или иной степени должен обладать каждый веб-разработчик. Как по мне, тот же Senior Front-End без умения настроить CI pipeline - не полноценный специалист.
Вау, вот такое мнение я еще не встречал :) twitter.com/this_vasilyev/…

Итак, поскольку уже четверг, а скоро праздники, и вы все устали - начну его с картинок 😉 Вот так мы сегодня проехались по побережью тихого океана, смотрим в треде:

Начали мы с пляжа в городе Pacifica. Там сейчас достаточно прохладно, но серферам это не помеха. В серфинге я не специалист, но говорят что волну тут на небольших и средних серферов.
notion image
notion image

Следующий пункт - так называемый Devil's Slide Gun Turret. Заброшенное здание на берегу, на очень крутом каменном берегу.
notion image
notion image

Проехав еще немного - попадаем в совершенно другое место, с другим пейзажем. Тут уже нет серферов и ловят рыбу. Называется Pilar Point Harbor. P.S. фотая эти камни - набрал полные кеды воды. Невозможно предугадать сколько принесет воды с океана.
notion image
notion image
notion image

Еще немного дальше, и мы попадаем в Pigeon Point Light Station. Это просто маяк и прекрасный вид на океан, но заехать стоит.
notion image
notion image

И последней точкой в этот раз стал Natural Brodges State Beach. Говорят, что тут можно наблюдать за мигрирующими китами, а так же тюленями и выдрами. Но мы ограничились посмотрев на птиц и чудесный пейзаж из камней.
notion image
notion image

Вы наверное спросите - почему же это последний потнт? Тут часа на три езды всего-то! Так вот - ответ простой. Сегодня рождество, и купить еды крайне сложно. Практически все супермаркеты, ресторанчики, кафе закрыты. Праздник. А мы просто проголодались :)

🔥Тред (Владимир Ульянов)
@jsunderhood Моя любимая тема. DevOps - прежде всего методология. Если ты разработчик и следуешь DevOps, то значит, что ты не только должен уметь код писать, но и понимать, что с ним должно произойти после того, как ты сделаешь git push, а также уметь эти процессы в каком-то виде построить.
Итак, почти победитель. DevOps, это не человек. DevOps - это методолгия о тесном взаимодействии команд Development (разработчики) и Operations (по простому поддержка, часто ограничивается админами). twitter.com/ifedyukin/stat…

Искать DevOps инженера - это примерно как поиск Agile программиста - вообще непонятно что тебе нужно.

Интересный факт - термин произошел из Европы, но стал таким популярным и хайповым, что моментально утратил какой-либо смысл. Люди стали переименовывать админов в DevOps'ов, просто ради яркого, модного словца. Вообще не оглядываясь на его смысл.

@jsunderhood Есть же стандартная формула - учить-лечить-мочить
Самое короткое описание одного из способов борьбы с токсичными людьми :) twitter.com/jabher/status/…

@jsunderhood @emil_yangirov 1. Тормозами - давайте честно. Никакой контейнер никогда не будет запускаться и работать быстрее, чем сервер на чистой системе. Я это вижу на своей тачке - и мне не нужны дополнительные доказательства. Вот - этот имадж прокачен по самые гланды по скорости и всё равно он слоу.
Интересное мнение о контейнеризации, в частности о docker. Попробую простыми словами объяснить что это такое, и в чем здесь ошибка. twitter.com/kalashnikovism…

Действительно, Docker - дополнительный слой (а на самом деле просто способ управления набором механизмов в linux). Но это настолько тонкая прослойка, что она даже делит одно linux kernel на весь рантайм. Как следствие докер - не может являться источником "тормозов".

Практически никто из фронтендеров не использует linux, а все сидят на MacOS - тут есть pitflall. Что бы использовать докер на MacOS - поднимается виртуальная машина, в которой запускаются все контейнеры. Но даже виртуальные машины не дадут заметного оверхеда для локальной среды.

Идем дальше - весь локальный запуск можно автоматизировать. Для junior'а намного проще поставить пару программ из интернета, и запустить всю среду одной коммандой, чем пробрасывать порты или конфигурировать тонны софта. Ему даже не нужно знать, как пользоваться докером, вообщето

Что же мы выигрывает от этого? среда версионируется вместе с кодом (во всяком случае может) на прадакшене - практически идентичное окружение, что гюна машине разработчика. Это на 99.99% решает проблему "а у меня работает", со стороны инфраструктуры.

На самом деле говорить тут можно много, но для начала - этого уже достаточно.

🔥Тред (Владимир Ульянов)
@jsunderhood Мы не боремся: мы наслаждаемся и язвим/троллим/подкалываем в ответ. Принятие !== Страдание :)
Кстати, тоже хороший вариант для борьбы с токсичностью. Но тут нужны очень хорошо развитые soft-skills. twitter.com/went_out/statu…

@jsunderhood У меня хороший навык конфликт менеджмента, большая часть людей гандонят потому что у них вавка, а не потому что они гандоны. Увеличивая прозрачность коммуникации и смещая проблемы с личного на процессы, бОльшая часть конфликтов решается.
Конфликт-менеджмент, как способ сохранить свои нервы в порядке на протяжении долгих лет :) twitter.com/edjafarov/stat…

@jsunderhood Не встречал токсичных людей. Встречал людей которые упрощают дело до обвинений кого-то в токсичности
Если человек без повода обвиняет всех в токсичности - он сам токсичен. twitter.com/shaleynikov/st…

@andrey_sitnik @jsunderhood Также трудности с правильной настройкой. Почти всегда про докер говорят абстрактно. Но чтобы работало верно - все в контейнеры не засунешь. Также огромная просадка по безопасности. Если вы компания, которая думает о безопасности - вы всегда будете использовать свои Base images.
Безопасность - отдельный важный поинт контейнеризации. Базовые образы - ну образам ОС, вроде как точно можно доверять. Другое дело, что обычно в проде находится более безопасный runtime для контейнеров, например cri-o или containerd. И это повод вместо докера брать локальный куб. twitter.com/RuslanZavacky/…

Итак, разобравшись с термином DevOps, давайте перейдем немного к тому, а зачем нам во фронтенде вообще нужна комманда Ops? У нас (частенько) даже сервера нет!

Для начала небольшой итог - DevOps, это не человек, не инженер, не адепт, и вообще не физический предмет. Это методология о том, что developers и operations должны тесно взаимодействовать между собой, а не кидать релиз через стену.

Ну, во-первых, как мы и обсуждали - бывают случаи, когда нужен сервер. Например для BFF. А конфигурацией этого сервера как раз занимаются Ops, с которыми вам нужно тесно взаимодействовать.

Дальше, очевидно идет сборка и деплой. Этим тоже занимаются Ops, и вам нужно общаться с ними на одном языке. Узнавать, что и почему, обмениваться опытом.

Помимо сборки и деплоя, эти крутые ребята из operations занимаются еще и метриками - они могут помочь сделать вам проверки / мониторинг perfomance, различных TTY, FMP и прочих. Стандартом для метрик сейчас является prometheus, значит вам просто нужна будет точка для сбора метрик

Но не все метрики могут быть отданы приложением. Некоторые получается путем сбора и анализа логов. С ними вам тоже помогут чуваки, гордо зовущие себя Ops. Главное побольше с ними общаться :)

Кстати, что бы лучше их понимать - стоит прочитать хотя бы о 12и факторных приложениях

Кстати, эти чуваки любят стабильность, а методология предполагает быстрые и частые релизы. А значит вам наконец нужно написать тесты. Unit, интеграционные, e2e, и как можно больше. Чем больше тестов, тем добрее ваши чуваки из Ops.

@jsunderhood программирование на yaml :D
Yaml-developer. Это уже какое-то современное искусство twitter.com/nzvtrk/status/…

Вечер четверга, а значит пора обсудить что-нибудь эдакое. Как у вас в компании устроен процесс пересмотра ЗП? регулярные встречи для пересмотра как договорюсь, так поднимут не поднимают оставлю вариант в комментах

Давайте вечером поговорим о токсичности. Расскажите, как вы на работе боретесь с токсичными людьми? Я знаю следущие паттерны: копим обиду, потом увольняем, без разбора пытаемся помочь человеку, объяснить. Может он не хотел навредить работаем, пока другие не разбегутся
Итак, давайте попробую описать, как я вижу это в офисе где работаю. Я еще не встречал даже намека на токсичность. Все приветливые, отзывчивые. Фразы в роде "как твой день", "хороших выходных" - буквально зашиты в культуру, их слышишь даже в магазине от кассиров. twitter.com/jsunderhood/st…

Не знаю, с чем это связано. То ли люди боятся, что на них подадут в суд, то ли просто исторически сложилось. Может что-то еще.

И сейчас на меня набросятся какие-нибудь эксперты, что бы доказать, что я не прав, и все плохо. Но у меня такое чувство, что после волны борьбы за права афроамериканцев, за права ЛГБТ, и прочих - тут сложилась достаточно хорошая атмосфера. Во всяком случае в bay area.

@jsunderhood 5. Переход на другой проект/смена работы.
Отличный вариант. А вы знали, что если программист больше года сидит на одном масте - он начинает постепенно терять в ЗП относительно рынка? twitter.com/musuk/status/1…

@jsunderhood планируется раз в квартал Performance Review, в рамках которого собирается фидбек от команды по успехам в работе и развитии работника, плюс он сам рассказывает своё мнение, насколько ему хорошо или плохо.. И работник имеет полное право запросить больше денег. Отказы случаются)
Perfomance Review - один из популярных способов коррекции ЗП. Правда достаточно субъективный. twitter.com/MrCannabiscat/…

Интересный вариант. В таком случае, работадатель как бы будет ожидать того, что через год ему понадобится предложить пктуальные условия. И избавляет от неловкостей всех. P.S. На своей практике такого не встречал. twitter.com/pachesnyi/stat…

@jsunderhood @mktoid Но когда нужно, там, системное программирование, субд клепать, или какую-нибудь авионику/ресурсодобычу/военщину, то это сразу исключает его из подобного рода работ
Отличный поинт. Есть сферы, где большой порог входа. Правда многие намеренно избегают подобных вакансий связанных с гос. контрактами. twitter.com/alexanius/stat…

@jsunderhood Это скорее перенос английской культуры. В Британии и бывших колониях это большой частью закрепилось и стало частью новой культуры. Так что не стоит такому удивляться. Другое дело, что вся эта вежливость - лишь вежливость и не более.
Небольшой экскурс в американскую вежливость. Я не проверял, но не вижу смысла не доверять информации, выглядит правдиво. twitter.com/dag_negro/stat…

@stasparshin @jsunderhood Первое: установить доверительные отношения с подчиненными, чтобы в случае с дискомфортом они не боялись прийти к вам с просьбой о помощи и не замалчивали то, что им не нравится
Мнение читательницы о оом что делать на руководящих позицих с культурой, во избежание токсичности. Многие вещи проще, чем кажутся, главное не забывать о них 😉 twitter.com/riittagirl/sta…

Перечитал свой тред. Хочу упомянуть, что это далеко не всё, чем занимаются Ops - это очень клевые и многогранные ребята. Просто описанное - одни из наиоблее больших точек соприкосновения. Вам же например не очень интересно, как они прогоняют 20 гигабит трафика через свич?)

🔥Тред (Владимир Ульянов)
Добавлю, что новый взгляд на имеющиеся проблемя - практически единственный способ сделать "прорыв". twitter.com/DanVx77/status…

@alexanius @miha_x64 @jsunderhood @mktoid Хочешь делать реально сложные вещи с горизонтом планирования в 5 лет - нанимай спецов 35+ с женой/детьми, планирую индексацию зп хотя бы по инфляции, делай внутреннюю систему повышения квалификации и т.д
Отличная практика. Только специалистов можно и помоложе. Есть отличный пример - в РФ есть компания, где уровень роста ЗП привязан к перфомансу. Работаешь как угодно - 1хИнфляция Работаешь хорошо - растет еще больше. Плюс рост бенефитного пакета от стажа. twitter.com/7voprosov/stat…

@jsunderhood 4. Раз в год собирается фидбек от твоей команды и твоего секшн Лида, собирается твой фидбек(оценка тебя самим собой) и отправляется запрос в главный офис, потом приходит фидбек через 4 месяца и поднимают зп, поднимают обычно всем, но бывает что поднимут на 4%)
Конкретный пример ежегодного роста ЗП, не ниже уровня инфляции. Как вам? twitter.com/kiskesis/statu…

@jsunderhood так и не надо. Рынок растет и каждая новая смена обязательно прибавит, но часто менять работу вредно. В какой-то момент пора научится задавать правильные вопросы на собеседованиях и обращать внимание на правильные вещи на испыталке. Еще принять, что зп будет расти медленней рынка
Принять, что каждый год твой сосед будет зарабатывать больше, а ты меньше. И смириься с этим. Звучит как - ты живешь в России, смирись. Цены колеблются, рубль нестабилен. И ты будешь страдать. twitter.com/DimonShin/stat…

Пятница


Три несмирения с низким росто зп, пожалуйста нам! twitter.com/kiriltaran/sta…

@jsunderhood Было раз просил, чтобы скинули ЗП, потому что синдром самозванца - посмеялись.
Вау, и такое бывает :) twitter.com/Oleg75113370/s…

@jsunderhood @DimonShin Также согласен с тем, что материальные ценности(зп) часто можно заменить моральными(проект, команда), но каждый раз когда мы отказываемся от чего-то сейчас, мы подразумеваем инвестицию в будущее стоит об этом не забывать
Интересный поинт про проект. Я вот стараюсь делать свой некоммерческий проект, для души и саморазвития, что бы не зависеть от рабочего. А как делаете вы? twitter.com/kiriltaran/sta…

@jsunderhood раз в 4 месяца СТО проверяет теоретические знания по матрице скиллов, а после беседа с СЕО о проекте и пожеланиях
Интересный вариант. В небольших компаниях, где один человек может проверить всех - процесс можно упростить и немного "опрозрачить". twitter.com/huccah/status/…

Доброе утро, твиттер. Итак, сегодня пятница, все устали - а значит и тема у нас будет легкая. Утром поговорим об автоматизации. Расскажите самый необычный случай автоматизации (процессы, рутина и т.п.) в вашей практике? А я потом поделюсь своим опытом.

@jsunderhood Баш-скрипт, который делал git pull на продакшн сервере каждые 15 минут
Хардкорненткий CD :) twitter.com/lya_pushka/sta…

Доброе утро, твиттер. Итак, сегодня пятница, все устали - а значит и тема у нас будет легкая. Утром поговорим об автоматизации. Расскажите самый необычный случай автоматизации (процессы, рутина и т.п.) в вашей практике? А я потом поделюсь своим опытом.
Поделюсь своим недавним опытом. Автоматизировал я процесс подбора интервьюеров. twitter.com/jsunderhood/st…

За основу взяли lambda функции + google таблицы + внутреннее апи со списком сотрудников по профессиям

Логика такая - взять всех сотрудников, посчитать сколько кто провел, вывести кто какие технологии может использовать. И отсортировать на основании этих данных.

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

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

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

В чем профит: человек, который ищет интервьюера теперь не гадает и ищет по всей компании, а выбирает из отсортированного по приоритету списка не такого, что кто-то ведет половину всего, а кто-то вообще ничего

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

Что по програмной части - TS, ramda, google-api, date-fns

🔥Тред (Владимир Ульянов)
@jsunderhood Была такая игрушка - yeti sports. По первому клику мыши пингвин прыгал со скалы, по второму йети херачил по нему битой. Нужно отправить пингвина в длинное путешествие. Написал скрипт, который кликал через рандом, открыл 10 окон, пошел спать. Утром зафиксировал непобиваемый рекорд pic.twitter.com/1JaMnzzDps
Автоматизация каких-то таких забавных штук всегда вызывает какое-то теплое, "ламповое" ощущение :) twitter.com/postepenno/sta…

Итак, неделя подходит к концу, а значит пора здорово отдохнуть! Расскажите в какое любимое заведение вы ходите, и за что любите его? Мне вот нравятся два места в СПБ: in100gramm, креативный маленький бар, в котром знают про react :) Бар The Wall на Петроградской

В The Wall есть мой любимый London Pride, вкусная еда, и отличные бармены.

Еще скажу про Новосибирск. Там есть два замечательных клуба: Бункер, в академгородке. Не самое крутое место, зато там куча воспоминаний Pravda на студенческой. Достаточно большое место, где проходит много студенческих вечеринок, и не только студенческих.

@jsunderhood Я сейчас в Италии, остров Сицилия, город Катания. Крафтовый бар Mosaik. Всем любителям пива советую, его в Италии не так много
Будете в Катании (Италия), заходите пить пиво :) twitter.com/Kishimy/status…

Суббота


Я тестировщик, и поэтому что бы я ни лепила — слойки, корвертики, круассаны, н е в а ж н о — у меня всегда получаются багрепорты. twitter.com/nikola_skeij/s…
Я разработчик, а все равно получаются баг репорты. Что со мной не так? :) twitter.com/rnpnte/status/…

А вот про то, что современные программисты разучились программировать. Да, вот прям так плохо tonsky.livejournal.com/324161.html
Сразу видно, что человек хотел просто громких слов и хайпа. Пользуюсь MacOS давно, таких проблем не встречал. Всегда ставлю обновления в день выхода. Еслинственное с чем согласен - Twitter for Mac - отстой, тормозит на 2 профилях. Но они пионеры, и это нормально. twitter.com/nikitonsky/sta…

Кстати, вспомним начальную тему про кросс-платформенные приложения. А вы знали, что Apple выпустила технологию для нативных, кросплатформенных приложений (для своих продуктов)? Технология хоть и молодая, а в целом работает нормально. Но не без проблем. twitter.com/fantactuka/sta…

@jsunderhood Protokoll, Berlin – душевное место
Будете в Берлине, заходите в Protokoll. 24 крана, вроде не много, но раз уж хвалят :) twitter.com/justboriss/sta…

Я тут подумал, и решил. Сегодня суббота, все заняты своими делами, всем не до твиттера. А давайте устрои день "спроси что хочешь"? Задавайте любые вопросы, а я буду на них отвечать. Технологии, командировка в штаты, да вообще что угодно.

@jsunderhood Если денег не жалко, поставь Твитбот.
Тут рекомендуют альтернативный клиент для твиттера. Я его готовить не умею, но может кому пригодится. twitter.com/savoptik/statu…

Воскресенье


Итак, кончается мой дозор, напоследок решил сделать тред своих эмоций от командировки в США.

Для начала очень сильно заметна разница культуры. И она проявляется буквально во всём. Необычности встречаются буквально во всём, даже в походе в магазин - кассир спрашивает как твои дела, просто так принято.

Довелось мне воспользоваться скорой помощью (кажется мне поставили анафилактический шок). Скорая приехала буквально за 2 минуты, я услышал сирены еще во время разговора с 911. В госпитале тоже приняли буквально моментально, никаких подождите 2 часа и т.п.

В общепите тоже всё иначе. Начиная от всем известного “обязательные чайные - 20%”, и вплоть до размера порций. Кормят тут "до отвала”.

Стирка тоже отличается - никто не сушит одежду “на веревках”, все пользуются электрическими сушилками, который выглядят как стиральная машина,

Пешеходы на улицах есть только в крупных городах, вроде “Сан-Франциско”, и то меньше чем даже в Новосибирске. Общественным транспортом пользоваться практически невозможно (кроме разве что электрички). Машина - обязательный атрибут для существования.

Природа - ну просто изумительная. За несколько часов езды можно увидеть и берег, и скалы, и снег, и пустыню. И что особенно бросается в глаза - разнообразие красок в естественной среде, и бережливое отношение к ней.

В небольших городах на улицах чисто, намного чище чем в РФ. Я пока не успел добраться до самого Сан-Франциско, но там вроде тоже не грязно.

Несмотря, на то, что практически везде намного безопаснее чем на родине - есть криминальные города / районы. Но их можно просто не посещать.

Еще интересный момент про безопасность. У полиции есть твиттер, куда они пишут сообщения о разыскиваемых и уровне их угрозы окружающим. Начиная с уровня AMBER всем владельцам смартфонов приходит принудительное особое оповещение, со ссылкой в этот твиттер.

Болеть тут не принято, люди берут WFH. При этом посещают врача и лечатся. Не уверен насколько это продуктивно, но уж лучше чем устраивать диверсию в офисе.

Еще интересный факт - тут не особо выбирают стек. В цене, так называемые Software Engineer, которые могут хоть на java, хоть на TS быстро разобраться.

В целом страна оставляет крайне положительное впечатление, несмотря на многие местные особенности. Если есть какой-то момент, который вас интересует - спрашивайте, попробую рассказать как я его вижу.

🔥Тред (Владимир Ульянов)

Понедельник


Итак, Твиттер. Мой дозор окончен, самое время подводить итоги недели. Много это, или мало - я не знаю. Но кажется я прибавил в подписчиках раза в 3 - @lionskape Поскольку я обычный разработчик - говорили о разном. Давайте вспомним:

Итак, пока идет опрос, расскажу пару интересных фактов, когда стоит использовать BFF. twitter.com/jsunderhood/st…
Hard-skills: Кросплатформенные приложения: twitter.com/jsunderhood/st… PWA twitter.com/jsunderhood/st… Cordova twitter.com/jsunderhood/st… Мечты разработчиков о мегазорде twitter.com/jsunderhood/st… BFF twitter.com/jsunderhood/st… twitter.com/jsunderhood/st…

Интересное мнение о контейнеризации, в частности о docker. Попробую простыми словами объяснить что это такое, и в чем здесь ошибка. twitter.com/kalashnikovism…

Вечер четверга, а значит пора обсудить что-нибудь эдакое. Как у вас в компании устроен процесс пересмотра ЗП? регулярные встречи для пересмотра как договорюсь, так поднимут не поднимают оставлю вариант в комментах
Soft: Онбординг twitter.com/jsunderhood/st… Больные люди в офисе twitter.com/jsunderhood/st… Токсичность twitter.com/jsunderhood/st… Пересмотр оклада twitter.com/jsunderhood/st…

Итак, кончается мой дозор, напоследок решил сделать тред своих эмоций от командировки в США.
США: Парки twitter.com/jsunderhood/st… Пляжи, океан twitter.com/jsunderhood/st… Мои эмоции от посещения США twitter.com/jsunderhood/st…

Неделя выдалась активненькой, поговорили про кучу вещей, обсудили кучу вопросов. Я стал немного умнее :) Надеюсь вам тоже понравилось. Подписывайтесь на меня - @lionskape

🔥Тред (Владимир Ульянов)

Вторник


Всех с Новым годом 🎉🎉🎉 Спасибо вам, что были с нами в этом году 🙏 Вернёмся 13.01⏱

Понедельник


Всем привет и с наступившими праздниками!!!)) Меня зовут Александр Руденко, и я являюсь Community Lead'ом в глобальной программе Developer Circles from Facebook, и также, как и вы, люблю заниматься разработкой Web-проектов на JS.)))

Ребят, можно у вас узнать: насколько каждый из вас знаком с Facebook не как пользователь соц.сети, а как инженер, использующий технологическую платформу компании? Что вам известно об исследованиях в компании? Какие глобальные программы Facebook вы знаете?)