Вам новая статья 💌
Многим непросто начать писать тесты на Эффектор-модули. В этой небольшой заметке разобрал все максимально подробно!
Читайте статью, пишите тесты, задавайте вопросы в комментариях.
Инструкция: тестирование в Эффекторе
Многим непросто начать писать тесты на Эффектор-модули. В этой небольшой заметке разобрал все максимально подробно!
Читайте статью, пишите тесты, задавайте вопросы в комментариях.
Инструкция: тестирование в Эффекторе
kamyshev
Инструкция: тестирование в Эффекторе
Эффектор — это компактный и производительный менеджер состояний. Одно из его основных преимуществ — удобство при написании тестов. Это инструкция с подробным разбором каждой фичи.
Выкатил v0.3.0 для
1. Новое правило
2. Новое правило
3. Возможность настроить положение $ в именах сторов (в начале или в конце) от Ильи Рябчинского
eslint-plugin-effector
:1. Новое правило
no-useless-methods
2. Новое правило
no-ambiguity-target
3. Возможность настроить положение $ в именах сторов (в начале или в конце) от Ильи Рябчинского
GitHub
Release v0.3.0 · effector/eslint-plugin
Add new rule: no-useless-methods (PR #41)
Add new rule: no-ambiguity-target (PR #42)
Add possibility to configure store's naming convention — suffix of prefix (PR #37 by @ilyaryabchinski)
Add new rule: no-ambiguity-target (PR #42)
Add possibility to configure store's naming convention — suffix of prefix (PR #37 by @ilyaryabchinski)
Я очень уважаю две школы программирования — Hexlet и Школу сильных программистов Феди Борщева и Марьяны Онысько.
Hexlet я советую всем, кто только начинает карьеру. Школу сильных программистов — тем, кто уже работает и хочет прокачать какой-то специфичный навык. Я в ней проходил несколько курсов и не обломался:
+ «Профессиональный рост» помог разобраться, что делать дальше и принять несколько важных карьерных решений — я понял, что хочу больше ответственности и кросс-командных взаимодействий, и начал грести в эту сторону;
+ «Стать тимлидом» направил в сторону развития правильных мягких умений — я стал тренировать навыки переговоров (уже успел выторговать одну услугу вне очереди 😂) и вскрывать конфликты как можно раньше;
+ «Асинхронная архитектура» научила понимать что происходит на бекендах внутри Авиасейлс — теперь я могу поддержать разговор с инженерами других команды и безболезненно встраивать свои сервисы в общую инфраструктуру.
Сообщение о прозрачности! Хочется быть честным и объяснить, почему я пишу этот пост. Ко мне в пятницу пришла Марьяна и предложила отрелкамировать новый поток курса «Асинхронная архитектура» за билет или за деньги. Но, прямо сейчас у меня нет времени перепроходить курс, а суммы, которые можно заработать с рекламы в таком маленьком канале совсем несерьезные. Короче, я решил просто рассказать про новый поток, потому что считаю курс хорошим.
Итак! 21 октября стартует новый поток курса «Асинхронная архитектура» — четырёхнедельный интенсивно про проектирование распределённых систем. Формат максимально комфортный: 9 видео-уроков про самое важное (пример), конспекты, консультации (на топовых тарифах), Q&A-сессии, разборы домашек, полезный чат для участников (видел, как в там люди начинали стартапы и находили работу).
Вот промокод на скидку —
Покупать курс тут 👉 https://education.borshev.com/architecture
Hexlet я советую всем, кто только начинает карьеру. Школу сильных программистов — тем, кто уже работает и хочет прокачать какой-то специфичный навык. Я в ней проходил несколько курсов и не обломался:
+ «Профессиональный рост» помог разобраться, что делать дальше и принять несколько важных карьерных решений — я понял, что хочу больше ответственности и кросс-командных взаимодействий, и начал грести в эту сторону;
+ «Стать тимлидом» направил в сторону развития правильных мягких умений — я стал тренировать навыки переговоров (уже успел выторговать одну услугу вне очереди 😂) и вскрывать конфликты как можно раньше;
+ «Асинхронная архитектура» научила понимать что происходит на бекендах внутри Авиасейлс — теперь я могу поддержать разговор с инженерами других команды и безболезненно встраивать свои сервисы в общую инфраструктуру.
Сообщение о прозрачности! Хочется быть честным и объяснить, почему я пишу этот пост. Ко мне в пятницу пришла Марьяна и предложила отрелкамировать новый поток курса «Асинхронная архитектура» за билет или за деньги. Но, прямо сейчас у меня нет времени перепроходить курс, а суммы, которые можно заработать с рекламы в таком маленьком канале совсем несерьезные. Короче, я решил просто рассказать про новый поток, потому что считаю курс хорошим.
Итак! 21 октября стартует новый поток курса «Асинхронная архитектура» — четырёхнедельный интенсивно про проектирование распределённых систем. Формат максимально комфортный: 9 видео-уроков про самое важное (пример), конспекты, консультации (на топовых тарифах), Q&A-сессии, разборы домашек, полезный чат для участников (видел, как в там люди начинали стартапы и находили работу).
Вот промокод на скидку —
Kamyshev
Покупать курс тут 👉 https://education.borshev.com/architecture
kamyshev.code
Вам новая статья 💌 Многим непросто начать писать тесты на Эффектор-модули. В этой небольшой заметке разобрал все максимально подробно! Читайте статью, пишите тесты, задавайте вопросы в комментариях. Инструкция: тестирование в Эффекторе
👆кажется, в пятницу у вас не было времени, чтобы прочитать статью, так что напомню!
ОТЛИЧНАЯ СТАТЬЯ ПРО ТЕСТЫ.
ОТЛИЧНАЯ СТАТЬЯ ПРО ТЕСТЫ.
Дайджест 28 октября
Несколько статей, которые я прочитал и советую прочитать вам 👇
+ Local Optimum Problem in Software Development — коротенькая заметка Антона Шувалова про плохие решения при разработке программ;
+ How to waste your career, one comfortable year at a time — отличная статья с разбором вопроса «сколько нужно работать в одном месте?»;
+ Как и зачем делать доклады? — чтобы быть богатым, знаменитым и счастливым;
+ Сколько мне стоило попасть в Гугл и получить повышение, не проработав там ни одного дня — театр абсурда в биг-техе, чувак потратил 10 тысяч долларов, чтобы попасть на работу в Гугл.
Несколько статей, которые я прочитал и советую прочитать вам 👇
+ Local Optimum Problem in Software Development — коротенькая заметка Антона Шувалова про плохие решения при разработке программ;
+ How to waste your career, one comfortable year at a time — отличная статья с разбором вопроса «сколько нужно работать в одном месте?»;
+ Как и зачем делать доклады? — чтобы быть богатым, знаменитым и счастливым;
+ Сколько мне стоило попасть в Гугл и получить повышение, не проработав там ни одного дня — театр абсурда в биг-техе, чувак потратил 10 тысяч долларов, чтобы попасть на работу в Гугл.
Перевел статью про Fork API в Эффекторе на английский 👉 https://dev.to/effector/the-best-part-of-effector-4c27
Полайкате ее там, пожалуйста. Хочется доказать алгоритмам, что статью нужно фичерить 🙏
Полайкате ее там, пожалуйста. Хочется доказать алгоритмам, что статью нужно фичерить 🙏
DEV Community
The best part of Effector
Effector is a lightweight and performant state manager. It is UI frameworks agnostic, predictable and easy to use. Almost half a year ago, Aviasales team has started migration from RxJS to Effector. While I was investigating this library, I found a completely…
Дайджест 5 октября
Новый вторник — новый список статей и докладов, которые советую посмотреть и прочитать 🌚
+ @babel/how-to — хороший вводный доклад про внутреннее устройство Babel и пример написания плагина для него;
+ Путь к разработке расширяемых интерфейсов — короткий доклад про применение концепции слотов и плагинов к разработке интерфейсов;
+ Public Speaking — серия коротких статей про публичные выступления: борьба с волнением, структура доклада, слайды, тайминги;
+ SwiftUI defaults considered harmful — рассуждение на тему значений по-умолчанию в UI-фреймворках;
Новый вторник — новый список статей и докладов, которые советую посмотреть и прочитать 🌚
+ @babel/how-to — хороший вводный доклад про внутреннее устройство Babel и пример написания плагина для него;
+ Путь к разработке расширяемых интерфейсов — короткий доклад про применение концепции слотов и плагинов к разработке интерфейсов;
+ Public Speaking — серия коротких статей про публичные выступления: борьба с волнением, структура доклада, слайды, тайминги;
+ SwiftUI defaults considered harmful — рассуждение на тему значений по-умолчанию в UI-фреймворках;
Опубликовал мини-заметку про ещё один неудачный пет-проект 🤓
kamyshev
Неудачный проект: Trip-Eat
Я люблю вкусную еду и путешествия. В мае 2020 года сделал бота для телеграма, который подсказывал, где можно вкусно есть в путешествии. В мае 2021 законсервировал проект. Выводы! СутьИзначально, это был просто телеграм бот. Ты ему геолокацию — он тебе место…
Forwarded from FEDOR BORSHEV
Начинайте с данных, а не с кода
Важный урок, который я усвоил на Снобе — если в проекте присутствуют старые данные, особенно с легаси-сервисами, то начинать надо не с попыток запилить как можно больше фич, а с этих самых данных.
Вот представьте ситуацию — вы делаете каталог книг. В базе есть автор, есть книга, отношение многие ко многим — всё как положено. Смотрите в легаси — схема данных вроде соответствует. Создаёте модельки у себя, строите вокруг этого фичи — API для фронтенда, выгрузку в elasticsearch.
Перед запуском проекта финально импортируете данные и замечаете, что у некоторых книг подозрительно много авторов — по базе выходит, что «Анну Каренину» написал не только Лев Толстой, но и Ксения Собчак. Начинаете разбираться и выясняете, что у автора книги в легаси-базе есть бинарный флаг «рецензент», и если человек указан как рецензент, то считается, что он не писал эту книгу, а только рецензировал. Было это 10 лет назад, в те времена рецензии хранились как комментарии к товарам. С тех пор рецензии никто не писал, но старые нужно переносить, а авторов чистить — иначе SEO-шники съедят. И вам обо всём этом не сказал никто, включая тех же SEO-шников, пока вы их сами не спросили.
И вот вы в ночь перед дедлайном делаете новую сущность в системе, добавляете API, переписываете импорт, санитизируете данные. Выясняете, что ваша обёртка над эластиком может отдавать только посты — переписываете и её. И всё это потому что данные принесли вам требование, о котором никто не сказал. А если бы начали с данных — ещё в процессе переноса узнали бы о существовании рецензий, поменяли бы скоуп, и закончили бы вовремя.
Важный урок, который я усвоил на Снобе — если в проекте присутствуют старые данные, особенно с легаси-сервисами, то начинать надо не с попыток запилить как можно больше фич, а с этих самых данных.
Вот представьте ситуацию — вы делаете каталог книг. В базе есть автор, есть книга, отношение многие ко многим — всё как положено. Смотрите в легаси — схема данных вроде соответствует. Создаёте модельки у себя, строите вокруг этого фичи — API для фронтенда, выгрузку в elasticsearch.
Перед запуском проекта финально импортируете данные и замечаете, что у некоторых книг подозрительно много авторов — по базе выходит, что «Анну Каренину» написал не только Лев Толстой, но и Ксения Собчак. Начинаете разбираться и выясняете, что у автора книги в легаси-базе есть бинарный флаг «рецензент», и если человек указан как рецензент, то считается, что он не писал эту книгу, а только рецензировал. Было это 10 лет назад, в те времена рецензии хранились как комментарии к товарам. С тех пор рецензии никто не писал, но старые нужно переносить, а авторов чистить — иначе SEO-шники съедят. И вам обо всём этом не сказал никто, включая тех же SEO-шников, пока вы их сами не спросили.
И вот вы в ночь перед дедлайном делаете новую сущность в системе, добавляете API, переписываете импорт, санитизируете данные. Выясняете, что ваша обёртка над эластиком может отдавать только посты — переписываете и её. И всё это потому что данные принесли вам требование, о котором никто не сказал. А если бы начали с данных — ещё в процессе переноса узнали бы о существовании рецензий, поменяли бы скоуп, и закончили бы вовремя.
Дайджест 12 октября
Что-то я такой замороченный, что кроме дайджестов ничего не пишется 😿
+ Диптих Ильи Климова Карго-культ TypeScript в украинских аутсорсерах и Почему я отошел от TypeScript в своих React-проектах и куда;
+ Why I'm unreachable and maybe you should be too — небольшая заметка про вред «доступности» (но не той доступности);
+ Darwin meets Dilbert: Applying the Law of Two Feet to your next meeting — способ сделать митинги лучше;
Что-то я такой замороченный, что кроме дайджестов ничего не пишется 😿
+ Диптих Ильи Климова Карго-культ TypeScript в украинских аутсорсерах и Почему я отошел от TypeScript в своих React-проектах и куда;
+ Why I'm unreachable and maybe you should be too — небольшая заметка про вред «доступности» (но не той доступности);
+ Darwin meets Dilbert: Applying the Law of Two Feet to your next meeting — способ сделать митинги лучше;
Пожалуй, расскажу и тут 🌚
Авиасейлс Ещё запустился 👉 https://vc.ru/services/305177-aviasales-zapustil-svoy-pervyy-platnyy-servis-s-keshbekom-u-partnerov-sekretnymi-marshrutami-i-prioritetnoy-podderzhkoy
Авиасейлс Ещё запустился 👉 https://vc.ru/services/305177-aviasales-zapustil-svoy-pervyy-platnyy-servis-s-keshbekom-u-partnerov-sekretnymi-marshrutami-i-prioritetnoy-podderzhkoy
vc.ru
Aviasales запустил свой первый платный сервис — с кэшбеком у партнёров, секретными маршрутами и приоритетной поддержкой — Сервисы…
На старте «Ещё» стоит 990 рублей в год.
4 ноября на HolyJS буду рассказывать почему и как мы мигрировали Авиасейлс на Effector ☄️
Приходите слушать 🌚
Тематический промокод —
Приходите слушать 🌚
Тематический промокод —
kamyshevJRGpc2021
HolyJS 2021 Moscow. Конференция для JavaScript-разработчиков.
HolyJS 2021 Moscow — большая конференция для JS-разработчиков. Спикеры со всего мира. Несколько десятков технических докладов о JavaScript, фронтенде, UI, инструментах и многом другом.
Дайджест 19 октября
Я пока все еще в огне, поэтому пока только дайджест 😢
+ На прошлой неделе вышел Parcel 2 и это биг-дил — он простой, быстрый и удобный (а теперь ещё и расширяемый);
+ Реализация метода для Effector Patronum — лайв-кодинг Сергея Совы;
+ К — Команда — лонгрид Вастрика про ИТ-команды, недавно обновлен под реалии 2021 года;
+ Tuple's Pair Programming Guide — подробнейшая инструкция по организации парного программирования.
Я пока все еще в огне, поэтому пока только дайджест 😢
+ На прошлой неделе вышел Parcel 2 и это биг-дил — он простой, быстрый и удобный (а теперь ещё и расширяемый);
+ Реализация метода для Effector Patronum — лайв-кодинг Сергея Совы;
+ К — Команда — лонгрид Вастрика про ИТ-команды, недавно обновлен под реалии 2021 года;
+ Tuple's Pair Programming Guide — подробнейшая инструкция по организации парного программирования.
Forwarded from Валя читает ишью
vscode.dev(!)
Microsoft презентовал vscode.dev — VS Code в браузере. Очень похоже на GitHub Codespaces, но позволяет работать с локальной файловой через File System Access API. Т.е. можно добавить директорию проекта, с которой хотите работать, и редактировать всё прям в браузере.
Больше подробностей, как обычно, в блог-посте.
Microsoft презентовал vscode.dev — VS Code в браузере. Очень похоже на GitHub Codespaces, но позволяет работать с локальной файловой через File System Access API. Т.е. можно добавить директорию проекта, с которой хотите работать, и редактировать всё прям в браузере.
Больше подробностей, как обычно, в блог-посте.
Вы наверное уже все давно знаете, что Авиасейлс — это лучшая компания для работы в России.
17-19 ноября мы проведем наём-тусу SALO HIRING 👉 https://event.aviasales.ru/
В этот раз ищем и бекендеров, и фронтендеров.
Скорее регистрируйтесь ✈️
17-19 ноября мы проведем наём-тусу SALO HIRING 👉 https://event.aviasales.ru/
В этот раз ищем и бекендеров, и фронтендеров.
Скорее регистрируйтесь ✈️
Работа в Авиасейлс
Работать в Авиасейлс — это жалеть, что не пришел сюда раньше!
ReScript
ReScript — строго статически типизированный язык, который компилируется в JavaScript. Раньше он назывался ReasonML.
Я узнал о нем летом — прочитал документацию, но код писать не захотел. В начале осени посмотрел о нем один доклад, потом второй и решил все-таки попробовать написать на нем что-нибудь небольшое.
Впечатления!
У него очень приятный синтаксис с кучей приятных мелочей: пайп-оператор, все является выражением, последнее выражение возвращается из функции, функции каррированы по умолчанию. А строгая система типов помогает расслабиться — люблю доверять компилятору.
Есть и странные места — две имплементации стандартной библиотеки (String и String2 передают привет), невозможность перегрузить функцию (особенно забавные тайпинги получились у React.useEffect) и другие особенности\.
Но главная причина, почему этот язык никогда не займёт сколько нибудь заметную долю на рынке — отсутствие прямого доступа до библиотек написанных на JavaScript. Причем, даже библиотеки с TS-тайпингами не подходят, у ReScript очень строгая система типов и TS-типы в нее конвертировать нельзя.
ReScript — строго статически типизированный язык, который компилируется в JavaScript. Раньше он назывался ReasonML.
Я узнал о нем летом — прочитал документацию, но код писать не захотел. В начале осени посмотрел о нем один доклад, потом второй и решил все-таки попробовать написать на нем что-нибудь небольшое.
Впечатления!
У него очень приятный синтаксис с кучей приятных мелочей: пайп-оператор, все является выражением, последнее выражение возвращается из функции, функции каррированы по умолчанию. А строгая система типов помогает расслабиться — люблю доверять компилятору.
Есть и странные места — две имплементации стандартной библиотеки (String и String2 передают привет), невозможность перегрузить функцию (особенно забавные тайпинги получились у React.useEffect) и другие особенности\.
Но главная причина, почему этот язык никогда не займёт сколько нибудь заметную долю на рынке — отсутствие прямого доступа до библиотек написанных на JavaScript. Причем, даже библиотеки с TS-тайпингами не подходят, у ReScript очень строгая система типов и TS-типы в нее конвертировать нельзя.
Дайджест 26 октября
🪄 очень короткий дайджест, потому что Белград интереснее разработки
+ IT релокация в Сомалиленд из Испании — история не попсовой релокации, люблю такие;
+ Как написать вакансию — большая часть вакансий на IT-рынке — полное дерьмо, это инструкция как сделать нормально;
А ещё, я решил раз в месяц переводить эти дайджесты на английский и публиковать их на dev.to. Полайкайте, пожалуйста 🤗
🪄 очень короткий дайджест, потому что Белград интереснее разработки
+ IT релокация в Сомалиленд из Испании — история не попсовой релокации, люблю такие;
+ Как написать вакансию — большая часть вакансий на IT-рынке — полное дерьмо, это инструкция как сделать нормально;
А ещё, я решил раз в месяц переводить эти дайджесты на английский и публиковать их на dev.to. Полайкайте, пожалуйста 🤗
Пару часов назад рассказал на HolyJS доклад, а значит пора опубликовать тематическую статью 🌚
Как мы строим веб-платформу в Авиасейлс
Это краткий пересказ того, чем я занимался полтора года в Авиасейлс. Мне всегда интересно читать, как устроена разработка в других компаниях, надеюсь, и вам будет интересно читать про нас.
Кстати, если вам понравилось то, чем я занимаюсь, то напоминаю — ищем инженера в нашу команду.
Как мы строим веб-платформу в Авиасейлс
Это краткий пересказ того, чем я занимался полтора года в Авиасейлс. Мне всегда интересно читать, как устроена разработка в других компаниях, надеюсь, и вам будет интересно читать про нас.
Кстати, если вам понравилось то, чем я занимаюсь, то напоминаю — ищем инженера в нашу команду.
Дайджест 9 ноября
+ Осознанная меркантильность — скандальный доклад Антона Назарова про две работы;
+ Type Query: jQuery Style Type Manipulation — очень странный способ описывать типы в TS-приложении с помощью инлайн JS;
+ Разбираю вакансии Додо Пиццы, Яндекса, I Love Running, Clever — Наталия Бабаева рассказывает как сделать вакансию лучше.
+ Осознанная меркантильность — скандальный доклад Антона Назарова про две работы;
+ Type Query: jQuery Style Type Manipulation — очень странный способ описывать типы в TS-приложении с помощью инлайн JS;
+ Разбираю вакансии Додо Пиццы, Яндекса, I Love Running, Clever — Наталия Бабаева рассказывает как сделать вакансию лучше.
Frontend Crew
Во-первых, это лучшая онлайн конференция для фронтндеров. Во-вторых, она начинается уже совсем скоро — 6 декабря. В-третьих, я принёс вам промокод —
Билеты покупать тут — https://podlodka.io/fecrew
Теперь подробности 🌚
В этом сезоне будет две большие темы — фронтендерский тулинг и JS под капотом. Вот сессии, которые я больше всего жду:
1. АМА-сессия с Лукой Касонато из Deno. Да, из того самого Deno.
2. Доклад Вали Семирульника (того, который читает ишью) про пакетные менеджеры.
3. Доклад Ильи Климова про ops для dev-ов. Как известно, DevOps — это не профессия!
И, конечно, мы проведем разговорный английский клуб, который получил такие хорошие отзывы во втором сезоне.
Ещё один бонус — в этом сезоне я не курирую спикеров, поэтому у меня появилась возможность подготовить свой доклад! Так что, на первой неделе расскажу и покажу как делать плагины для ESLint.
Короче, это будет очень крутая конференция 😎 приходите и зовите друзей.
Прокомод —
https://podlodka.io/fecrew
Во-первых, это лучшая онлайн конференция для фронтндеров. Во-вторых, она начинается уже совсем скоро — 6 декабря. В-третьих, я принёс вам промокод —
kamyshev_kapunkap
.Билеты покупать тут — https://podlodka.io/fecrew
Теперь подробности 🌚
В этом сезоне будет две большие темы — фронтендерский тулинг и JS под капотом. Вот сессии, которые я больше всего жду:
1. АМА-сессия с Лукой Касонато из Deno. Да, из того самого Deno.
2. Доклад Вали Семирульника (того, который читает ишью) про пакетные менеджеры.
3. Доклад Ильи Климова про ops для dev-ов. Как известно, DevOps — это не профессия!
И, конечно, мы проведем разговорный английский клуб, который получил такие хорошие отзывы во втором сезоне.
Ещё один бонус — в этом сезоне я не курирую спикеров, поэтому у меня появилась возможность подготовить свой доклад! Так что, на первой неделе расскажу и покажу как делать плагины для ESLint.
Короче, это будет очень крутая конференция 😎 приходите и зовите друзей.
Прокомод —
kamyshev_kapunkap
https://podlodka.io/fecrew
podlodka.io
Онлайн-конференция Podlodka Frontend Crew, сезон #6
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам frontend-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.