Size: a a a

HolyJS, JavaScript-конференция

2020 May 19

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
На все вопросы по теме ближе к вечеру отвечу.
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
Alexey Fyodorov
не ври нам!
У меня есть круче, но их нельзя в эфире показывать
источник

AF

Alexey Fyodorov in HolyJS, JavaScript-конференция
Как в фильме "Американский пирог 3", я надеюсь?
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
В личку вечером отправлю 😉
источник

АК

Александра Калинина... in HolyJS, JavaScript-конференция
звучит многозначительно 🧐
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
John Smith
Да никакой особо проблемы, просто я хочу всегда видеть кэш аполло пока приложение не выпущено в продакшн
Да с девтулами там беда, но когда мне кеш надо посмотреть я использую стандартный браузерный console.log.

Пишу apolloClient в глобальную переменную, а потом в консоле просто смотрю что в переменной __APOLLO_CLIENT__.cache.data.data

Иногда даже удобнее чем со стандартными девтулами.
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
Vsevolod Brekelov
т.е. правильно, что Павел заказывал фичи в VSCode или делал плагины?
У Idea хорошие редакторы (много и долго юзал IntelJ, WebStorm, RubyMines). Я на них работал лет 5 тому назад и это было божественно. И когда 3-5 лет назад я переходил на новый JS стек у меня были проблемы с Flow, TypeScript, Eslint, prettier, babel, подсветкой, CI. Idea предлагала свои решения, но они не работали в CI. А мне нужно было окружение с туллингом такое, чтобы одинаково работало и на клиенте и в CI.

Раньше это была боль в Idea (слишком много плясок с отключение внутренних линтеров и настроек) и прикручиванием кк примеру eslint’a. Сейчас уже, как я слышал, нет таких проблем и Idea идет в ногу со временем. Но я уже “переболел” и перестроился спрева на Atom (светлая память) а потом на VSCode. И сейчас мне уже всего хватает, и обратно переезжать на Idea я не вижу смысла.

У VSCode достаточно большое кол-во плагинов, которые развиваются большим сообществом. И иногда можно найти интересные вещи, которые можно спокойно править и обсуждать через GitHub. Плюс т.к. среда выполнения в редакторе это JS, то множество вещей из фронтенд инструментов (например drawio) можно заставить работать в редакторе.

В общем сейчас мой выбор VSCode и мне его хватает, проблем никаких не вызывает.
источник

VB

Vsevolod Brekelov in HolyJS, JavaScript-конференция
Pavel @nodkz
У Idea хорошие редакторы (много и долго юзал IntelJ, WebStorm, RubyMines). Я на них работал лет 5 тому назад и это было божественно. И когда 3-5 лет назад я переходил на новый JS стек у меня были проблемы с Flow, TypeScript, Eslint, prettier, babel, подсветкой, CI. Idea предлагала свои решения, но они не работали в CI. А мне нужно было окружение с туллингом такое, чтобы одинаково работало и на клиенте и в CI.

Раньше это была боль в Idea (слишком много плясок с отключение внутренних линтеров и настроек) и прикручиванием кк примеру eslint’a. Сейчас уже, как я слышал, нет таких проблем и Idea идет в ногу со временем. Но я уже “переболел” и перестроился спрева на Atom (светлая память) а потом на VSCode. И сейчас мне уже всего хватает, и обратно переезжать на Idea я не вижу смысла.

У VSCode достаточно большое кол-во плагинов, которые развиваются большим сообществом. И иногда можно найти интересные вещи, которые можно спокойно править и обсуждать через GitHub. Плюс т.к. среда выполнения в редакторе это JS, то множество вещей из фронтенд инструментов (например drawio) можно заставить работать в редакторе.

В общем сейчас мой выбор VSCode и мне его хватает, проблем никаких не вызывает.
спасибо!

Но ты сказал, что в инструментах типа IDEA очень долго продвигать фичи. Какие фичи ты реквестировал там, и какие фичи быстро продвигались, которые тебе нужны были в VSCode?
источник

VB

Vsevolod Brekelov in HolyJS, JavaScript-конференция
зы drawio появился неделю назад в VSCode, а есть какие-то плагины типа маст хев для тебя?
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
John Smith
Вопрос в эфир:

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

И еще вопрос:
Можно ли вставить за одну мутацию родительскую и дочернюю сущность, с учетом того, что в дочерней сущности используется id родительской, которая заранее неизвестна, а будет сгенерирована базой данных?
> Чем ты пользуешься, если в рантайме нужно сделать этакий композитный запрос? Например, я хочу склеить в одну мутацию создание в базе нескольких сущностей одновременно.

Пишу новую мутацию у которой навернутый input. И эта мутация по капотом дергает кучу моделей и создает то что нужно. У такого подхода есть один неоспаримый плюс - если что-то посередине сломалось, то можно откатить состояние (т.е. транзакционность).


> Можно ли вставить за одну мутацию родительскую и дочернюю сущность, с учетом того, что в дочерней сущности используется id родительской, которая заранее неизвестна, а будет сгенерирована базой данных?

Ответ такой же – пилю новую мутацию, которая принимает вагон данных на вход, кучу всего выполняет в своем resolve-методе (создает несколько документов) и ответ возвращает в GraphQL.
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
Vsevolod Brekelov
спасибо!

Но ты сказал, что в инструментах типа IDEA очень долго продвигать фичи. Какие фичи ты реквестировал там, и какие фичи быстро продвигались, которые тебе нужны были в VSCode?
Года 4 назад с eslint’ом провозился дня два и выбьросил.

Года 3-4 назад нужна была подстветка GraphQL и ctrl+click для скакания по дефинищенам.

Все это время страдал и скучал по удобной работе в Idea с гитом. Но год два назад, и в vscode норм стало.
источник

VB

Vsevolod Brekelov in HolyJS, JavaScript-конференция
Pavel @nodkz
Года 4 назад с eslint’ом провозился дня два и выбьросил.

Года 3-4 назад нужна была подстветка GraphQL и ctrl+click для скакания по дефинищенам.

Все это время страдал и скучал по удобной работе в Idea с гитом. Но год два назад, и в vscode норм стало.
я правильно понял, что на первое и второе есть в трекере реквесты? или были?
источник

VB

Vsevolod Brekelov in HolyJS, JavaScript-конференция
и какие реквесты ты делал в VScode?
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
Плагины к VSCode без которых сложно:

vscode-apollo –  для автокомплита GraphQL-запросов
vscode-eslint – 🔥 для подсветки ошибок линтинга и форматирования кода через prettier
auto-rename-tag – чтобы JSX теги переименовывались вместе
gitlens – 🔥 няшный дополнительный GIT (киллерфича, показывает кто и когда редактировал ту или иную строчку кода)
indent-rainbow – чтоб красиво красились отступы
node-module-intellisense – автоподстановка модулей при импорте
vscode-great-icons – ставит иконки к файлам, чтоб их легче различать
theme-onedark-sublime – темная тема из атома (работаю на ней)
vscode-language-babel – без него года 2 назад подсветка страдала (не знаю как щас, на автомате его ставлю).
code-settings-sync - чтоб в гисте настройки VSCode сохранялись, и автоматом применялись на других моих ноуутах
gitlab-workflow – для интеграции с гитлабом, видеть рабочие пайплайны открытые мердж-реквесты
markdown-mermaid – для рисования схем MERMAID
mermaid-markdown-syntax-highlighting – подсветка синтаксиса для mermaid
todo-tree – чтоб дергать по всем файлам TODO: текстовки
vscode-todo-highlight – для подсветки TODO: желтым на странице с кодом
vscode-docker – чтоб видеть что у тебя в локальном доккере поназапущено
vscode-drawio – 🔥 рисование более сложных схем, чем в MERMAID (и о боги это прям в редакторе и под гитом)
vscode-markdownlint – для линтинга MD файлов
vscode-paste-and-indent – чтоб при копировании оступы были нормальными
vscode-pull-request-github – 🔥 для быстрого разворачивания на локальной машине копии кода из гитхабовского PullRequest (показывает отккрытые пулл реквесты, автоматом прописывает origin, подсвечивает измененные строки, позволяет комментить, позволяет сразу слать коммиты от себя с правками).
vscode-svgviewer – для просмотра SVGшек
ms-vsliveshare – 🔥 совместная работа с кодом, можно давать доступ на запись в файлы, можно дать доступ на консоль, можно пробросить порт для локального просмотра у себя в браузере
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
Если вы находили какой-нибудь еще интересный плагин – поделитесь, буду очень признателен!
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
Vsevolod Brekelov
и какие реквесты ты делал в VScode?
В сам VSCode ничего не реквестил. Реквестил в плагины, или в либы которые юзали плагины в которых была проблема.

Щас вспоминаю только apollo-eslint.
источник

VB

Vsevolod Brekelov in HolyJS, JavaScript-конференция
хм, а как ты делаешь вывод, который озвучил, что в IDEA очень долго пропихиывают изменения, а в VSCode быстро?
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
А по ишьюсам наверное штук 10 разных открывал за последние 4 года к плагинам.
источник

P@

Pavel @nodkz in HolyJS, JavaScript-конференция
Vsevolod Brekelov
хм, а как ты делаешь вывод, который озвучил, что в IDEA очень долго пропихиывают изменения, а в VSCode быстро?
Это утверждение было верным 3-4 года назад.
Сейчас я так уже не могу сказать, т.к. им активно не пользуюсь последние года 3.

Надо узнавать о болячках у тех кто его сейчас юзает.
источник

IT

Ilya Taratukhin in HolyJS, JavaScript-конференция
Pavel @nodkz
Плагины к VSCode без которых сложно:

vscode-apollo –  для автокомплита GraphQL-запросов
vscode-eslint – 🔥 для подсветки ошибок линтинга и форматирования кода через prettier
auto-rename-tag – чтобы JSX теги переименовывались вместе
gitlens – 🔥 няшный дополнительный GIT (киллерфича, показывает кто и когда редактировал ту или иную строчку кода)
indent-rainbow – чтоб красиво красились отступы
node-module-intellisense – автоподстановка модулей при импорте
vscode-great-icons – ставит иконки к файлам, чтоб их легче различать
theme-onedark-sublime – темная тема из атома (работаю на ней)
vscode-language-babel – без него года 2 назад подсветка страдала (не знаю как щас, на автомате его ставлю).
code-settings-sync - чтоб в гисте настройки VSCode сохранялись, и автоматом применялись на других моих ноуутах
gitlab-workflow – для интеграции с гитлабом, видеть рабочие пайплайны открытые мердж-реквесты
markdown-mermaid – для рисования схем MERMAID
mermaid-markdown-syntax-highlighting – подсветка синтаксиса для mermaid
todo-tree – чтоб дергать по всем файлам TODO: текстовки
vscode-todo-highlight – для подсветки TODO: желтым на странице с кодом
vscode-docker – чтоб видеть что у тебя в локальном доккере поназапущено
vscode-drawio – 🔥 рисование более сложных схем, чем в MERMAID (и о боги это прям в редакторе и под гитом)
vscode-markdownlint – для линтинга MD файлов
vscode-paste-and-indent – чтоб при копировании оступы были нормальными
vscode-pull-request-github – 🔥 для быстрого разворачивания на локальной машине копии кода из гитхабовского PullRequest (показывает отккрытые пулл реквесты, автоматом прописывает origin, подсвечивает измененные строки, позволяет комментить, позволяет сразу слать коммиты от себя с правками).
vscode-svgviewer – для просмотра SVGшек
ms-vsliveshare – 🔥 совместная работа с кодом, можно давать доступ на запись в файлы, можно дать доступ на консоль, можно пробросить порт для локального просмотра у себя в браузере
и после этого vscode становится idea со всеми плюсами и минусами?)
источник