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…

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… twitter.com/raxpost/status…

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…

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

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

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

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

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…

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

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

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…

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

19:35

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

19:36

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

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

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

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

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

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, если хочешь контрибьютить. twitter.com/Golovim/status…

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

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

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

Пожалуйста, начните писать типы в своих публичных библиотеках. twitter.com/rpominov_rf/st…

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

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

11:24

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

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

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

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

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

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

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

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

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

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

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

12:43

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

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

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

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!

Ссылка есть? twitter.com/chicoxyzzy/sta…

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…

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 и его анализировать на влияние изменений стейта?

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

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…

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

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

Вот, человек уже делал умный разбор шаблонов и шаблонизатор. twitter.com/YodaPunk/statu…

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…

Всегда полезно вспомнить базу. twitter.com/xgrommx/status…

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

Не представляешь, приходится работать :-) twitter.com/i_told_ya/stat…

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

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

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

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

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…

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

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

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. twitter.com/andreypopp/sta…

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 чьи подкасты посоветуешь?

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

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 ?

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

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

Какие книги вы посоветуете фронтендерам? twitter.com/ermo4enkov/sta…

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 читал?

Нет, ничего не читал, кроме случайных статей в интернете. Доходил сам. twitter.com/mr_mig_by/stat…

18:19

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

18:19

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

18:19

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

18:21

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

18:22
@jsunderhood ynab юзал?

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

18:24

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

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

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

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

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

19:04

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

19:31

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

19:32

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

19:33

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

19:34

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

19:34

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20:13

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

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

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

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

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

20:59

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

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

Решить проблемы бизнеса != сделать как можно быстрее. twitter.com/alexondr/statu…

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

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

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

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

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

Бывают разные бизнесы. Некоторым, наоборот, нужны только те, кто хорошо делает только свою часть работы. twitter.com/Lazin/status/7…

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

Перед закрытием недели небольшой recap. twitter.com/jsunderhood/st…

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

В понедельник мы поговорили за GraphQL, Relay и Apollo. twitter.com/jsunderhood/st…

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

Затронули TypeScript и Flow. twitter.com/jsunderhood/st…

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

Немного о том, как работать с DOM. twitter.com/jsunderhood/st…

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

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

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

Разговоры за жизнь. twitter.com/jsunderhood/st…

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

Споры про мотивации сотрудников. twitter.com/jsunderhood/st…

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

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

21:57

www.youtube.com

github.com

other