kamyshev.code
2.14K subscribers
40 photos
565 links
Архитектура, код, софт-скиллы и всё остальное. Вопросы, пожелания, комментарии — @igorkamyshev

https://kamyshev.me
Download Telegram
А не получится. Простите, что обманул.

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

Донаты в Телеграме тоже закрыл, подписывайтесь на Патреон, если хотите прочитать.

Простите ещё раз 🙏
Пора рассказать почему статья про веб-платформу в Авиасейлс откладывается 🌚

Меня все-таки позвали выступить на HolyJS в ноябре с докладом про то, как мы приняли решение переехать с Redux+RxJS на Effector.

Я расскажу, почему это произошло, с какими проблемами столкнулись и каким командам подойдет этот путь. В конце посмотрим, как изменилась жизнь фронтендеров за время использования Effector и разберем главную киллер-фичу этого стейт-менеджера.

Помогите придумать хорошее название для доклада, пожалуйста 🙏
Маленькие эволюции

Недавно делал мини-проект, где мне нужны были простые и стабильные миграции схемы базы данных. Оказалось, что современный мир не готов предоставить мне такой инструмент.

Я пробовал миграции от knex, которые не осилили работать с управляемой базой на Digital Ocean. Я пробовал миграции от type-orm, которые невозможно подружить с кастомной конфигурацией.

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

Итак, встречайте — trona.

Миграции — это простые SQL-файлы. Конфигурация — просто файл, экспортирующий функцию runQuery.

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

Многим непросто начать писать тесты на Эффектор-модули. В этой небольшой заметке разобрал все максимально подробно!

Читайте статью, пишите тесты, задавайте вопросы в комментариях.

Инструкция: тестирование в Эффекторе
Выкатил v0.3.0 для eslint-plugin-effector:

1. Новое правило no-useless-methods
2. Новое правило no-ambiguity-target
3. Возможность настроить положение $ в именах сторов (в начале или в конце) от Ильи Рябчинского
Я очень уважаю две школы программирования — Hexlet и Школу сильных программистов Феди Борщева и Марьяны Онысько.

Hexlet я советую всем, кто только начинает карьеру. Школу сильных программистов — тем, кто уже работает и хочет прокачать какой-то специфичный навык. Я в ней проходил несколько курсов и не обломался:

+ «Профессиональный рост» помог разобраться, что делать дальше и принять несколько важных карьерных решений — я понял, что хочу больше ответственности и кросс-командных взаимодействий, и начал грести в эту сторону;

+ «Стать тимлидом» направил в сторону развития правильных мягких умений — я стал тренировать навыки переговоров (уже успел выторговать одну услугу вне очереди 😂) и вскрывать конфликты как можно раньше;

+ «Асинхронная архитектура» научила понимать что происходит на бекендах внутри Авиасейлс — теперь я могу поддержать разговор с инженерами других команды и безболезненно встраивать свои сервисы в общую инфраструктуру.

Сообщение о прозрачности! Хочется быть честным и объяснить, почему я пишу этот пост. Ко мне в пятницу пришла Марьяна и предложила отрелкамировать новый поток курса «Асинхронная архитектура» за билет или за деньги. Но, прямо сейчас у меня нет времени перепроходить курс, а суммы, которые можно заработать с рекламы в таком маленьком канале совсем несерьезные. Короче, я решил просто рассказать про новый поток, потому что считаю курс хорошим.

Итак! 21 октября стартует новый поток курса «Асинхронная архитектура» — четырёхнедельный интенсивно про проектирование распределённых систем. Формат максимально комфортный: 9 видео-уроков про самое важное (пример), конспекты, консультации (на топовых тарифах), Q&A-сессии, разборы домашек, полезный чат для участников (видел, как в там люди начинали стартапы и находили работу).

Вот промокод на скидку — Kamyshev

Покупать курс тут 👉 https://education.borshev.com/architecture
Дайджест 28 октября

Несколько статей, которые я прочитал и советую прочитать вам 👇

+ 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

Полайкате ее там, пожалуйста. Хочется доказать алгоритмам, что статью нужно фичерить 🙏
Дайджест 5 октября

Новый вторник — новый список статей и докладов, которые советую посмотреть и прочитать 🌚

+ @babel/how-to — хороший вводный доклад про внутреннее устройство Babel и пример написания плагина для него;

+ Путь к разработке расширяемых интерфейсов — короткий доклад про применение концепции слотов и плагинов к разработке интерфейсов;

+ Public Speaking — серия коротких статей про публичные выступления: борьба с волнением, структура доклада, слайды, тайминги;

+ SwiftUI defaults considered harmful — рассуждение на тему значений по-умолчанию в UI-фреймворках;
Forwarded from FEDOR BORSHEV
Начинайте с данных, а не с кода

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

Вот представьте ситуацию — вы делаете каталог книг. В базе есть автор, есть книга, отношение многие ко многим — всё как положено. Смотрите в легаси — схема данных вроде соответствует. Создаёте модельки у себя, строите вокруг этого фичи — 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 — способ сделать митинги лучше;
Дайджест 19 октября

Я пока все еще в огне, поэтому пока только дайджест 😢

+ На прошлой неделе вышел Parcel 2 и это биг-дил — он простой, быстрый и удобный (а теперь ещё и расширяемый);

+ Реализация метода для Effector Patronum — лайв-кодинг Сергея Совы;

+ К — Команда — лонгрид Вастрика про ИТ-команды, недавно обновлен под реалии 2021 года;

+ Tuple's Pair Programming Guide — подробнейшая инструкция по организации парного программирования.
vscode.dev(!)

Microsoft презентовал vscode.dev — VS Code в браузере. Очень похоже на GitHub Codespaces, но позволяет работать с локальной файловой через File System Access API. Т.е. можно добавить директорию проекта, с которой хотите работать, и редактировать всё прям в браузере.

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

17-19 ноября мы проведем наём-тусу SALO HIRING 👉 https://event.aviasales.ru/

В этот раз ищем и бекендеров, и фронтендеров.

Скорее регистрируйтесь ✈️