en
Feedback
Евгений Паромов

Евгений Паромов

Open in Telegram

Автор сообщества https://paromovevg.ru/evolution-community Пишу о грандиозных планах изменения системы IT образования. Об успехах, неудачах, борьбе с собой. И постепенном движении к своей, возможно слишком смелой, цели 🎯 Я: @paromovevg

Show more
3 939
Subscribers
No data24 hours
-87 days
-230 days
Posts Archive
Забавная история про ZOD Вместе с запуском платформы, я выпустил на ней один небольшой курс по Zod ➡️ https://micro-courses.ru/course/zod-full-course И это максимально странный курс, со всех точек зрения. Это и не массовое что-то по типу React. И не продвинуто/интересно/особенное по типу FSD, или сложного typescript Но сама идея платформы как раз про такие вещи. Я хочу наконец закрыть дырку в обучающих материалах, которые отходят от основного столба базовых библиотек, фреймворков и тем для тысяч и тысяч курсов. Ведь мир программирования огромен 🌏 И это, действительно, серьёзная проблема. Например: На каждом проекте десятки библиотек. Каждая из которых может использоваться хорошо или плохо. Более того: от качественного использования инструментов, часто зависит, загнётся проект или нет. Я как то раз пришёл на проект с react-query, а с ним там как с redux работают. Из-за этого там всё люто лагало, багало, и стартап из-за этого чуть не закрылся. Понятное дело, что это плохие разработчики были. Но что в них было плохого? Отчасти, незнание своих инструментов.

Ребят! Я тут перенёс FSD курс на платформу https://micro-courses.ru/course/fsd-full Изначально я собирался переносить на плат
Ребят! Я тут перенёс FSD курс на платформу https://micro-courses.ru/course/fsd-full Изначально я собирался переносить на платформу уже доработанную версию. Где отдельно бы стояли FSD + redux, FSD + mobx, FSD + next и тд. Ещё собирался сжать информацию, сделать её более понятной и простой для восприятия. В этом, вообще, основная идея платформы – сделать курсы точечными и таргетными. Нужно тебе узнать, как использовать FSD c Next.js – ты находишь этот курс и смотришь именно его. Но сейчас у меня основная задача – добить серию видео про создание платформы, поэтому решил сделать максимально быстрый перенос. В любом случае, у меня есть классная платформа, и теперь можно проходить курс в более удобном формате. В связи с этим, я решил всем, у кого уже куплен курс по FSD, выдать доступ и на платформу. Для того, чтобы получить доступ к курсу на платформе, зарегайтесь на ней, и напишите сюда свой email на платформе. Пишите с аккаунта, который есть в группе курса по FSD, и я вам выдам доступы ✔️ И ещё один момент. Если у вас есть какие-то проблемы, пожелания или идеи – пишите мне, или вот сюда https://t.me/microcourses_support Я сейчас двигаюсь на голых идеях и ваша обратная связь будет для меня очень полезной 🙂

Я просто охреневаю, как быстро можно разрабатывать, если знать, где срезать углы До нынешнего состояния платформы, я на неё потратил часов 120👇 https://micro-courses.ru/ При этом, в ней реализованы следующие механики: 1. Отображение курсов на карте, отображение картинок на этой карте 2. Редактирование карты, перемещение, удаление, изменение размера. В общем, мини миро 3. Система ролей и простенькая админка, для отображения пользователей и выдачи доступов 4. Редактирование профиля, регистрацию по email и oauth 5. Система управления контентом на основе yaml, json схемы и git 6. Отображение контента с помощью mdx 7. Система прогресса 8. Ну и оплаты, куда без этого Если на это всё смотреть, это пипец как много... Чтобы вы понимали, насколько я быстро это сделал. Где-то 3 года назад я разрабатывал похожую систему для uchi.ru Мы делали командой в 7 человек, в течении 5 месяцев (разница почти в 50 раз) примерно такую же по функциональности штуку. Но как так получилось? Самое главное — кругозор и эффективное использование инструментов. 1. Монорепа и next-server actions: Один сервер, одна команда, меньше расходов на контракты и межязыковое взаимодействие 2. Использование готовой либы shadcn, и хорошее владение ей + tailwidncss + ChatGPT. Верстка просто летела, так как по большей части это копипаста из док, и результаты работы ChatGPT 3. React flow – и диаграммы это уже не страшно 4. Next-auth – минус возня с авторизацией 5. Использование ChatGPT – позволяет сэкономить в 10 раз время на слое lib (Интеграция с S3, Redis, Yaml, написание скриптов на node и тд) 6. Event sourcing – позволил дико упростить логику работы с прогрессом, оплатами, и выдачей доступов. (но пришлось повозиться с деплоем eventstore на vps) 7. Это всё сделано по FSD + подобию чистой архитектуры. Что позволило мне не затротлить, когда строк кода в проекте перевалило за 15k Вывод: если знать самый короткий путь и иметь возможность идти на трейдофы, то можно ускорить разработку раз в 50 🚀

За двумя зайцами погонишься — ни одного не поймаешь 🐰🐰 Всем привет, у меня тут был сложный месяц. Последний мой видос набрал просмотров несоизмеримо усилиям. И я решил, что что-то делаю не так. У меня была попытка совместить разработку платформы и классный уникальный контент на youtube, но получилось как всегда. И контент получился через чур сложным и не смотрибельным, и разработка платформы оочень сильно начала затягиваться. Поэтому принял решение вернуться в последовательный режим 1. Сначала доделать платформу до запуска 2. Потом записать видео про то, как я эту платформу делал. Уже с необходимыми упрощениями и улучшениями смотрибельности. И тут же бодро пошла разработка платформы. Уже как неделю стоит готовая MVP, и сегодня я закончил разработку первого курса на мою новую платформу. Так что возвращаюсь в контент, и, надеюсь, больше не буду настолько надолго выпадать 🥲

✅ json schema + vs code + yaml + mdx + git + github = супер простая, дешёвая, эффективная система управления информацией. 🔹Описываем структуры данных с помощью json schema. Можно делать супер сложные штуки, описывать валидации, связанные поля и кучу всего другого. При этом генерируется чатом gpt за 5 минут 🔹Пишем yaml файлики с автодополнением в ide. Валидация через json схемы обеспечивает валидность, автодополнение упрощает процесс. Работа с текстом даёт супер мощную гибкость автоматизации (функциональность тимплейтов через Ctrl + V) 🔹Вставляем сложные компоненты через MDX. Нормальные картинки, таблицы, сложное форматирование, карусели... Всё, что захочешь, с помощью костюмных React компонентов (а как быстро) 🔹git + github. Версионирование, драфты, ветки, параллельная работа, авто решение конфликтов и все прелести распределённой работы с иформацией Милионы программистов уже пол века оттачивают инструменты работы с чистой информацией (кодом). Так почему бы не использовать эти супер мощные инструменты для работы с другой информацией (курсами) У такого подхода есть и свои минусы. Как контролировать актуальность связей, и уникальность id, например. Но это должно легко закрываться простым самописным туллингом В общем, кому интересно это решение, вот видос: https://youtu.be/b5A2usbZVBU?feature=shared А я пошёл делать платформу дальше 💻

Вышло моё третье видео из серии стартап с нуля❕ В нём мы разработаем простой, но эффективный флоу работы с контентом курсов. С использованием yaml mdx json-schema и git ❔"Но почему не какой-нибудь strapi?" – спросите вы У меня достаточно большой опыт работы с этими штуками, и хотелось сделать это быстро просто и функционально. Учесть классические проблемы Сразу выплыло несколько вариантов 1. Сделать простую админку самому 2. Использовать headless cms 3. Использовать md файлы ▶️ Первый вариант я сразу отбросил, так как он жутко трудозатратный. Просто нафигачить 5 формочек не сложно. Сложно сделать управление версий, валидацию, драфты, совместное редактирование. ▶️ Второй вариант уже сильно лучше. Headless cms сильно развились сейчас и из под капота они решают почти все проблемы. Но всё равно не все. А всё, что выходит за рамки базовых кейсов, уже становится делать очень сложно. + это отдельный сервис, инфра под него, база, миграции, безопасность В результате, всё равно это неудобно, так как это конструктор формочек, с неудобным ux. Тогда я решил поглубже изучить темы с Markdown. Но быстро отказался от md и просто пришёл к обычным yaml файликам. С вставками Markdown в многострочные строки

Это рассуждение мне очень сильно напомнило сравнение параллельного и синхронного выполнения кода. ➡️ С одной стороны, синхронный код всегда эффективнее использует ресурсы, проще в написании и поддержке. ➡️ С другой стороны, параллельный код в потенциале может дать большую общую производительность. Но эффективность использования ресурсов кардинально ниже В работе мы используем оба формата. Но по принципу "делаем параллельно, только если очень надо" Так почему в работе синхронный вариант нам даже в голову не приходит ❓И второй момент: почему единицей параллельности всегда воспринимается человек. При том, что один человек почти всегда не самодостаточен. У него будет очень много связей и блоков с другими членами команды. Это как разносить в разные потоки плотно связанные куски реализации одного пользовательского флоу. Вы заколебетесь это дебажить, и большую часть времени у вас будут простаивающие потоки, которые блокируют работу друг друга. И понятное дело, что на практике всё всегда сложнее. Но я просто хочу протестить эту штуку. И сегодня был первый опыт. Понравилось. А дальше поживём. Увидим.

Сегодня провёл первую в жизни моб сессию! В кружочках ниже будут мои выводы и впечатления от сессии, а тут я расскажу подробнее про сам формат. 🤔 В чём сама концепция? Берётся маленькая полнофункциональная команда, которая может самостоятельно выдавать пользу. Тут важно, чтобы она была небольшая. И вместо того, чтобы: - идти асинхронно работать, - делать код ревью, - писать документацию, - блокать друг друга, Все собираются в одной zoom/ google meet комнате и начинают вместе работать над одной и той же задачей. Тут есть несколько организационных моментов ⚙️ - Пишет код только один человек, все остальные говорят, что делать - Каждые 10 минут (ну или как выберете) идёт смена пишущего код - Тот, кто пишет, особо не думает, думают все остальные И если это соблюсти, начинается магия 💫 - Все мидлы и джуны начинают супер быстро расти, так как в плотном контакте с сеньором/ тимлидом - Не нужно код ревью, так как весь код согласован всей командой - Для каждой задачи используются знания всей команды (как технические, так и бизнес) - Не нужны сложные гит флоу, всё синхронно и просто - Морально классно, так как в плотном контакте с ребятами начинается прям командная работа Плюсов дохрена и больше. Особенно это хорошо работает для важных и сложных задач. Альтернатива "декомпозировать на всю команду, а потом пытаться собрать обратно" прям попахивает дисфункцией Но вот для простых задач и больших команд этот формат не подходит. Тут, я думаю, нужно придумать какой-то гибридный вариант В общем, если хотите узнать подробнее о теме, вот источник откуда я брал подробности https://www.remotemobprogramming.org И го в комментах подискутируем по поводу уместности такого подхода в реальной разработке. Интересно узнать ваше мнение)

3 часа со мной в эту субботу 🕺 Последнее время меня очень сильно интересует тема mob программирования. ➡️ Что это? По сути, это как парное программирование, только на максималках. Когда вся команда делает одну задачу в одной zoom комнате ➡️ Зачем это? Не нужны код ревью, документация, не нужны синки, онбординг, не нужны все современные процессы, которые помешанны на асинхронной разработке (подробнее можно поискать в канале https://t.me/vsharovatov ) И особенно мне интересна эта тема в контексте шаринга знаний. Можно ли придумать лучший способ передать свой майнд сет, чем покодить вместе. Обсудить архитектуру, решить возникающие трудности и проблемы. В общем, теоретически мне это дико нравится, а вот на практике всё, как всегда, интереснее. Поэтому вот вам моё предложение 👇 В эту субботу в 15:00 хочу провести моб сессию. Нужно 3 - 4 фронта. Если у вас есть 3 свободных часика и хотите со мной покодить – пишите мне в личку ваш стек, опыт работы, немного о себе, и согласны ли вы стать частью моего контента на youtube канале, если что. Не факт, что всех смогу взять. Буду выбирать, чтобы получилась интересная разношёрстная компашка Если много желающих соберётся, и все участвующие будут согласны, сделаю это в формате стрима на канале.

Я категорически однозадачный Ещё один вывод, который я сделал за прошлый год о себе. Мой мозг может держать одновременно не б
Я категорически однозадачный Ещё один вывод, который я сделал за прошлый год о себе. Мой мозг может держать одновременно не больше 3х фокусов. При том, что 3тий не может быть большим. Вот так вот 🤷🏼 В общем, 2 деятельности большие и однородные я могу прям фигачить. Как танк. Продуктивно, интенсивно, вовлечённо. Замечательный пример – челлендж 90 дней видео. Но вот всё, что выходит за эти 2 деятельности, выпадает из моей головы настолько, что я могу всё на свете забыть. (Меня чуть в армию не забрали как-то, потому что я не мог пройти медкомиссию 5 лет к ряду) Мне это всю жизнь очень сильно мешало, и я себя считал безответственным. Хотя по факту, я просто не могу концентрироваться на многом одновременно. Были даже попытки внедрять системы задач, календарей. Но приводило это всё к резкому повышению уровня стресса и откату. Я не просто забываю это делать – меня дико бесит мелочёвка вне основного фокуса. Как я ещё живу в реальном мире, со счетами за кварт плату и походами в магазин? У меня жена – пример противоположного человека. Она может делать тысячу дел одновременно. Качественно и ответственно. При этом её дико бесят повторяющиеся долгое время задачи. В общем, она мой личный асистент по жизни) Поэтому цели на квадриместр только 2, так как с работой меня больше просто не хватит. А все попытки взять больше просто закончатся срывом обязательств и самобичеванием. Вместо вывода. Желаю всем на свете не бороться с собой. Принимать себя и использовать свои сильные стороны.

Цели на этот квадриместр Уже конец января, а я вам так и не рассказал, что сейчас делаю и какие у меня цели. Самый первый момент: я решил не планироваться на год. Год – странная величина для планирования. Для краткосрочного слишком много, для долгосрочного слишком мало. Я решил планироваться на основе моего цикла усталости, а это в среднем 3 – 3.5 месяца + отпуск = 4 месяца. Называется это квадриместр. Название в моём стиле, буду использовать) Итак, цели на этот период: – Запустить свою платформу курсов – Наладить баланс сфер Всё! Подробнее о каждой цели я расскажу чуть позже. Сейчас расскажу, почему цели только 2 👇

Вышло моё новое видео из серии "Разработка стартапа с нуля до первых денег" Это саамое трудозатратное видео, которое я когда-либо делал. Активно его делал где-то 2 недели до отпуска и почти 2 недели после. Даже боюсь считать, сколько это часов 🙄 Оказалось, что делать продакшн реди на камеру, с сохранением интенсивности повествования оч сложно. Поэтому, ближе к концу пришёл к более простому и привычному формату. (Кстати, кто всё посмотрит, напишите потом в комментах, как лучше. Там будет прям очень понятная граница) Получилось 6,5 часов... Это с полностью скипнутой вёрсткой. С точки зрения пользы, это кладезь: - и настройка авторизации next-auth (github и email), - и отправка email от @micro-courses.ru, - и интеграция с s3, и поднятие minio в локальном окружении, - и вариант реализации fsd в fullstack nextjs приложении, - и работа серверных экшонов вместе с react-query - и реализация e2e тестирования с next-auth (там оказалось нетривиально) Но, с точки зрения youtube, видео скорее всего не залетит. Всё же больно сложное и слишком не для начинающих. Да на самом деле и цели много просмотров набрать нет. В первую очередь, разрабатываю приложение. Заодно особо пытливым помогаю и опыт свой передаю. Благодаря этому получается совершенно уникальный контент. Надеюсь, зацените 👇 https://youtu.be/GgG3mi4Iqhw

Пришёл я тут на проект с оверинженирингом и перебором коплинга. Решил ещё раз вам напомнить про low coupling high cohesion. Думали бы все об этом чаще, я бы сейчас не онбордился 3 месяца в систему со средним уровнем абстракции кода 20 low coupling high cohesion – суть в противоречивости Быстро, качественно и не дорого. Вот несбыточная мечта рода человеческого. Но в самой сути этой тройки лежит противоречие, основанное на ограниченности различных ресурсов. Мы все чётко осознаём это противоречие и миримся с ним. Пишем костыли. Выделяем время на рефакторинг. Нанимаем сеньоров, вместо джунов Быстро, качественно и не дорого: выбери 2) Вот вся суть этого мира. А теперь давайте проанализируем принципы программирования с этой точки зрения. DRY – догма. Во многих случаях вредит KISS – догма. Во многих случаях вредит YAGNI – догма. Во многих случаях вредит SOLID – состоит из догм настолько, что многие не верят, что можно вообще написать что-то, следуя всем принципам Эти штуки нельзя рассматривать, как универсальные правила. Так как слепое следование приводит к перекосам и дисфункциям. Я рассматриваю эти принципы, как инструменты с ограниченной зоной влияния. Но среди всех принципов разработки есть парочка, которую я смело могу назвать универсальными принципами качественного кода (что это такое, можно будет как-нибудь отдельно обсудить) low coupling и high cohesion И люблю я их именно из-за того, что они противоречат друг другу. Очень легко доказать это, если возвести оба принципа в абсолют Абсолютный low coupling – это god object) Если нет связей между модулями, то и коплинга нет. Абсолютный high cohesion – когда всё приложение состоит из однострочных функций, которые выполняют супер атомарные операции. И организуют неразборчивую паутину связей Обе ситуации ужасны. И при этом невозможны, если учитывать оба принципа одновременно. God object невозможен, если мы думаем о high cohesion Перебор с декомпозицией невозможен, если мы думаем о low coupling Каждый из этих принципов не может быть реализован полностью из-за существования другого. И благодаря этому наш код стремится к среднему значению, в котором, по моему мнению, и находится зона "хорошего кода"

Борьба с головной болью Я всю жизнь мучался страшными головными болями. Где-то в 9 классе мой отец решил: хватит это терпеть,
Борьба с головной болью Я всю жизнь мучался страшными головными болями. Где-то в 9 классе мой отец решил: хватит это терпеть, и мне сделали полное обследование головы. МРТ, ЭЭГ куча врачей, денег и пару месяцев жизни... В результате ничего не нашли. Поставили ВСД (кто знает, тот поймёт) Пропил я месяц мельдоний и просто смирился. Всё усугубилось, когда я стал программистом. Но я привык так жить и ничего не делал. Недавно из рилса в инсте я случайно узнал причину. Банальная неправильная осанка. (Бляха муха, почему об этом не говорят на каждом шагу в программёрских каналах) Всю жизнь у меня был ноутбук и хроническое перенапрящение мышц, которые держат голову. И в этот момент началась борьба за осанку. Всё началось с покупки монитора. Так не приходится смотреть вниз и нагрузка уменьшается. Но это не решило проблему полностью. Я всё равно во время долгой работы скатывался в полулежачее положение. От этого недавно присоединились боли в спине, даже начало зажимать нерв (3 дня не мог встать) Контроль осанки, как и любое волевое действо, бесполезен. Поэтому я решил изменить обстоятельства. Купил ортопедический стул. Но и этого было не достаточно. Позиция на этом стуле очень высокая, и начал болеть грудной отдел, так как руки теперь были на весу. В результате купил себе стол на электроприводе и, наконец, идеально себе всё настроил Результат: 10 часов за компом – спина и шея в проядке. + приятная усталость во всём теле, так как все стабилизаторы равномерно нагружены

2023 – год преодоления внутренних границ Вместе с новым смыслом я вошёл заряженный в 2023. И то, что тут произошло, в одном п
2023 – год преодоления внутренних границ Вместе с новым смыслом я вошёл заряженный в 2023. И то, что тут произошло, в одном посте сложно описать) Я специально шёл на страх и некомфортные обстоятельства, чтобы открыть для себя возможности, которые раньше считал "не своим предназначением". Ставил цели для того, чтобы они давали мне энергию двигаться дальше, и жить всё более насыщенную и интересную жизнь. И сейчас, оглядываясь назад, весь 2023 год видится мне как одно сплошное преодоление моих внутренних границ: 1. Начал вести инстаграм – преодолел страх раскрывать свою личность на публику 2. Пошёл к психологу – смог закрыть энергетическую дыру в отношениях с женой 3. 90 дней записывал видео без перерыва – смог доказать себе, что могу быть ответственным 4. Смог выпускать "не идеальные видео" – преодолел внутреннего перфекциониста 5. Смог отказаться от запуска платформы "непрерывного обучения" – преодолел свой максимализм 6. Смог запустить платный курс – преодолел страх продавать 7. Первый раз в жизни отдохнул в отпуске – смог преодолеть свои установки и прислушаться к себе И ещё куча вещей, таких как преодоление страха критики, усталости, апатии, проблем в семье, с родителями и так далее. Раньше всё это я загребал под ковёр и игнорировал. Сейчас я это преодолеваю и становлюсь счастливее 🧘‍♂️

В жизни нет смысла - и это классно Судя по комментариям к прошлому посту, многие подумали, что если "жизнь бесмыслена", то эт
В жизни нет смысла - и это классно Судя по комментариям к прошлому посту, многие подумали, что если "жизнь бесмыслена", то это плохо. Но вот, что я чувствовал в момент этого осознания: Лежу на пустынном пляже в Анапе в октябре. Ноги в песке, мой взгляд направлен на бушующее штормовое море. Мне прохладно, но так спокойно. До меня правда нет никому дела? Я правда могу делать всё, что хочу? Я просто могу быть счастлив? Спасибо...🙏🏼 В этот момент, возможно, первый раз в жизни я почувствовал себя по-настоящему свободным.

2022 – год обретения нового смысла В 2022 передо мной встал большой вопрос: а куда дальше? Если до этого всё получалось играю
2022 – год обретения нового смысла В 2022 передо мной встал большой вопрос: а куда дальше? Если до этого всё получалось играючи, то сейчас требовались огромные усилия для дальнейшего движения. Стандартный путь разработчик -> тимлид -> СТО уже не казался таким радужным. Тут же всплыли мои старые экзистенциальные проблемки. А зачем мне это всё?) Может, моё предназначение в другом. И вообще, есть ли предназначение? В чём моя миссия? Чтобы принимать сложные решения нужно знать, для чего живёшь. А я не знал Я перенёс фокус с основной работы и ударился в поиски смысла. Найти мне его помогла щедрость. Если вкратце: я начал делать мобильное приложение для одного эзотерического фестиваля, и в команде организаторов бесплатно туда 2 раза за год съездил. Там и нашёл все нужные для себя ответы: 1. Смысла в жизни нет 2. Моя личность является результатом деятельности мозга 3. Моё ощущение жизни есть результат гормонального коктейля в моём мозгу Забавные выводы после фестиваля про эзотерику и духовность) Кому-то может показаться, что это достаточно удручающие выводы. Но мне стало проще. Самое главное, у меня появилась цель: гормоны счастья. И инструмент: личная ответственность. (Только я ответственен за свои гормоны)

2021 – встреча с внутренними ограничениями Это был год рассвета меня, как программиста. Я стал лидером React направления в не
2021 – встреча с внутренними ограничениями Это был год рассвета меня, как программиста. Я стал лидером React направления в небольшой outstaff компании. Нанимал людей, обучал их, сам активно разрабатывал, и очень даже успешно. На каких-то проектах как разработчик, а на каких-то как тимлид. Но в конце года начались проблемы. Нагрузка, которую я на себя взял, была не сопоставима моим возможностям. Но самое грустное было не это. Я упёрся в свои внутренние ограничения. Если у меня, как разработчика получалось всё легко и офигительно. То тимлид получился из меня такой себе. В общем, я словил нешутёвое такое выгорание в 2021. И в этом состоянии начался мой 2022.