ovrweb

7 октября 2019, Холодный Санкт-Петербург 🇷🇺

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

Доброго времени суток, с вами @ovrweb!

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

7:29

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

Будем рас… twitter.com/i/web/status/1…

8:35
@jsunderhood @gitlab Ещё можно использовать тэг в качестве версии: билд триггерится тэгом, тэг проставляется в pack… twitter.com/i/web/status/1…

Мне больше нравиться "стандартный" flow:

  • Ветка в master (можно сделать релиз кнопочкой)
  • CI делает push с измен… twitter.com/i/web/status/1…

@jsunderhood @gitlab Ещё можно использовать тэг в качестве версии: билд триггерится тэгом, тэг проставляется в pack… twitter.com/i/web/status/1…

9:29
@jsunderhood @ovrweb Даёшь неделю PHP в @jsunderhood!

До PHP дойдем в пятницу, что бы не было желание дик пики запостись.

@jsunderhood @ovrweb Даёшь неделю PHP в @jsunderhood!

9:58

  • Используйте YAML anchors
  • 10:02

  • Includes
  • 10:19

    Но не забывайте, что шаблоны нужно как-то версионировать.

    К примеру, создайте ветку 1.x, куда положите устоявшиеся… twitter.com/i/web/status/1…

    10:22
    @jsunderhood Блин блин. А может кто-то хочет поменторить классического "войтивайти" (фронт, js, react, vue)? Курсы… twitter.com/i/web/status/1…

    Есть кто?)

    @jsunderhood Блин блин. А может кто-то хочет поменторить классического "войтивайти" (фронт, js, react, vue)? Курсы… twitter.com/i/web/status/1…

    11:53

  • Не бойтесь готовить свои docker images для тестирования/разработки.
  • 12:04

    Это даст вам:

    12:09

    Желательно image делать двух типов: dev и latest (production).

    Пример, делаем 2 image:

    FROM node:12.5.1 -> dckr/n… twitter.com/i/web/status/1…

    12:33

    Для таких вещей, советую делать отдельную группу в gitlab внутри организации, к примеру dckr или же docker.

    Внутри… twitter.com/i/web/status/1…

    12:35
    Я тоже много раз думал бросить @PostCSS из-за критиканства (неконструктивной критики, у которой не понятна цель).… twitter.com/i/web/status/1…

    Самое страшное – это начинать что-то делать зная, что придут и напишут нелестные отзывы. Делаю сейчас свой первый п… twitter.com/i/web/status/1…

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

    13:29

  • Все что можно автоматизировать, автоматизируй.
  • 14:14

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

    14:26
    Лет в 27 я решил научиться кататься на скейте. Не то чтобы я научился, но я понял 3 вещи: 1. Если попросить помочь,… twitter.com/i/web/status/1…

    Самое страшное – это начинать что-то делать зная, что придут и напишут нелестные отзывы. Делаю сейчас свой первый п… twitter.com/i/web/status/1…

    14:28

  • Экономьте время ваших runners.
  • 17:28

    7.2 Не делайте "миллион" pipelines внутри одного stage. Возможно начальный запуск таких N pipelines будет стоить до… twitter.com/i/web/status/1…

    17:30

  • Используйте tmpfs на ваших gitlab-runners для ускорения (если понимаете):
  • 17:35
    Поговорили c @amel_true про @LongestJS, TC39 Panel, TCXX, вокшопы и лайтинг толки на @HolyJSconf.

    Девшахта-подкаст
    #97: LongestJS, TC39 Panel, воркшопы и лайтнинги на HolyJS
    medium.com/devschacht/dev…

    18:18
    @jsunderhood Ищу ментора во frontend, JavaScript, Vue, React. Хочу сделать первый комит в open source, но не знаю с… twitter.com/i/web/status/1…

    Есть менторы?)

    @jsunderhood Ищу ментора во frontend, JavaScript, Vue, React. Хочу сделать первый комит в open source, но не знаю с… twitter.com/i/web/status/1…

    18:59

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

  • Используйте менеджеры версия для систем на CI где нет docker:
  • 8:05

    Fastlane также ставим используя bundler

    bundle install
    bundle exec fastlane -v
    bundle exec fastlane ios beta

    Стар… twitter.com/i/web/status/1…

    8:10

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

    8:11

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

    8:15

  • Трюк с кешированием через прокидывание volumes внутри gitlab-runner с типом docker:
  • 9:11

    Далее меняем уже папку для кеширования

    RUN npm config set cache /cache/.npm

    Внимания! Данный техника не является… twitter.com/i/web/status/1…

    9:13
    Шестой выпуск! Поговорим про грядущий TypeScript 3.7, баг приводящий к деоптимизации внутри V8 на примере React и м… twitter.com/i/web/status/1…
    11:34

    Сегодня вечером обсудим: Почему я перестал доверять/верить микросервисам.

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

    13:03

    Начнем с плюсов и минусов:

    Когда говорят про микросервисы подразумевают:

    14:46

  • Переиспользуемость (написав один раз сервис нотификаций, используй в каждом проекте его)
  • Продуктовая составляющ… twitter.com/i/web/status/1…
  • 14:49

    Но даже эти плюсы не так однозначны, допустим про независимый деплой:

    Представьте что ваш проект состоит из 10 мик… twitter.com/i/web/status/1…

    14:53

    Про технологическую гетерогенность:

    Иногда это реально круто работает, но зачастую у вас в штате команда людей с о… twitter.com/i/web/status/1…

    14:55

    Про переиспользуемость:

    Каждый проект имеет свою инфраструктуру, иногда инфраструктуры между проектами могут не со… twitter.com/i/web/status/1…

    14:56

    Так как микросервисная архитектура это распределенная система, то мы получаем минусы распределенных систем.

    15:01

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

    15:06

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

    15:13

    И сам сервис может упасть, а другой сервис может выполнить действий и не успеть ответить за timeout. Все эти вопрос… twitter.com/i/web/status/1…

    15:14

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

    15:18

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

    15:20

  • На уровне разработки
  • 15:24

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

    15:27

  • На уровне инфраструктуры:
  • 15:29

    Нужно уметь в отказоустойчивость

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

    15:31

    Чтобы понимать, что происходит, нужно уметь в distributed tracing

    opentracing.io/docs/overview/…

    А теперь представьте, ч… twitter.com/i/web/status/1…

    15:34

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

    15:36

  • Нужно уметь в организацию, если разработчики между сервисами не умеют общаться друг с другом. То вы получите реа… twitter.com/i/web/status/1…
  • 15:38

    Как итог, для себя я заметил корреляции:

    15:56
    @jsunderhood, привет. Скажи, какими аргументыми ты бы отстаивал частые релизы (если бы отстаивал)?
    16:33
    Good news, my talk in the program of #holyjs Moscow 🥳 Will talk about CSS definition syntax, what is it, how does i… twitter.com/i/web/status/1…
    18:07
    🚀 Top-level await makes it possible to use the `await` keyword outside of async functions in JavaScript modules!… twitter.com/i/web/status/1…
    20:50

    # Среда 21 твит

    Сегодня у нас про менеджмент (технический и не только), расскажу то от чего горит или какие ошибки я видел:

    8:58

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

    9:03

    Руководитель ходит и говорит всем:

    "У нас хорошая команда, мы такой проект подымим"

    Как итог, ЧСВ руководителя р… twitter.com/i/web/status/1…

    9:06

    Если вы руководитель, вытягиваете фидбэк как только можете:

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

    9:12

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

    9:15

  • Потерять мотивацию сотрудников и не умение мотивировать
  • 9:42

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

    Ес… twitter.com/i/web/status/1…

    9:48

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

    9:51

    Самое ужасное:

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

    9:54

    Руководитель должен помнить:

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

    9:57

  • Набирать ненужных людей или пытаться растить команду когда это не нужно:
  • 10:00

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

    СТО которы… twitter.com/i/web/status/1…

    10:03

    3.3 Быстро нарастить команду:

    Увеличили бюджет и побежали набирать людей в команду.

    Было 3 человека, стало 8, но… twitter.com/i/web/status/1…

    10:07

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

    10:11

  • Forward менеджмент
  • 10:31

  • Не делать BRD (Business Requirements Document)
  • 11:23

    Чтобы разобраться в задаче, необходимо узнать:

    11:25

    Об ожиданиях от результата:

    В каком виде клиент ожидает вашу работу, в какой срок, в каком объеме, на что это буде… twitter.com/i/web/status/1…

    11:25

  • Разное отношение к работникам
  • 11:34
    ✨Github tip ✨

    🔥Use `t` shortcut in any repo to fuzzy-find a file by name pic.twitter.com/h4l1Yqkmmp

    15:19
    @jsunderhood @jabher 2PC/3PC (а так же Granola/Calvin/ Percolator) - протоколы распределенных транзакций, Raft/Paxo… twitter.com/i/web/status/1…
    15:35

    # Четверг 21 твит

    Пришло время обсудить React-Native:

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

    7:57

    Плюсы.

    8:07

    Хорошее сообщество и ее участие в разработке и развитии RN:

    К примеру: AsyncStorage/NetInfo/Share раньше был в ядр… twitter.com/i/web/status/1…

    8:12

    Минусы:

    Bridge не является минусом, это какая-то мистика когда не хватает аргументов у людей в пользу Flutter (кто… twitter.com/i/web/status/1…

    8:16

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

    8:19

    Если не обновляться 3-10 релизов и попробовать обновиться, то проще будет проект рядом создать и перекопировать все… twitter.com/i/web/status/1…

    8:29
    @jsunderhood Бридж планирую убрать в 2020 youtu.be/52El0EUI6D0
    9:54

    Про подводные камни при разработке на RN, советую еще глянуть статью:

    medium.com/lowl/5-%D0%BF%…

    Хоть и статья 2017г… twitter.com/i/web/status/1…

    10:05

    Переходим к советам по быстрому старту на RN и куда смотреть:

    1. Начинайте ваш проект сразу с TypeScript:

    TypeScr… twitter.com/i/web/status/1…

    10:08

  • С первой же секунды вам нужна библиотека навигации:
  • 10:11

    В документации заострите ваше внимание особенно на:

    reactnavigation.org/docs/en/common…
    reactnavigation.org/docs/en/auth-f…
    reactnavigation.org/docs/en/typesc…

    10:13
    @jsunderhood а что на счёт reasonml? я всё чаще слышу что проекты на нём стартуют

    В живую и даже в слухах не слышал чтобы где-то реально был reason. Знаю что есть github.com/reason-react-n…. Есть кто… twitter.com/i/web/status/1…

    @jsunderhood а что на счёт reasonml? я всё чаще слышу что проекты на нём стартуют

    11:30

  • Будьте осторожны:
  • 11:39

  • Выберите любой понравившейся UIKit если только у вас нет желания сделать свой в процессе работы (допустим вы бол… twitter.com/i/web/status/1…
  • 11:42

  • Решите:
  • 12:08

    Из баз классно очень выглядит github.com/realm/realm-js

    Но у него есть 3 большие проблемы:

    12:12

  • У них один пакет для nodejs и react-native. Обычно команда не успевает за новым nodejs и нативный аддон к node м… twitter.com/i/web/status/1…
  • 12:13

  • Не юзабельно в debug режиме (когда код исполняется в браузере через RPC).
  • 12:16

    Это прям какой-то ад, а еще сетевой стэк под эмулятором в android дико медленный, что делает дебаг режим под androi… twitter.com/i/web/status/1…

    12:19
    Статус от фронтендера на стендапе сегодня:
    "У нас проблемы с UI – там нужно верстать" 😄😄😄

    Standup status:
    "We have… twitter.com/i/web/status/1…

    12:28
    Мы это у себя называем ПЕРДИ (product requirements document).

    Сначала Перди, а потом уже Делай дела 😎

    1. Не делать BRD (Business Requirements Document)

    Если не понять задачу, то будет так:

    Вы быстро взялись что-то д… twitter.com/i/web/status/1…

    20:36

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

  • Локализация для проекта
  • 9:32

  • Конфигурация per environment
  • 9:36

  • Для анимаций советую брать github.com/kmagiera/react…
  • 9:41

  • Для SVG есть github.com/react-native-c…
  • 9:43
    Большая проблема современных браузеров - не показывать нормальные ошибки в CSS.

    Если значение не проходит type che… twitter.com/i/web/status/1…

    10:06
    Since Preact X is finally out, the latest version of wouter ships with official support for v10.0 and it's no longe… twitter.com/i/web/status/1…
    11:07

  • Деплойте используя FastLane/CI
  • 11:37
    Хух, наконец-то реализовал идею с умными итераторами и простенькими монадами. Прошу любить и жаловать:… twitter.com/i/web/status/1…
    15:08
    Подготовка к @HolyJSconf идет полным ходом, а так как доклад будет хардкорным, изобретаю VM на JS которая будет раб… twitter.com/i/web/status/1…

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

    Доклад хоть и называетс… twitter.com/i/web/status/1…

    Подготовка к @HolyJSconf идет полным ходом, а так как доклад будет хардкорным, изобретаю VM на JS которая будет раб… twitter.com/i/web/status/1…

    15:14

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

    Пришёл на доклад по webgl от @subzey, а там контент сплошная мясорубка pic.twitter.com/qS2E4kiOYp
    15:20

  • Обязательно используйте средства для отслеживания ошибок/падений, крайне дико рекомендую взять Sentry.… twitter.com/i/web/status/1…
  • 19:45

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

    После 32 alpha релизов, webpack 5 сделал beta-0 🎉 и ожидает фидбэка бесстрашных frontend разработчиков… twitter.com/i/web/status/1…

    9:53

  • Уделите время изучение Flexbox.
  • 10:07

  • Уделите немного внимания структуре проекта, а то если приложение большое, может быть не удобно смотреть на N фа… twitter.com/i/web/status/1…
  • 10:14

  • Не забывайте про тесты:
  • 13:06

  • Используйте множество каналов для деплоя:
  • Для Play Market начинайте:

    1. В internal channel (разработчики и те… twitter.com/i/web/status/1…
    2. 13:06

    Будь готовы к apple review:

    13:09

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

    13:09

    Моя неделя подходит к концу, с вами был Дмитрий Пацура @ovrweb. Буду рад видеть на github.com/ovr или личн… twitter.com/i/web/status/1…

    13:19

    github.com

    other


    @kirjs