Dapzer Thoughts
82 subscribers
153 photos
6 videos
4 files
60 links
Download Telegram
Всем привет! К сожалению стримов до конца этой недели не будет в связи с моим отъездом на корпоратив в Москву.

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

Всем удачной последний рабочий недели и с наступающим новым годом )

#life
👍5🥰1
Всем привет. Ещё одно путешествие началось, пусть не большое , но важное , завтра впервые увижусь с коллегами и пощупаю, что такое корпорация. Этот год становится все насыщенней на события и это меня безумно радует )
👍4🔥4
Всем привет! Этот пост будет посвящён моему недавнему опыту изучения и написания бэкенда на Nest Js.

Начнём с того, как я пришел к написанию бэка и nest`e: текущий бэк на Movie Tracker'а реализован с помощью Next Js API Routes и имеет простые crud операций без каких либо проверок на наличие записей в базе данных и формат приходящих данных - этот вариант убивает всю масштабируемость, безопасность и к тому же появляется жесткая привязанность к Next Js, что для меня стало большой проблемой.

Перейдём к самому Nest'у. Выбор пал на него после попытки сконфигурировать проект на Fastify, которая закончилась не удачей и я с позором перешел на Nest, у которого есть стандартная конфигурация. К тому же как оказалось позже он диктует свою архитектуру и паттерны, что очень мне помогло т.к понимание того, как должна быть устроена архитектура серверного приложения.

Изученbе Nest'a я начал со статьи на хабре, по сути это перевод официальной документаций, после цикла данных статей я перешел к изучению глав TECHNIQUES и RECIPES на официальной документаций. На протяжений всего изучение теорий я пытался найти ей применение на практике. Как по мне самое главное это понять паттерн DI (Dependency injection) на котором строиться вся архитектура приложения. Так же могу порекомендовать изучить и попробовать паттерн Repository, который позволяет не завесить от текущей базы данных. На изучение всего выше перечисленного у меня ушло около недели, после чего я перешел к написанию самого приложения.

Начал я с проектирования новой базы данных, ибо текущая была сделана максимально плохо, список избранных фильмов и сериаалов лежал в сущности пользователя обычсным массивом, что ни есть хорошо и правильно XD. Благодаря проектированию базы данных я пересмотрел и изменил концепцию сайта, что позволит внедрить очень много крутых фич. По началу в роли базы данных выступал Mongo Db, для взаимодействия с которой я использую Prisma ORM, в последствий Mongo Db будет заменено на PostgreSQL (после переезда напишу о данном выборе пост).

Написание api я начал с реализаций базовых эндпоинтов по взаимодействию с сущностью медиа айтема (фильм в списке избранного в прошлой реализаций), после чего перешел к реализаций эндпоинта для медиа листа (новая сущность). Написания данных эндпоинтов далось в целом легко, после них я приступил к написанию логики автоматического обновления информаций о кинокартинах раз в 6 часов, для реализаций данного функционала мне пришлось использовать Task Scheduling, который при помощи @Interval вызывает нужную мне функцию с определённым интервалом, которая проходиться по всем медиа айтемам и получает для них данные с TMDB Api и сохраняю в базу данных. С написаний логики для OAuth 2.0 авторизаций мне помог Satont, его реализация оказалась невероятно крутой и понятной, за что ему огромное спасибо.

Итог: я очень кайфанул от написания бэкенда, он позволил посмотреть на свой сервис под другим углом, открыл глаза на то, как выглядит правильная серверная часть приложения, понять мышление бэкендеров (они считают, что фронтендер амёба, которой лучше вообще не доверять XD (без негатива)) и развеяться, ведь написания серверной части приложение совсем не похоже на разработку фронтенда. Nest Js проявил себя невероятно круто и оставил очень приятное впечатление. Появилось желание ещё по изучать и пописать бэкенд, в планах попробовать GoLang.

Отдельная благодарность Satont'у, который сопровождал меня на всём пути и реализовал авторизацию )

#programming #backend
🔥5
Новый день - новая встреча)
🤗7
Пришло время подводить итоги уходящего года. Он выдался невероятно продуктивным и насыщенным на разного рода события. За этот год удалось зарелизить личный проект, у которого уже есть небольшая база пользователей, найти крутую работу, стать тимлидом в стартапе, достичь 800+ фолловеров на твиче, познакомиться с кучей крутых людей и наконец встретиться лично с друзьями, которых знаю кучу лет.

Желаю всем продуктивного наступающего года, достижение поставленных целей, по большее радостных моментов и хорошенько отдохнуть на новогодних каникулах )

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

#life
👍41
Channel name was changed to «Dapzer Thoughts»
Всем привет, решил провести небольшой ренейминг, ибо данный канал уже толком не связан со стримами и посвящён большей жизни и моим размышлениям.

В последнее время я обленился и никак не могу дописать для вас пост, но я постараюсь сделать это до конца недели, иначе имеете полное право закидать какашками (

#life #media
👌6
Всем привет, а вот и пост посвящённый предновогодний поездке в Москву.

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

Первый мероприятием из запланированных был корпоратив. Придя в офис я немного растерялся из-за того, что меня начали знакомить с кучей людей, из которых полноценно я знал лишь человек пять. Спустя время, после проведённого тайного санты и когда моя сестра (она было моей спутницей на этом мероприятий) отошла по делам мне надоело сидеть афк в ожиданий какой либо движухи и я начал действовать, доёбываясь (в хорошем смысле) до людей. Данный момент изменил вечер на до и после, весь оставшиеся вечер мы собираясь с коллегами в небольшие компаний (мы назвали это кружком интровертов) и общались на абсолютно разные и интересные темы, которые вообще не затрагивали работу. Так незаметно пролетело около пяти часов и пришло время покидать офис и ехать домой ( Хорошенько попрощавшись с ребятами мы отправились домой с кучей крутых, положительных и не забываемых эмоций.

Данное мероприятие показало мне насколько круто и полезно общение с коллегами irl в неформальной обстановке и то, что я попал не просто в коллектив, а в семью <3. А так же я прокачал софт скиллы, понял, что нужно быть инициатором и самому создавать движуху. Ещё из плюсов, мою систру пытались захантить к нам, не важно кем )))

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

Оставшиеся два дня в Москве прошли не менее насыщенно, но расписывать я их не вижу большого смысла, в крадце: побывал на корпоративе у сестры, заехал на пару часиков в офис и побывал в гостях ещё у одних родственников, проведя круто вечер.

Данная поездка подарила не забываемые эмоций и зарядила меня энергией, но выжила как лимон в физическом плане)

#life
🔥6
Forwarded from Movie-Tracker News
Всем привет! Встречайте новое, большое обновление!

Список изменений:
- Добавлена возможность создавать списки для кинокартин и делиться ими по ссылке. Все ваши избранные кинокартины перенесены в список по умолчанию "Избранное".
- Добавлена возможность поиска и сортировки по списку.
- Сервис переехал на новый домен: movie-tracker.app. Прошлый домен по прежнему работает и переадресует на новый.

Впереди Вас ждёт много всего нового, данное обновление открывает нам ворота в будущие!
🔥2
Forwarded from Movie-Tracker News
Доброго времени суток! Встречайте новое обновление:

- Добавлена возможность скопировать кинокартину из одного списка в другой
- Меню изменения статуса было переименовано в "Управление"
🔥3👍1
Forwarded from Movie-Tracker News
Доброго времени суток!

Спешу сообщить, что была исправлена авторизация через браузер Safari.
🔥3😁1
Forwarded from Movie-Tracker News
Всем привет!

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

===

Added the ability to add a movie to your private list when viewing someone else's, public list
3
Forwarded from Movie-Tracker News
Доброго времени суток!

Добавлена возможность переноса кинокартины между списками

===

Added the ability to transfer a movie between lists
🔥1
Самая кликабельная страница на муви трекере из гугла...
🤣3
Forwarded from Movie-Tracker News
Всем привет!

- На странице персоны теперь отображаются ссылки на социальные сети
- На странице "Список эпизодов" сериала было добавлено отображение спецматериалов

===

- Social media links are now displayed on the persona page
- Specials display has been added to the show's Episode List page
🔥2
Forwarded from Movie-Tracker News
Всем привет!

Добавлена возможность возможность создать новый список из существующего публичного или приватного списка

===

Added the ability to create a new list from an existing public or private list
🥰3
Всем привет, стримов до 2 мая не будет в связи с поездкой в СПБ, желаю всем хороших выходных )
👍4
Всем привет, нужно ваше мнение, как вам новое название "Philmis" для movie tracker'a, хочу с новым дизайном провести и ребрендинг. Свои вариант вы можете присылать в комментарии
Anonymous Poll
16%
Нравится
31%
Неплохое
31%
Не нравится
22%
Устраивает, но хотелось бы другое
Всем привет! Я наконец распробовал Vue и Nuxt и хочу поделиться своим мнением о этих технологиях.

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

На изучение vue меня забайтил izede и luffibeng, за что им спасибо) Свой путь я начал с чтения официальной документации, которая для меня стала эталонной. Она плавно вводит в фреймворк, имеет хороший интерактивный курс и примеры кода.

Начнем с перечисления особенностей, которые показались мне наиболее важными.

Для работы с html во Vue есть такая прекрасная вещь как директивы, которые необходим для таких вещей, как: условный рендеринг (v-if), итерация по массиву или объекту (v-for), осуществлять двустороннее связывание с реактивной переменной (v-model) и т.д.

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

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

Стоит наверное обсудить реактивность и рендеринг. В Vue они намного продуманней и понятнее по сравнению с React, весь код выполняется 1 раз и всё, не нужно думать о том, нужно ли использовать useMemo/useCallback, за тебе это уже сделали и продумали всё так, чтобы не было лишних вычислений и рендеров. Что меня ещё удивило, так это то, что любая реактивная переменная экспортируемая из отдельно файла или компонента становиться глобальной и при этом не теряет реактивность, не пушка ли? Смотря после этого на работу с глобальным состоянием в React мне хочется плакать (

Далее перейдем к негативным и позитивным моментам, которые я успел встретить во время переписывания, доработки и редизайна Movie Tracker`a на Vue + Nuxt.

По началу я был скептично настроен к SFC (Single-File Components) т.к опасался, что будет тяжело и неудобно работать сразу с логикой, вёрсткой и стилями в одном файле. Но по прошествию времени я понял, что это очень удобная и практичная технология, которая ускоряет и упрощает разработку.

С самого начала меня поразило удобства и простота работы с ssr в Nuxt. Всё что требуется для запроса данных на сервере - использовать конструкцию await Promise в теле компонента, сравнивая с Next (v13) это небо и земля. Также забегая наперёд хочу отменить крутую экосистему модулей вокруг Nuxt, которая позволяет весьма просто и быстро настроить SEO и добиться хорошей индексации в поисковиках.

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

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

(1/2) #programming
🔥5