Евгений Паромов
3.71K subscribers
86 photos
8 videos
164 links
Автор сообщества https://paromovevg.ru/evolution-community

Пишу о грандиозных планах изменения системы IT образования.

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

Я: @paromovevg
Download Telegram
Вот, что мне не нравится в effector

Я долго не касался темы effector в контенте, так как не было достаточного опыта взаимодействия с ним.

Но недавно столкнулся со средней кодовой базой, которая активно переписывалась на effector последний год.
И разобравшись в ней, я смог сформулировать, что мне не нравится в effector

Но начну с хорошего:
В эффекторе есть идея, которая мне очень нравится – эвенты выделены, как сущности

Это позволяет строить инверсию зависимостей (управления). И по этой причине на effector просто писать по fsd.
// Эвент определяется в месте где его вызвают
export const buttonClicked = createEvent();
export const Button = () => <button onClick={() => buttonClicked()}>text</button>

// В любом месте можно на него подписаться
$counter.on(buttonClicked , (count) => count + 1);


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

Effector своей философией пытается всё "поджать" под себя.

Ну то есть. Из-за обилия инверсии (эвент, стор и реакция на эвент – это всегда разные сущности)
Писать правильно на effector очень сложно.

Поэтому написание на effector требует следованию жесткого гайдлайна. Иначе будет дикая лапша, в которой невозможно разобраться. И насколько я понимаю, это признают даже самые ярые поклонники эффектора.

А как раз этот гайдлайн максимально "категоричный"

В речи фаната effector вы обязательно услышите утверждения:
1. Нужно отделить модель от отображения. Иначе говнокод
2. Бизнес логики не должно быть в ui
3. Ты должен писать бизнес логику так, чтобы можно было убрать react и заменить на условную консоль
4. В хуках не может быть никакой бизнес логики, так как это view слой
5. Бизнес логика – это любая работа с данными, которая не завязана на отображение
6. Effector – идеальный инструмент для описания сложной логики. На хуках только кнопки красить

Я
с этими тезисами не согласен. Но на выражение моего мнения потребуется сильно больше одного поста.


В результате этих утверждений получается следующее:
1. Все hook first библиотеки в топку. Так как это привязывает логику к отображению. Мы должны всё перевести на effector
2. Запросы на хуках в топку – это бизнес логика
3. Локальное состояние в топку – это тоже бизнес логика. А бизнес логика должна быть вне компонентов

Результат:
1. Всё становится глобальным состоянием. Сложно переиспользовать код. Нужно писать фабрики, а это ещё сложнее, чем чистый эффектор
2. Effector заполняет собой всё пространство и вытесняет всю React инфраструктуру, заменяя ее effector инфраструктурой. А что нет в effector, приходится писать велосипеды из хлебного мякиша
3. Всё в effector – инверсия зависимостей. Так как по версии effector вся работа с данными это бизнес логика - всё приложение должно быть на effector. Теперь даже самые простые компоненты становятся сложными.
4. Да, сложный асинхронный флоу можно описать красиво. Но обычно сложного в приложениях не так много.

В результате, код написанный по всем канонам effector мне читать и модифицировать сложнее, чем 3000строчные компоненты вчерашнего джуна. (В этом же проекте есть не отрефакторенные места)

Зафиксируем мое мнение на этом моменте. Мне еще предстоит долго работать с этой кодовой базой. И я не стесняюсь переобуваться. Поживем увидим 🤌🏼

И забавное наблюдение напоследок. За последний год я встречаю уже не первую историю, как один человек затащил effector, а потом всем он не нравится. Но выпилить либо слишком долго, либо сложно 🫠
👍267🥴5👎4😱2🥱2👀2
Самый полезный видос, который никому не нужен

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

К сожалению, я в это упоролся последний год и совсем забыл про свою любимую часть блогерства. Открывать людям новые горизонты. И расширять сознание

Но в этом видео я решил вернуться к корням.

Вы слышали, что такое DSL?

Если нет, то вы скорее всего считаете что html – это не язык программирования)

Но, на самом деле, html – это самый что ни на есть язык программирования. Только созданный не для всего подряд, а под специфическую задачу. Такой Domain Specific Language

А что если я вам скажу, что вы можете добавить на свой сайт DSL всего за 30 минут.

Типа запилить свой html, но не для описания форматированного текста, а, например, для любой другой задачи.

Вы спросите: "А нахрена?"

А я вам отвечу:
Следующий раз, когда вы будете делать админку и пилить какой то сложнючий интерфейс для 3,5 пользователей – подумайте. А может быть им проще будет просто описывать это всё текстом, а не муторно натыкивать из интерфейса.

Пример такого был у меня недавно. На проекте поставили задачу создать редактор сегментов для фильтра с условиями.

И вот ты сидишь и программируешь блочный редактор булейвой логики. Который удобным сделать почти не возможно, и оценка на него несколько недель.

А, возможно, проще было бы просто сделать для этого DSL?

В общем, советую посмотреть этот видос всем, кто хочет развиваться и придумывать нестандартные решения.

Я как-то раз придумал, как одним техническим решением ускорить релиз проекта на несколько месяцев. До сих пор на собесе всем это рассказываю. И до сих пор прохожу все собесы с первого раза)
🔥49👍32💊1
Как завернуть в Docker vite приложение

Я редко рассказываю про отзывы и пользу сообщества для участников. Возможно, потому что мне не очень интересно было читать отзывы у других и я этим не парюсь.

Но недавно была прям показательная ситуация.

В сообществе есть воркшоп, о котором я не рассказывал – Как докеризировать Vite приложение.

Там я рассказываю, почему писать Dockerfile должен разработчик, а не DevOps. Как правильно это делать, как оптимизировать размер имеджа и скорость сборки.

А ещё я там рассказываю, как можно изменять переменные окружения в уже собранном имедже Vite приложения.

Последний момент не очевидный, так как переменные окружения в Vite приложении записываются в бандл во время сборки, и во время запуска контейнера их уже вроде как не изменить. Что очень не удобно для DevOps

Решение, на самом деле, простое. На запуск контейнера можно заменять значения переменных окружения в уже собранных js файлах. Я показал это решение вплоть до исходников на воркшопе. + Как решить проблему с кэшированием, которая может тут появится

И вот на днях созваниваюсь я с одним участником сообщества, а он мне рассказывает:

"Стала мне тут задача написать Dockerfile для проекта. Я вспомнил про твой воркшоп. Просто взял из Miro код, и всё завелось! Особенно было полезно как раз про переменные окружения. Так как совершенно не очевидно, как это делать.
В общем, не знаю, сколько это бы сам делал"

Вообще, от воркшопов сообщества много таких отзывов. Одни затаскивают код JWT авторизации c рефрешем, другие ролёвку, третие oauth, четвёртые форм билдер.

Это меня очень вдохновляет. Приятно понимать, что мои знания упрощают жизнь множества разработчиков (а не только усложняют кучей часов сложного глубокого контента 🫠)
148👍22🔥18
Пора признавать ошибки

2 года назад мы с женой решили переехать в Подмосковье из Архангельска. Собрали все вещи, заказали машину, перевезли котов. Прожили там ровно 2 недели и поняли – это была ошибка. Не разбирая коробки, просто отправили их назад. И уже 2 года мы живём в Архангельске и никуда не собираемся.

Вы спросите: "Как так, заранее подумать не могли?" Нет, думаю, что не могли.

Знаете ощущение, когда выбор как будто очевиден. Ну как это тебе может быть хорошо в холодном городе у Белого моря, когда половина семьи уже переехала, а ты молодой и амбициозный. Все вокруг говорят "Пора валить" и в голове просто нет другого варианта.

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

И многие в этот момент начинают делать всё, чтобы не признавать своей ошибки. Так много ресурсов потрачено. Всё что ли зря?

Но мне тогда хватило смелости признать свою ошибку, и вернуть всё обратно. И что иронично, тот проект, из-за которого мы тогда решили вернуться, тоже оказался большой ошибкой)

В общем, я снова работяга

Ровно через год после того, как я ушёл с работы, я принял новый оффер. Круг замкнулся.

Я не блогер. Я не хочу жить на деньги от продажи курсов/ рекламы. Я хочу создавать it продукты.

И мне совершенно не жалко потраченного времени и ресурсов!

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

Так и тут

Эти кризисы, депрессия, дичайший стресс и проблемы со здоровьем были не зря.
Это достойная плата за чёткое осознание своего призвания.
295👍32🔥8😱5👎2😁2
Что будет с сообществом

Первое, что хочу рассказать, это будущее сообщества.

Всё же люди на меня положились и ещё вчера покупали подписку на целый год.

Сразу скажу – я не собираюсь закрывать сообщество. Просто наконец из основного источника заработка оно станет способом поделиться своей экспертизой и местом, где можно разрабатывать совместные проекты

Изначально у меня была миссия: создать ресурс для развития опытных разработчиков.

Но вмешалась банальная правда: хочешь кушать – извольте делать трафик
И вместо стройной системы, построенной на идее, я начал метаться. "Ой, деньги кончаются, надо делать курс по React"

И получились то в итоге классные и полезные курсы, но я потерял в этом самое важное – управляющую идею.

Это жесть, как меня сломало, на самом деле. Я человек идейный и мне было больно. Больно видеть, как вместо стройного дерева и роадмапа, растёт хаотический набор тем, разбросанных на доске

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

А ещё я начал терять вдохновение.

Сложно с энергией рассказывать решения проблем, с которыми ты не сталкивался уже год. Помню как меня дико бомбило с useEffect driven development на последнем проекте. Я был готов за это убивать.

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

Либо я возвращаюсь в разработку, либо становлюсь просто блогером и отказываюсь от претензии на эксперта.

Представив второе мне стало тошно. Эта тошнота послужила поводом задуматься.

А реально ли я хочу этого будущего? Банально представив себя через 2-3 года, я не захотел туда.

После этого осознания начался сложный и долгий процесс осознания своей ошибки. Который и привел к тому, что я уже 2 месяца фултайм тимлид…
4🔥93👍3421🤝7🤣4👎1💊1
Как же я недооценивал постоянство

Весь год до этого я начинал рабочий день когда хотел:
– Хочу пойду в ресторан на завтрак, а записывать видос буду до вечера.
– Хочу утром чуть поработаю, днём прогуляюсь и вечером доработаю. А может, наоборот, начну с 6 утра что-то записывать.
– Хочу буду в выходные работать, а по будням отдыхать.

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

Но в результате получил только стресс и постоянные перепады энергии!

Уже месяц я начинаю работу в 10, а заканчиваю в 18. По сообществу делаю дела с 20 до 22. По будням работаю. На выходных отдыхаю.
Кушаю 6 разовые готовые рационы. Моя жизнь стала похожа на день сурка и...

И мне наконец стало хорошо!

Хосподи. Работает – не трогай. Эффект Линди во всей красе
Не зря результатом всей рыночной экономики за последние века стал 5 дневный режим по 8 часов + хобби. Потому что так эффективно!

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

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

Это не значит, что всем это будет так же полезно. И что у меня ничего не изменится в будущем.

Факт в другом: Не переоценивайте свободу. Свобода – это не только плюшки, но и лишний стресс.
И не факт, что в вашем случае плюшки перевесят)
1🔥68👍187👎4🥱4😁1👌1💯1🍌1
Инфоцыганин?

Читаю я тут комментарии к прекрасному видео Ильи Климова, а там пишут:
«Норм был Евгеша, да инфоцыганином стал»

Меня это так до глубины обидело... Но потом думаю: человек имеет право так думать.

Когда я уходил с работы, чтобы погрузиться в блог, я даже не думал про деньги.

Идея была простая. У меня так много в голове всего, а если я буду пару часов после работы записывать, 10 лет буду это всё рассказывать.

А что если всё время тратить на блог?
Сколько же всего запишу, ууууууухххх

Реальность оказалась не такой. Жить, когда количество денег не стабильно – крайне стрессово. Из-за стресса начались проблемы. И моя возможность записывать контент всё уменьшалась. А из-за оторванности от разработческой рутины и вдохновение начало снижаться.

К лету поймал себя в около нулевой эффективности. И принял решение вернуться на работу за вдохновением и душевным покоем.

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

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

Новых идей и тем для контента копится просто целый горшочек. Надеюсь, вы растёте вместе со мной. И тот контент, который дальше будет в моем канале, как раз поможет вам в росте из рядовых кодеров в лидов, архитекторов и СТО.

Всем спасибо, кто переживал, куда я пропал. Постепенно возвращаюсь, но в этот раз без наполеоновских планов. Пора становиться взрослее и учиться важному для лида навыку: отвечать за базар
3🔥109❤‍🔥2322👍17🤝2🥰1🥴1😴1
Я не развёлся с женой в этот кризис только благодаря психологии.

За этот год у меня было много сессий. И я на себе ощутил, что это не просто выкачка денег, а действительно меняющая жизнь практика.

Мне захотелось написать серию постов о том, как психология работает. (В большей степени тут про гештальт терапию)

И чтобы было понятнее, решил провести аналогию с разработкой по и вайбкодингом.
2👍297🔥3
История про бездумный кодинг

Вот навайбкодил ты себе приложение
. Всё хорошо. Ты потратил мало сил, оно работает и приносит пользу.
Ты просишь нейронку добавлять функции, и она справляется. Всё хорошо...

Но в один прекрасный момент всё ломается. Просто белый экран. Сколько нейронку не проси – ничего не меняется.

Что делать?

1. Можно просто выкинуть это приложение и начать делать заново...
Но какой шанс, что не повторится все снова? Да крайне низкий.

2. Можно попросить совета у знакомых. Посмотреть видосы в интернете. Помолиться...
Есть шанс, что поможет? Да, конечно. А может хуже сделать? Да легко.

3. А можно пойти сложным, но единственно правильным путём на долгой дистанции.

Взять себе преподавателя, книгу, курсы, и начать изучать прогу.

После долгих занятий и смотрений в код, ты начнёшь понимать, что там происходит. Даже как-то модифицировать его.

И в какой-то прекрасный момент ты начнёшь понимать, а что вообще сломалось.

Причём это знание будет со временем только углубляться. Ах, да сломалась вот эта страница, Ага, этот виджет. Ага, вот эта функция. Ага, вот эта строчка.

И после долгого и упорного труда, ты просто берёшь и правишь 1 строчку.

И все! Белый экран больше не белый. Приложение работает. Но самое главное, что в следующий раз, когда что-то сломается, ты сможешь найти ошибку и точечно её исправишь!
👍375😁5🔥3
Расшифровываю аналогию.

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

2. Белый экран - Кризис. В какой-то момент что-то меняется. То ли снаружи, то ли внутри. Но уже жить как прежде невозможно.
Либо депрессия, Либо все бесит, Либо жена бесит, Либо работа... Но самое главное, что прям всё плохо. Может даже смысл в жизни теряется

3. Выкидывание результата вайбкодинга - Выкидывание неугодных частей жизни.
Бесит жена? Разводись.
Бесит работа? Уходи.
Бесит друг? Не общайся.
Бесит страна? Уезжай.
А какой шанс, что с новой женой/ страной будет лучше? Думаю, вы понимаете...

4. Спросить у знакомых, всякие волшебные промпты — Советы от родителей, друзей, чуваков из инетика о том, как справляться с кризисами на работе/в отношениях/с собой.

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

5. Сложный путь с изучением проги — изучение психологии.

Единственный способ реально справиться с кризисом - понять первопричину кризиса (строчку кода с багом)

Но чтобы эту причину найти, нужно изучить себя (кодовую базу).
Но чтобы разобраться в себе, нужно научиться узнавать из чего твоё сознание состоит. Эмоций, Чувств, Установок, Проекций, Интроекций и кучи всего ещё. (Изучение языка программирования)
После можно научиться управлять своим сознанием. Через практики, рефлексию, точечное изменение обстоятельств жизни (научиться вносить изменения в код)

В процессе этого изучения, твоё "Всё плохо" будет уточняться. Оказывается, не устраивают отношения с женой. Потому что не безопасно.
Не безопасно из-за чувства вины. Чувство вины из-за "Комплекса бога". А комплекс бога из-за страха показать слабость перед людьми (Поиск проблемы от экрана до строчки кода)

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

И вот вместо развода ты просто учишься быть слабым, не идеальным. Замечаешь, что ты не один, что тебя поддерживают. И мир меняется на 180 градусов... (Вместо выкидывания всего приложения, изменения в одной строчке)

И можно жить дальше. Кризис проходит. Жизнь начинает радовать.

Но теперь, если что-то опять пойдёт не так, найти и справить проблему будет намного проще 🙂
👍3718🔥7
А где тут психолог?

А психолог – это твой учитель на этом пути. Вместе с ним ты изучаешь себя. Эмоции, Опыт, Установки. Он показывает другие способы взаимодействия с сознанием. Создаёт новый опыт

- И поэтому 1,2,3 сессии не работают! Это как хотеть научиться прогать после одного урока.
- И поэтому самая главная работа происходит между сессиями! Если не программировать, а только смотреть уроки, ничего в тебе не изменится
- И поэтому часто результаты не заметны! Легко ли заметить, что ты стал лучше кодить? Нет.
Но когда в результате обучения ты можешь сделать то, чего раньше не мог – это не забываемо

Психолог – не врач, а учитель!

И как в обучении: результат терапии 50 на 50 зависит как от психолога, так и от ученика.

Психолог раз в месяц на отъебись — деньги на ветер
1👍46👎9🔥73😐2
Где место человека в AI-веке

С самого начала карьеры разработчика я заметил: просто работающего кода недостаточно. Важно, чтобы он был поддерживаемым, понятным, расширяемым.

Сильно углубился в это.
Как человек понимает код.
Как сделать его понятнее. Записывал курсы, разрабатывал фронтенд-архитектуру…

А потом случились нейронки.

И меня это сбило. А нужно ли теперь то, что я нашёл? Что могут нейронки? Где останется место человеку? Слишком многое поменялось, чтобы это игнорировать.

И тут я замер. Пошёл работать. Начал активно использовать нейронки и щупать их границы.

И вот выходит Claude Fable. Я его пробую и… норм. Задачи, которые хорошо делал опус, делаются чуть лучше. Но задачи, с которыми опус не справлялся, всё так же не делаются.

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

И в чём эти границы? Думаю — в контексте.

Человек всю жизнь накапливает опыт. Это создало его личность, мотивацию действий. А самое главное — опыт взаимодействия с реальностью.

Нейросеть же каждый раз всё забывает. Да, ты можешь дать ей текстовую память. Но это как в фильмах, где герой каждое утро теряет память и живёт по дневнику. Полноценная длительная работа невозможна.

Поэтому вы даёте задачи нейронке, а не она вам. Она нихрена не знает про релиз две недели назад, про то, как ругался CEO, и про то, как год назад кафка упала из-за шторма ребалансов.

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

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

И на этом месте любой, кто много кодит с клодом, скажет: ПУПУПУ.

Ведь чем больше ты пытаешься контролировать, тем медленнее работа. В системе «AI + человек» ограничение — это человек. И его скорость восприятия.

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

Ведь если заставить нейронку писать понятный простой код и понятные простые доки — можно и контроль не потерять, и делать много.

Но чтобы этим управлять, нужно разобраться: почему вообще нейрокод и доки так сложно читаются? Об этом — в следующем посте.

P.S
Решил делиться актуальным, а не пытаться как то плавно вернуться в блог. Поэтому так резко, и без рассказов, где пропадал полгода)
3165🔥34💯13👍7
Почему понимать нейронки так сложно

Для начала — а что вообще такое код, доки и любой другой выхлоп нейронки? ЭТО ТЕКСТ.

А как мы понимаем текст? Мы читаем слова и находим в них смыслы (абстракции), из которых уже получаем информацию.

Простой пример. Популярная фраза у нас в городе: «Через Ширшу в Маймаксу».

Вам смешно? А мне да)
Потому что я знаю, где Ширша, а где Маймакса.

Конечно, в реальности всё сложнее. На понятность влияет и различие смыслов, и «кошелёк Миллера».

Но если вы слов не знаете — текст не прочитать.

А теперь возвращаемся к нейронкам.

Когда вы пишете свой код и доку — вы используете известные вам термины.

Когда нейронка пишет код и доку — она использует не известные вам термины.

РАУНД!

И это не шутка, это на самом деле секрет работы с нейронками. Просите её объяснять каждое слово, которое вы не понимаете. И всё резко встаёт на свои места.

И оказывается, что доки нейронка пишет очень понятные. Только не для вас)


Я как понял это, начал думать: а что делать? Я-то пойму слова, которые нейронка имела в виду, а все остальные в команде?

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

И каждый раз, когда я читаю док нейронки и задаю вопрос «а что это за фигня?», мы создаём новый док.

Пока этот подход экспериментальный. Но результаты меня уже поражают: вместо простого словаря я получаю целый «фреймворк» по работе с LLM.

Когда закончу эксперименты — расскажу о результатах. Но саму идею я вам тут передал)
2👍61🥱43💯3