vslinko

26 сентября 2016, Moscow, Russia

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

Привет! На этой неделе с вами я, @vslinko. Давайте знакомиться.

11:45

Моя история началась 13 лет назад. Мне показалось скучным в очередной раз переустанавливать винду на своем домашнем компьютере.

11:46

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

11:47

Около полугода я пытался настроить интернет от моего провайдера, который работал через PPTP. В итоге я познал скрипты на bash.

11:48

Я выложил этот скрипт на локальный форум, где собрал много разного фидбека. Это был мой первый опыт вклада в Open Source :-)

11:49

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

11:50

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

11:52

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

11:53

Сейчас я руковожу группой front-end разработки в компании ЦИАН, где передо мной стоят несколько больших задач.

11:54

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

11:57

Три моих доклада были про две технологии от компании Facebook (нет, не React), с которых я и начну неделю.

12:01

На презентации GraphQL я подумал: "я же пытаюсь сделать тоже самое". Единый endpoint, который одним ответом отдает только нужные данные.

12:16

Вокруг этого же можно сделать декларативный API доступа к данным, который не будет тормозить, как, например, REST. И тут они показали Relay.

12:27

Все это выглядит очень красиво, рекомендую посмотреть youtube.com/watch?v=UBGzsb… и попробовать graphql-swapi.parseapp.com

12:29

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

12:32

После появились проекты, для которых G&R хорошо подходили: куча сущностей, переписать с нуля, гарантировать простоту поддержки долгий срок.

12:43

Как и любые технологии, решая одни проблемы они создают новые: высокий порог входа, много boilerplate, различные ограничения (нет подписок).

12:55
@jsunderhood это выглядит ужасно, оборачивать каждую ручку в резолвер. Нужен автоматический билд типов из свегер схемы

GraphQL не заставляет тебя оборачивать все руками. Можно использовать генераторы. Проблема в том, что оно все еще в… twitter.com/i/web/status/7…

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

13:02

Есть легковесная альтернатива для Relay под названием Apollo. dev-home.apollodata.com

13:07

Жертвуя некоторыми оптимизациями мы получаем библиотеку с простым API.
Настораживает только то, что Apollo разрабатывает команда Meteor.

13:13
@jsunderhood кстати я не видел еще даже сырых генераторов, нету ссылочек?

Почти всегда кто-то создает awesome листы
github.com/chentsulin/awe… github.com/expede/awesome…

@jsunderhood кстати я не видел еще даже сырых генераторов, нету ссылочек?

13:15

Уже начала появляться инфраструктура вокруг.
Сначала появился GraphQL as a Service reindex.io

13:22

Недавно Apollo начали рекламировать инструменты для аналитики: популярность полей, время ответа запроса/поля apollostack.com/optics

13:25

Github открыл свой API через GraphQL developer.github.com/early-access/g…

13:27

Скоро будет первая конференция по GraphQL graphqlsummit.com

13:27
@raxpost Там намного меньше чем Рилей. Плюс скоро будет Рилей 2, который всех победит. @jsunderhood

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

@raxpost Там намного меньше чем Рилей. Плюс скоро будет Рилей 2, который всех победит. @jsunderhood

13:30
@jsunderhood Ты едешь?

Нет, я не поеду.
Должен признаться. Последние полгода я не использую ни GraphQL ни Relay. Для текущего проекта они… twitter.com/i/web/status/7…

@jsunderhood Ты едешь?

13:33
@jsunderhood Ну и делать БааС за два месяца до релиза технологии тоже было оптимистично) Не зря нас Ник Шрок назвал смелыми.

Early adopters такие early adopters, что делают стартапы на технологиях до их публичного релиза :-)

@jsunderhood Ну и делать БааС за два месяца до релиза технологии тоже было оптимистично) Не зря нас Ник Шрок назвал смелыми.

13:35

Кстати, ближайшие 3 дня будет 54я встреча комитета TC39.
@chicoxyzzy обещал постить интересности
github.com/tc39/agendas/b…

13:38

Не будет лишним разбавить хайповый тред докладом @listochkin о том, как не гнаться за хайпом youtube.com/watch?v=xPFRUM…

13:42
@jsunderhood не совсем понял чем это принципиально лучше odata?

OData, JSON API, GraphQL решают одну проблему. В GraphQL есть валидация типов, можно передавать аргументы на любой… twitter.com/i/web/status/7…

@jsunderhood не совсем понял чем это принципиально лучше odata?

14:02
@jsunderhood какого рода тормоза из-за REST сервисов?

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

@jsunderhood какого рода тормоза из-за REST сервисов?

14:03

Закончился рабочий день. Самое время продолжить разговор о GraphQL/Relay/Apollo.

19:28

Пожалуй самые популярные вопросы по этой теме — кому и нафига это нужно? Поделюсь ссылками на видео, так будет эффективнее.

19:28

Вот это видео может помочь вам понять, что делает GraphQL youtube.com/watch?v=Wq02BN…

19:29

А это видео может помочь вам понять, что делает Relay youtube.com/watch?v=oPSuva…

19:30

Про Apollo я нашел только такое видео youtube.com/watch?v=u1E0Cb…

19:30
. @freiksenet_ru @jsunderhood ну пусть держит. но зачем заставлять писать бессмысленный код? Очевидно же что нужен… twitter.com/i/web/status/7…

На самом деле хорошее замечание. Уверен, что рано или поздно и до этого дойдем.

. @freiksenet_ru @jsunderhood ну пусть держит. но зачем заставлять писать бессмысленный код? Очевидно же что нужен… twitter.com/i/web/status/7…

19:35

Например Glimmer 2 движется в сторону увеличения знания о шаблоне. О нем мы поговорим в одном из следующих дней.

19:36

Немного по планах на следующие дни: Typescript/Flow, React/Angular2/Glimmer2, SSR, моя работа в ЦИАН, UX, саморазвитие и планирование

19:42
@jsunderhood Да нет же. Откуда релею знать откуда именно в графе ты берёшь проп? @YodaPunk

Сопоставив корневой компонент с некоторой нодой в графе данных (например через роутинг), то можно проследить путь д… twitter.com/i/web/status/7…

@jsunderhood Да нет же. Откуда релею знать откуда именно в графе ты берёшь проп? @YodaPunk

19:50
@jsunderhood Это все не разрешимо в любой более сложной ситуации. @YodaPunk

Конечно это не будет работать в определенных случаях (например когда нужна постобработка), но в остальных случаях в… twitter.com/i/web/status/7…

@jsunderhood Это все не разрешимо в любой более сложной ситуации. @YodaPunk

19:55

Забыл упомянуть об отличной алтернативе от Netflix — Falcor. Жаль только, что о нем перестало быть слышно youtube.com/watch?v=z8UgDZ…

20:10

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

Всем привет! Сегодня я хочу высказать свое мнение о таких языках, как TypeScript и Flow. youtube.com/watch?v=9PTa9-…

9:48

Я специально хочу сделать акцент на том, что Flow это такой же отдельный язык программирования, как и TypeScript.

9:50

Цель существования данных языков — добавление в динамически типизированный JavaScript немного статической типизации.

9:52

Я выделяю две задачи, которые решает статическая типизация — валидация корректности на уровне типов и увеличение дисциплины кодирования.

9:55

С точки зрения валидации корректности Flow, объективно, сильнее. Примеры можно посмотреть у @vkurchatkin github.com/vkurchatkin/ty…

9:56

Не смотря на это, я выбираю TypeScript по трем причинам: строгость, легкость и тайпинги.

9:58

Строгость. Во Flow можно получить данные о покрытии кода типами. В TypeScript можно обязать писать типы и запретить использовать тип any.

10:00

Легкость. TypeScript чуть ближе к другим, уже популярным, языкам; у него лучше документация, и он написан не на OCaml.

10:10

Тайпинги. В TypeScript есть развитая инфраструктура описания типов для популярных пакетов из npm. Не нужно тратить свое драгоценное время.

10:11

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

11:07

Flow или TypeScript? Команда, которая имеет большой опыт работы с типами, зависимость от babel, знание OCaml — Flow. Иначе — TypeScript.

11:19
@jsunderhood а чем плох OCaml? Парсер и компилятор на нем быстрее же работают. Из очевидного - не работает на windows, какие ещё минусы?

Минус один — то должен знать OCaml, если хочешь контрибьютить.

@jsunderhood а чем плох OCaml? Парсер и компилятор на нем быстрее же работают. Из очевидного - не работает на windows, какие ещё минусы?

11:19
@jsunderhood это, действительно, бесспорное преимущество. Есть что-то похожее для flow?

Недавно появилась коллекция тайпингов github.com/flowtype/flow-…

@jsunderhood это, действительно, бесспорное преимущество. Есть что-то похожее для flow?

11:21
@jsunderhood Кстати лучше когда типы идут в комплекте с npm пакетом, а не отдельно. Тогда они более корректные изначально и всегда свежие.

Пожалуйста, начните писать типы в своих публичных библиотеках.

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

11:21
@jsunderhood могут ли тесты дать схожие гарантии, но сохранить возможность использовать преимущества динамической типизации?

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

@jsunderhood могут ли тесты дать схожие гарантии, но сохранить возможность использовать преимущества динамической типизации?

11:24

Важно! Статическая типизация не заменяет тестирование и наоборот. Тесты для бизнес-логики, типы для согласованности интерфейсов.

11:25
@jsunderhood Как смотришь на Dart?

Не верю в то, что он выкарабкается. На бекенде есть конкурент от самого Google. На фронтенде Dart не нужен без нати… twitter.com/i/web/status/7…

@jsunderhood Как смотришь на Dart?

11:29
@jsunderhood Ну для использования Flow можно и не знать OCaml 😉

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

@jsunderhood Ну для использования Flow можно и не знать OCaml 😉

11:34
@jsunderhood и конечно же доступность на Windows

Да, говорят на Windows есть проблемы с Flow (и не только). Мы это решаем MacBook-ами.

@jsunderhood и конечно же доступность на Windows

11:40
@jsunderhood у rimraf проблемы с виндой? Не слышал.

У видны проблема в том, что приходится использовать rimraf.

@jsunderhood у rimraf проблемы с виндой? Не слышал.

12:03
.@jsunderhood можно добавить, что в Flow гораздо сильнее type inference и поэтому требуется гораздо меньше аннотаций
12:17
@jsunderhood, если бы они ещё и актуальными были

Да. Используя сторонние тайпинги надо понимать, что есть временной между релизом и обновлением тайпингов. Мне кажет… twitter.com/i/web/status/7…

@jsunderhood, если бы они ещё и актуальными были

12:43

В любом случае сделать PR с обновлением зачастую проще, чем написать тайпинги с нуля.

12:44
Порог входа в js-разработку в 2016 году twitter.com/jsunderhood/st…

Это не связанно с JavaScript. У многих не-Microsoft технологий есть проблемы с запуском на винде.

Порог входа в js-разработку в 2016 году twitter.com/jsunderhood/st…

12:51
@jsunderhood Flow изначально не поддерживал Windows, но они добавили поддержку месяц назад
13:36

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

“RegExp Unicode Property Escapes” перешли на stage 2. github.com/tc39/proposals…

7:03

Об этом был отличный доклад на @frontend_union. Очень советую посмотреть после того, как его опубликуют.

7:05
`System.global` was renamed to `global` and is on it's way to Stage 4!

Ссылка есть?

`System.global` was renamed to `global` and is on it's way to Stage 4!

7:06

Напоминаю, что сейчас идет встреча комитета TC39, который занимается развитием ECMAScript. github.com/tc39/agendas/b…

7:10

Всем привет! Не смог, к сожалению, сегодня уделить ни минуты рабочего времени вам. Сейчас исправим.

15:50

Сегодня я хочу поговорить о React, Angular 2 и Glimmer 2. Даже не о них, а о подходах к работе с мутациями DOM.

15:50

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

15:57

Императивный подход эффективен, но сложность поддержки алгоритма растет нелинейно по мере роста бизнес логики.

16:01

Декларативный подход гораздо удобнее, но в наивной имплементации он совсем не эффективный.

16:03

Это было одной из selling point React. Вы описываете компоненты декларативно, React генерирует VirtualDOM и супер эффективно его применяет.

16:06

На самом деле проблемы все еще остаются. Сравнение двух деревьев очень затратная операция.

16:12

Одно из решений — shouldComponentUpdate. Костыль для исключения некоторых веток дерева из сравнения.

16:17

Этот костыль можно свести к унифицированной функции сравнения, используя immutable data, например ImmutableJS.

16:19

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

16:26

Второй рецепт — инициировать изменение как можно ниже в дереве компонент, но на это должна быть заточена архитектура приложения.

16:30

Почему костыли? Смешивание бизнес логики и хуков для оптимизации в одном юните ухудшает поддерживаемость.

16:30

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

16:31

К сожалению, я не успел посмотреть на то, как эта проблема решается в Angular 2, удалось найти только статью blog.thoughtram.io/angular/2016/0…

16:33

Судя по этой статье, все очень похоже на React. Интересно как в Angular 2 применяются обновления в рамках одного компонента.

16:33
@jsunderhood Как-то мутно. Ты описываешь случай, когда состояние раздается по дереву компонентов из рутового компонента?

Не только. Если у тебя есть массив объектов, то при изменении значения объекта меняется хеш у массива.… twitter.com/i/web/status/7…

@jsunderhood Как-то мутно. Ты описываешь случай, когда состояние раздается по дереву компонентов из рутового компонента?

16:41

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

16:43

Про обновление компонент. Даже если обновляется один компонент, React должен получить новое дерево, сравнить со старым и обновить DOM.

16:44

Кажется, что оптимизировать этот момент можно сопоставив изменяемое значение с конкретной операцией над DOM.

16:46

Достичь этого можно глубже понимая свои шаблоны. Мы знаем, что у нас есть переменная "name" и что она выводится как текст у DOM ноды.

16:48

Имея это знание, можно составить список необходимых операций над DOM без сравнения двух деревьев.

16:49

Одни из тех, кто копает в эту сторону, это команда Ember в рамках проекта Glimmer 2. github.com/tildeio/glimmer

16:50

Обязательно посмотрите это видео про Glimmer 2! youtube.com/watch?v=vL8sCi…

16:51

Попробую кратко. Шаблон компилируется в промежуточное представление, "wire-format", который разбит на блоки (root, if, each, etc).

16:57

Каждый из блоков состоит из инструкций (открыт тег, задан аттрибут, закрыт тег, etc). Каждый из блоков знает о используемых переменных.

16:57

Из этого представления генерируются две подпрограммы. Первая для первоначальной отрисовки. Вторая для эффективного применения обновлений.

16:58

Подпрограммы представляют из себя дерево операций (опкодов), каждая операция привязана к части DOM дерева и к части дерева данных.

16:58

Дальше запускается виртуальная машина, которая эти опкоды выполняет. Переменная изменилась — меняем текст; нет — завершаем выполнение.

16:59
@jsunderhood чтобы это работало в реакте нужно из jsx делать ast и его анализировать на влияние изменений стейта?

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

@jsunderhood чтобы это работало в реакте нужно из jsx делать ast и его анализировать на влияние изменений стейта?

17:09

Есть интересный проект MobX.
Следим за изменением только того, что используются. Ре-рендерим только тех, кто подписан на изменения.

17:14

Ссылка не влезла mobxjs.github.io/mobx/

17:15

Он решает проблемы shouldComponentUpdate и ImmutableJS, которые я озвучил ранее, но не решает проблему обновления одного компонента.

17:26

Итересный экскурс в историю React до публичного релиза. facebook.github.io/react/blog/201…

19:51

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

@jsunderhood как и ванговал. стейдж 3
github.com/tc39/proposals…
6:25
@andreypopp @jsunderhood github.com/chicoxyzzy/mos…

Небольшой спор о нужности спеки обзерваблов и самих обзерваблов. А как вы считаете, нужны ли обзерваблы?

@andreypopp @jsunderhood github.com/chicoxyzzy/mos…

8:09
@jsunderhood нужны, но очень ограничено, потому что явная асинхронность почти никогда не нужна, а когда нужна, от нее надо быстро избавиться
8:23
@jsunderhood если есть асинхронные источники данных, которые выдают несколько значений - обзерваблы делают жизнь сильно проще.
8:23
@jsunderhood Мне не нравятся Observable как абстракция. Мне кажется они усложняют код.
8:24
@jsunderhood поэтому я буду рад, если observables останутся в userland. Загружать все остальное Symbol.observable тем более смысла мало.
8:27
@jsunderhood wsd.events/2015/05/22/pre… , немного тут касаюсь habrahabr.ru/post/210558/ ну и github.com/arestov/seesu

Вот, человек уже делал умный разбор шаблонов и шаблонизатор.

@jsunderhood wsd.events/2015/05/22/pre… , немного тут касаюсь habrahabr.ru/post/210558/ ну и github.com/arestov/seesu

8:31

И еще один все понял про шаблонизаторы. habrahabr.ru/company/oleg-b…

22:32

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

After good discussion we reached consensus to bring Rest/Spread Properties to Stage 3 at TC39! sebmarkbage.github.io/ecmascript-res…
7:09

Сегодня, к сожалению, не смогу уделить вам много времени. Накидывайте ссылки на интересные статьи, видео и темы, буду ретвитить.

10:12
@jsunderhood дебажим ноду и клиент параллельно через chrome devtools blog.hospodarets.com/nodejs-debuggi…
10:32
@jsunderhood чем отличается throttle от debounce jquery.page2page.ru/index.php5/Thr…

Всегда полезно вспомнить базу.

@jsunderhood чем отличается throttle от debounce jquery.page2page.ru/index.php5/Thr…

10:34
@jsunderhood а я бы хотел узнать причину, почему ты не можешь уделять время @jsunderhood

Не представляешь, приходится работать :-)

@jsunderhood а я бы хотел узнать причину, почему ты не можешь уделять время @jsunderhood

10:34
@jsunderhood стоило тогда вызываться вести аккаунт? я ждал твою неделю

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

@jsunderhood стоило тогда вызываться вести аккаунт? я ждал твою неделю

10:41
@jsunderhood какие кто использует соглашения об именовании файлов? Не могу коллегу склонить к Кебабу. Кэмел - это по ООПешному, говорит.

Мне нравится подход module_name.js больше чем functionName.js или ClassName.js, так как в одном файле может быть не… twitter.com/i/web/status/7…

@jsunderhood какие кто использует соглашения об именовании файлов? Не могу коллегу склонить к Кебабу. Кэмел - это по ООПешному, говорит.

15:57

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

Всем хороших выходных! Сегодня я хочу рассказать о том, чем я занимаюсь в компании ЦИАН.

17:15

Для тех, кто не знает, ЦИАН — это российский классифайд про недвижимость, который отмелил в этом году свое 15-летие.

17:18

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

17:21

В том числе это касается и клиентской части. И одна из моих больших задач — привести frontend в порядок.

17:24

Для того, чтобы что-то сделать лучше, необходимо понять что на самом деле происходит.

17:26

Один из отличных источников знаний о том, что чувствуют пользователи — Navigation Timing API developer.mozilla.org/ru/docs/Web/AP… pic.twitter.com/mKh5fmzVyT

17:28

Мы собираем метрики самых популярных страниц Navigation Timing API, отправляем через бекенд их в StatsD и выводим графики в Grafana.

17:31

На основе этих данных можно разобрать из чего состоит время загрузки страницы. pic.twitter.com/j7z7bAOPqJ

17:33

И выявить разные аномалии. Например, некоторые страницы по ночам начинают работать медленнее, а некоторые, наоборот, быстрее. 😯

17:35

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

17:47

Вот так должен сбрасываться кеш при правильном подходе. 💪 pic.twitter.com/x7fkBMflCm

17:50

А правильный подход такой. Про Cache-Control: immutable можно почитать тут: bitsup.blogspot.ru/2016/05/cache-… pic.twitter.com/X0reZaVgUi

17:53

Еще с клиентов очень полезно собирать необработанные исключения. Для этого мы используем Sentry sentry.io

18:00

Вот классический пример из жизни проекта. pic.twitter.com/1xJTWAXldN

18:06

Проанализировав наши данные, архитектуру и требования мы определили список горящих проблем, сформировали цели (которых хватит на пару лет)…

18:16

…и выбрали основу для нашей архитектуры. В основе лежат три технологии: React, как инструмент для универсального рендеринга (нам важно SEO)…

18:19

…Node.js, который обеспечивает серверный рендеринг и добавляет асинхронности в систему; TypeScript для лучшего контроля за качеством кода.

18:20

Одна наших из целей — сделать общую библиотеку компонент. На эту тему есть великолепный доклад от @mr_mig_by youtube.com/watch?v=gfO2i9…

18:24

Мы движемся в этом же направлении. За основу взяли github.com/sapegin/react-… от @iamsapegin и заточили под TypeScript. pic.twitter.com/jKSww3YkXL

18:33

Кроме этого сейчас я прорабатываю концепцию "микросервисов" на фронте.
Разделяй и властвуй.

18:46

В сторону микросервисов на фронте активно копают @ZalandoTech с проектом mosaic9.org
По ссылке много крутых материалов по теме.

18:48
@jsunderhood и что эти проблемы если не решить все рухнуть может?

Именно так. Долгое время фронтом никто не занимался. Так по чуть-чуть накапливается критическая масса проблем, кото… twitter.com/i/web/status/7…

@jsunderhood и что эти проблемы если не решить все рухнуть может?

18:58
@jsunderhood т.е. до этого система была синхронная) лол

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

@jsunderhood т.е. до этого система была синхронная) лол

19:00
Recent @flowtype release adds $ObjMap type constructor—makes it possible to express typesafe deserialisation w/ val… twitter.com/i/web/status/7…

Еще один плюс в копилку Flow.

Recent @flowtype release adds $ObjMap type constructor—makes it possible to express typesafe deserialisation w/ val… twitter.com/i/web/status/7…

19:14

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

Долгое время я не понимал, чем занимаются UX спецы. Рекомендую youtube.com/watch?v=q4d376…
UX, MVP, Customer Journey, User Stories, Wireframing.

15:53

Внезапно, UX перешел для меня из разряда магии в набор простых техник, помогающих проанализировать то, что я делаю, как фронтендер.

15:56

Как вы, фронтендеры, получаете новые знания? У меня есть два источника: доклады/подкасты/твиттер и рабочие эксперименты.

16:04

Признаюсь. Книги (техническую литературу), я практически не читаю. Слишком крупный формат. Предпочитаю статьи и лекции в интернете. А вы?

16:08
@jsunderhood чьи подкасты посоветуешь?

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

@jsunderhood чьи подкасты посоветуешь?

16:13

Основные новости про фронтенд вне JavaScript я узнаю из подкаста Веб-стандартов. soundcloud.com/web-standards

16:14

Отличный подкаст про программирование от @filipovskii@podcastcode codepodcast.com

16:19

Подкаст про JavaScript (давно не выходил) @RadioJSPodcast radiojs.ru от @filipovskii @bashmish и @KSDaemon

16:22

Мой любимый подкаст про технологии (не фронтенд) devzen.ru

16:25

Подкаст в стиле интервью с интересными людьми @SDCast_podcast sdcast.ksdaemon.ru от @KSDaemon

16:27
@jsunderhood @filipovskii @podcastcode а как же soundcloud.com/frontflipjs ?

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

@jsunderhood @filipovskii @podcastcode а как же soundcloud.com/frontflipjs ?

16:30
@jsunderhood книги лучше

Какие книги вы посоветуете фронтендерам?

@jsunderhood книги лучше

16:31
@jsunderhood, вот эти две в первую очередь читать: ozon.ru/context/detail… и ozon.ru/context/detail…
17:06

Сильно оффтопная тема за жизнь для выходного дня.

17:35

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

17:35

Дисклеймер. Все что будет дальше не претендует на уникальность и на то, что поможет каждому. Это только мой опыт, которым я хочу поделиться.

17:37

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

17:39

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

17:40

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

17:42

Эти упражнения позволяют вытащить наружу свои _настоящие_ стремления и приоритеты.

17:43

Так как все со временем меняется, в том числе и мировоззрение, я повторяю это упражнение раз в 6-12 месяцев.

17:44

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

17:47

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

17:49

На самом деле это основы управления компаниями, примененные к личной жизни. Это позволило мне, заядлому пофигисту,… twitter.com/i/web/status/7…

17:55

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

17:57

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

18:18
@jsunderhood 7 habits of highly effective people читал?

Нет, ничего не читал, кроме случайных статей в интернете. Доходил сам.

@jsunderhood 7 habits of highly effective people читал?

18:19

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

18:19

Это позволило привить привычку записывать мои траты по категориям. Через несколько месяцев я смог проанализировать ситуацию.

18:19

Осознав, куда уходят деньги, я ввел бюджетирование, плавно перераспределяя деньги по категориям.

18:21

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

18:22
@jsunderhood ynab юзал?

Я пробовал кучу инструментов, в том числе и ynab. Для меня работают только два: Excel/Numbers и ledger.

@jsunderhood ynab юзал?

18:24

Ledger — супер мощная консольная улилита для ведения бухгалтерии. Для гиков самое то! ledger-cli.org pic.twitter.com/ByELj8FDsg

18:30
@jsunderhood К сожалению организовать и следовать рутине очень тяжело :С

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

@jsunderhood К сожалению организовать и следовать рутине очень тяжело :С

18:59
@jsunderhood Вот я сейчас хочу вкатиться в андроид и не знаю как подступиться. Вот посоветовали курсы на udacity, пробовали видео курсы?

Видео курсы для меня не работают. Это слишком большой commitment.
Хотя, если задача — научиться большому и новому,… twitter.com/i/web/status/7…

@jsunderhood Вот я сейчас хочу вкатиться в андроид и не знаю как подступиться. Вот посоветовали курсы на udacity, пробовали видео курсы?

19:04

Еще я хочу немного поныть о том, какие люди приходят на собеседования. Многие из них технически прокаченные ребята, но мотивации…

19:31

Большинству важны только технологический стек и заработная плата. Такие люди легко могут исчезнуть в самый неподходящий момент.

19:32

Многие говорят от том, что им нужна сильная команда и им хочется развиваться. Это отлично, но это не самое главное для разработчика.

19:33

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

19:34

Это очень хорошие критерии, помимо технических навыков, для градации людей на junior, middle, senior.

19:34

Если вам важен результат вашей работы и вы понимаете зачем существует бизнес, то мы очень ждем вас у нас в команде. hh.ru/vacancy/179272…

19:37
@jsunderhood это же хорошо, что говорят правду. Если бы врали только ради прохождения интервью - было бы хуже. И люди обычно эгоистичны, да

Обычно врать на собеседованиях не очень получается — это достаточно быстро вскрывается.

@jsunderhood это же хорошо, что говорят правду. Если бы врали только ради прохождения интервью - было бы хуже. И люди обычно эгоистичны, да

19:43
@jsunderhood да, но это не обязательно. Если вы ищете CTO, то мне кажется это просто обязательный критерий. В ост. случаях - опционально.

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

@jsunderhood да, но это не обязательно. Если вы ищете CTO, то мне кажется это просто обязательный критерий. В ост. случаях - опционально.

19:52
@kalashnikovisme @jsunderhood согласен, в идеале, это должна быть двусторонняя связь: решаешь проблемы и сам развиваешься.

Абсолютно. Команда тоже должна помогать сотруднику развиваться и расти.

@kalashnikovisme @jsunderhood согласен, в идеале, это должна быть двусторонняя связь: решаешь проблемы и сам развиваешься.

19:54
@jsunderhood it depends. Иногда встречаются люди - мастера прохождения собеседований, они просто очаровывают. А потом приходится увольнять..

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

@jsunderhood it depends. Иногда встречаются люди - мастера прохождения собеседований, они просто очаровывают. А потом приходится увольнять..

19:57
@roman01la @jsunderhood если таковых нету?

Если нет старших разработчиков, можно самому таким стать. Хочешь что-то узнать по настоящему, объясни это другому.

@roman01la @jsunderhood если таковых нету?

19:58
@roman01la @jsunderhood и учиться нужно всем, даже опытным.
19:59
@jsunderhood а если наоборот?

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

@jsunderhood а если наоборот?

20:05
@jsunderhood А какая по твоему должна быть мотивация у разраба, красивые слова про задачи бизнеса в карман не положишь.

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

@jsunderhood А какая по твоему должна быть мотивация у разраба, красивые слова про задачи бизнеса в карман не положишь.

20:13

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

20:13
@jsunderhood Фокус на результат это не мотивация ;-) я о том что именно должно поддерживать этот фокус. Деньги, удовлетворение интереса и тп

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

@jsunderhood Фокус на результат это не мотивация ;-) я о том что именно должно поддерживать этот фокус. Деньги, удовлетворение интереса и тп

20:54
@icelabaratory @jsunderhood у одного рабочего спросили - что ты делаешь? - "кладу кирпичи". А другой же ответил - "строю собор".
20:55
@jsunderhood но знаешь точно, что через какое-то время пропадет желание заниматься чем-то из того, чем занимаешься, но не знаешь что это?

Если ты _правда_ не можешь определить что тебе важно, то и не надо сильно переживать. Лучше от этого точно не стане… twitter.com/i/web/status/7…

@jsunderhood но знаешь точно, что через какое-то время пропадет желание заниматься чем-то из того, чем занимаешься, но не знаешь что это?

20:59

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

21:00
@jsunderhood Определитесь чего хотите: решить проблемы бизнеса-сделать быстро, или решить проблему максимально полезным способом - поддержка

Решить проблемы бизнеса != сделать как можно быстрее.

@jsunderhood Определитесь чего хотите: решить проблемы бизнеса-сделать быстро, или решить проблему максимально полезным способом - поддержка

21:04
@jsunderhood ну в зарплате не всегда, есть печальный факт, что рост зп разработчику обеспечивает в основном смена работы

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

@jsunderhood ну в зарплате не всегда, есть печальный факт, что рост зп разработчику обеспечивает в основном смена работы

21:12
@nekrtemplar @icelabaratory @jsunderhood балансировать можно, но это ведет к потере фокуса, по мне - обсудить деньги в начале и забыть

Забывать нельзя. В компании должен быть план развития сотрудников. Грейды, которые всем понятны и которые привязаны… twitter.com/i/web/status/7…

@nekrtemplar @icelabaratory @jsunderhood балансировать можно, но это ведет к потере фокуса, по мне - обсудить деньги в начале и забыть

21:16
@jsunderhood бизнес иногда не знает что ему нужно

Бывают разные бизнесы. Некоторым, наоборот, нужны только те, кто хорошо делает только свою часть работы.

@jsunderhood бизнес иногда не знает что ему нужно

21:19
Привет! На этой неделе с вами я, @vslinko. Давайте знакомиться.

Перед закрытием недели небольшой recap.

Привет! На этой неделе с вами я, @vslinko. Давайте знакомиться.

21:39
Три моих доклада были про две технологии от компании Facebook (нет, не React), с которых я и начну неделю.

В понедельник мы поговорили за GraphQL, Relay и Apollo.

Три моих доклада были про две технологии от компании Facebook (нет, не React), с которых я и начну неделю.

21:40
Всем привет! Сегодня я хочу высказать свое мнение о таких языках, как TypeScript и Flow. youtube.com/watch?v=9PTa9-…

Затронули TypeScript и Flow.

Всем привет! Сегодня я хочу высказать свое мнение о таких языках, как TypeScript и Flow. youtube.com/watch?v=9PTa9-…

21:41
Сегодня я хочу поговорить о React, Angular 2 и Glimmer 2. Даже не о них, а о подходах к работе с мутациями DOM.

Немного о том, как работать с DOM.

Сегодня я хочу поговорить о React, Angular 2 и Glimmer 2. Даже не о них, а о подходах к работе с мутациями DOM.

21:43
Всем хороших выходных! Сегодня я хочу рассказать о том, чем я занимаюсь в компании ЦИАН.

Различные интересности из рабочих будней. Надеюсь у кого-то были инсайты.

Всем хороших выходных! Сегодня я хочу рассказать о том, чем я занимаюсь в компании ЦИАН.

21:48
Сильно оффтопная тема за жизнь для выходного дня.

Разговоры за жизнь.

Сильно оффтопная тема за жизнь для выходного дня.

21:51
Еще я хочу немного поныть о том, какие люди приходят на собеседования. Многие из них технически прокаченные ребята, но мотивации…

Споры про мотивации сотрудников.

Еще я хочу немного поныть о том, какие люди приходят на собеседования. Многие из них технически прокаченные ребята, но мотивации…

21:52
Если вам важен результат вашей работы и вы понимаете зачем существует бизнес, то мы очень ждем вас у нас в команде. hh.ru/vacancy/179272…

На этом все. Эту неделю с вами был @vslinko
До скорых встреч на конференциях и BeerJS Moscow.… twitter.com/i/web/status/7…

Если вам важен результат вашей работы и вы понимаете зачем существует бизнес, то мы очень ждем вас у нас в команде. hh.ru/vacancy/179272…

21:57

www.youtube.com

github.com

other