Telegram Web Link
👩‍💻 Основы работы с TypeScript, работа Sequelize Typescript — Бэкенд-разработка на Node.JS #4

#typescript #backend #вебинар

Привет! Это запись моего вебинара, в рамках курса по бэкенд-разработке в ИТМО. В этом видео продолжаем говорить об основах TypeScript, разбираем связку Sequelize-Typescript с Express.JS.

▶️ Смотреть на Дзен | Смотреть на YouTube

Плейлист на Дзен | Плейлист на YouTube

📖 Полезные ссылки:

Пример из видео: https://github.com/kantegory/express-sequelize-boilerplate
Репозиторий этого курса: https://github.com/kantegory/ITMO-ICT-Backend-2023
Ютуб: https://youtube.com/@dobryakov
Блог: https://blog.kantegory.me
Дзен: https://dzen.ru/dobryakov
Бусти: https://boosty.to/dobryakov
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥32🤔1
👩‍💻 Документация API, swagger, postman — Бэкенд-разработка на Node.JS #5

#документация #backend #вебинар

Привет! Это запись моего вебинара, в рамках курса по бэкенд-разработке в ИТМО. В этом видео разбираем средства для документации и тестирования API: swagger, postman.

▶️ Смотреть на Дзен | Смотреть на YouTube

Плейлист на Дзен | Плейлист на YouTube

📖 Полезные ссылки:

Пример из видео: https://github.com/kantegory/mentoring/tree/master/16_express_swagger_example
Репозиторий этого курса: https://github.com/kantegory/ITMO-ICT-Backend-2023
Ютуб: https://youtube.com/@dobryakov
Блог: https://blog.kantegory.me
Дзен: https://dzen.ru/dobryakov
Бусти: https://boosty.to/dobryakov
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1🤔1
👩‍💻 Принцип DI / IoC — Бэкенд-разработка на Node.JS #6

#solid #backend #вебинар

Привет! Это запись моего вебинара, в рамках курса по бэкенд-разработке в ИТМО. В этом видео разбираем принцип dependency injection и его использование на практике в express.

▶️ Смотреть на Дзен | Смотреть на YouTube

Плейлист на Дзен | Плейлист на YouTube

📖 Полезные ссылки:

Пример из видео: https://github.com/inversify/inversify-express-example
Презентация: https://docs.google.com/presentation/d/1yXC0oczjMlvYeFOKedzOLcct_C1FoLJl1kLXeXAu5DE/edit?usp=sharing
Репозиторий этого курса: https://github.com/kantegory/ITMO-ICT-Backend-2023
Ютуб: https://youtube.com/@dobryakov
Блог: https://blog.kantegory.me
Дзен: https://dzen.ru/dobryakov
Бусти: https://boosty.to/dobryakov
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥2😈1
👩‍💻 Микросервисы — Бэкенд-разработка на Node.JS #7

#микросервисы #backend #вебинар

Привет! Это запись моего вебинара, в рамках курса по бэкенд-разработке в ИТМО. В этом видео разбираем микросервисную архитектуру, говорим про отличия от монолитной и сценарии использования этих подходов.

▶️ Смотреть на Дзен | Смотреть на YouTube

Плейлист на Дзен | Плейлист на YouTube

📖 Полезные ссылки:

Статья от Atlassian: https://www.atlassian.com/ru/microservices/microservices-architecture/microservices-vs-monolith
Статья на хабре: https://habr.com/ru/company/raiffeisenbank/blog/346380/
Пример из видео: https://itnext.io/designing-microservices-with-expressjs-eb23e4f02192
Презентация: https://docs.google.com/presentation/d/1pwV0WHDG2QoV5GK067dd1nbq4_RDQUambryIfVjWQnw/edit?usp=sharing
Репозиторий этого курса: https://github.com/kantegory/ITMO-ICT-Backend-2023
Ютуб: https://youtube.com/@dobryakov
Блог: https://blog.kantegory.me
Дзен: https://dzen.ru/dobryakov
Бусти: https://boosty.to/dobryakov
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍21🤔1
👩‍💻 Работа с docker, docker compose, swarm mode — Бэкенд-разработка на Node.JS #8

#docker #backend #вебинар

Привет! Это запись моего вебинара, в рамках курса по бэкенд-разработке в ИТМО. В этом видео разбираем docker, docker-compose, говорим про swarm mode.

▶️ Смотреть на Дзен | Смотреть на YouTube

Плейлист на Дзен | Плейлист на YouTube

📖 Полезные ссылки:

Статья на хабре про docker swarm: https://habr.com/ru/post/659813/
Раздел документации про swarm mode: https://docs.docker.com/engine/swarm/
Статья про docker-compose: https://habr.com/ru/company/ruvds/blog/450312/
Раздел документации про docker-compose: https://docs.docker.com/compose/
Репозиторий Swirl: https://github.com/cuigh/swirl
Пример настройки приложения с docker swarm: https://www.youtube.com/watch?v=NZRfJORJACQ
Презентация: https://docs.google.com/presentation/d/1QhqPb2nmiwmzZ_e6pcAHAGHRHlep1i04OEmE8PsKRxA/edit?usp=sharing
Репозиторий этого курса: https://github.com/kantegory/ITMO-ICT-Backend-2023
Ютуб: https://youtube.com/@dobryakov
Блог: https://blog.kantegory.me
Дзен: https://dzen.ru/dobryakov
Бусти: https://boosty.to/dobryakov
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍21👌1
👩‍💻 Контейнеры в Firefox

Я пользуюсь Firefox уже более 3х лет. И он всё это время продолжает меня радовать. Уже больше полутора лет хочу рассказать вам об одной функции, которая кажется мне довольно удобной. Это контейнеры. С их помощью можно не только разделить своё взаимодействие с браузером на разные профили (работа, учёба, развлечения), но и забыть про режим "Инкогнито" в разработке, поскольку можно поддерживать сразу несколько активных сессий на разрабатываемом сайте, при этом не бегая между окнами, а всего лишь переключаясь между вкладками.

Контейнеры помогают мне практически ежедневно, потому что мультиаккаунтинг, встроенный в браузер — это незаменимая вещь. В случае же, если вам необходимо подменять User Agent, вы также можете задавать их внутри контейнеров и использованием плагина "User Agent Switcher and Manager". Не сказать, что это часто бывает полезно, ведь спецификация User Agent потихоньку уходит в прошлое, но иногда это может помочь при тестировании.

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

Знали про эту функцию? Находите ли вы её полезной? Пишите в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍31🔥1
📂 Друзья, мне тут принесли общую папку каналов про ИТ. Собрано много интересных тем, чтобы держать руку на пульсе: тематические мероприятия, аналитика, QA, нейронные сети, а также авторские каналы про мир больших данных и разработки.

😎 Добавляйте себе папку и будьте в курсе всего самого интересного и необычного в ИТ-индустрии!


❗️ Внимание: чтобы все работало, важно установить последнюю версию Telegram
👍41🔥1
🤔 Фраза дня: "Функциональные требования"

Вышло видео с моей лекцией для ДПО про оценку качества реализации программного средства. Рассказываю про характеристики из различных стандартов и стараюсь вывести из них нечто более близкое к привычной разработке посредством различных сочетаний этих самых характеристик.

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

На видео читаю эту лекцию уже в третий раз, но впервые в жизни трансляция шла из студии, так что строго прошу не судить :)

Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
👩‍💻 Полезные плагины для разработчика в Firefox

#подборка #firefox #плагины

Довольно давно думал сделать свою небольшую подборку плагинов, которые я активно использую при дебаге и разработке фронтенда, используя браузер Firefox. Месяц назад я уже рассказывал про контейнеры и user agent switcher. Сегодня хочу рассказать про совсем небольшие инструменты, которые могут немного облегчить вашу жизнь.

1) Font finder — https://addons.mozilla.org/ru/firefox/addon/font-inspect/

Расширение позволяет ткнуть в любой участок сайта и узнать какой шрифт там используется, что сильно упрощает процесс поиска и позволяет отследить тот ли шрифт по итогам применился к указанному селектору через CSS, или мы по какой-то причине используем фоллбэк/шрифт из фреймворка. Разумеется, это можно сделать и через dev tools, но этот плагин позволяет вам не копаться во всей CSS-внутрянке отдельной области, а сразу напрямую вытаскивает всё, что вам нужно знать.

2) Autocomplete control — https://github.com/kopach/autocomplete-control

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

3) Local storage editor — https://addons.mozilla.org/ru/firefox/addon/localstorage-editor/

Моя вчерашняя находка, надоело постоянно бегать в dev tools и копировать local storage с прод-версии на локальную, чтобы воспроизвести какое-либо ошибочное поведение, поэтому решил поискать решение для своей проблемы и оно нашлось. Интерфейс не самый красивый конечно, но со своими функциями справляется и этого мне достаточно.

4) Mind the time — https://addons.mozilla.org/ru/firefox/addon/mind-the-www.tg-me.com/

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

https://www.tg-me.com/davidobryakov/916
https://www.tg-me.com/davidobryakov/924
https://www.tg-me.com/davidobryakov/935

5) Video Speed Controller — https://addons.mozilla.org/ru/firefox/addon/videospeed/

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

Про расширения и плагины для vue/react упоминать в подборке большого смысла не вижу, потому что это довольно очевидные вещи.

💬 Пишите в комментариях, какими плагинами пользуетесь вы, будет интересно почитать :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥32
👩‍💻 Протоколы в python

#python #типизация

Листая хабр на предмет интересных статеек наткнулся на текст про протоколы в python. Эта заметка в меру корявенькая и некоторые вопросы рассматривает не совсем верно (а какие-то нюансы и вовсе не затрагивает), но спасибо ей, что побудила меня сесть и поразбираться в том, как это работает в действительности. Более удачная статейка с хабра по теме, если кому интересно.

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

📖 Читать на Teletype: https://blog.kantegory.me/python-protocols

💬 Буду рад, если поделитесь мнением в комментариях :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥21
⌛️ Наводим порядок в жизни

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

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

Но вернёмся на 4 года назад, тогда я выработал для себя ряд правил и очень много сил уделил самодисциплине. Основными правилами для меня были:

- публичность (хотя бы для аудитории из 5-7 своих друзей, к слову, так и начинался этот канал);
- наличие чёткого плана на день и неделю;
- строго отведённое время на работу над каким-то делом (доходить могло вплоть до того, что я мог оставлять задание на лабораторную не до конца решенным, оставляя его на следующий день);
- строго отведённое время на отдых (в это время я мог почитать, погулять, да и просто непродуктивно посидеть в интернете).

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

Чтобы не повторять прошлых ошибок, я решил, что не хочу вести слишком подробные списки дел, фиксировать все планы в календаре и стараться успевать всё на свете. Начал с малого:

- составление примерного плана на неделю каждое воскресенье (с оценкой пунктов по времени);
- фиксирование всех обязательных еженедельных мероприятий в календаре (например, поход в зал).

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

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

- режим сна и бодрствования (ложусь до полуночи, встаю в 7:15);
- обязательная суставная разминка каждое утро (очень хорошо помогает проснуться);
- раннее начало рабочего дня (8:30-9:00).

Таким образом, мне удалось добиться желанной спокойной работы с утра, вплоть до начала первых созвонов, что позволило раскидывать 80% задач в начале дня и оставшиеся 20% в течение дня. Также, мой рабочий день перестал растягиваться и самое позднее, когда я завершаю работу при текущем графике — 19:00 (это не значит, что я работаю более 10 часов в день, ведь у меня, как и у всех могут быть перерывы на обед/ужин/небольшую прогулку). Кроме прочего, суставная разминка оказалась очень полезна не только для того, чтобы проснуться, но и чтобы мышцы быстрее приходили в себя после тяжёлых тренировок. Великой радостью стало и отсутствие какой-либо работы на выходных, что позволяет мне сейчас сидеть и писать этот пост, а не пытаться пофиксить очередной баг в проде :)

💬 Делитесь своим опытом в комментариях, будет интересно почитать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥2❤‍🔥11
🕹 Подборка игр для изучения фронтенд-разработки

#подборка #frontend

В моём университетском курсе по фронтенду есть домашняя работа, целью которой является прохождение трёх игр (это уже почти классика):

1) Flexbox Froggy — https://flexboxfroggy.com/#ru

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

2) Grid Garden — https://cssgridgarden.com/#ru

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

3) Learn git branching — https://learngitbranching.js.org/?locale=ru_RU

Тренажёр по git, в котором довольно много теории, подающейся в игровой форме. Но учит эта игра не только базовым вещам, но и более продвинутому уровню (rebase, remotes, etc.). Проверено на личном опыте: все мои подчинённые джуны обязаны проходить эту игру, когда учатся правильной работе с git.

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

1) Grid Attack — https://codingfantasy.com/games/css-grid-attack

Игра в стиле мультяшного фэнтези на целых 80 уровней, в которых нужно защищать своего героя от атаки монстров путём определения корректных значений для различных свойств CSS Grid.

2) FlexBox Adventure — https://codingfantasy.com/games/flexboxadventure

Восьмибитная графика, приятные анимации и обучение CSS, больше тут добавить нечего. Лично мне — понравилось.

3) JSRobot — https://lab.reaal.me/jsrobot/

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

💬 Есть что добавить? Поделись в комментариях :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Новое свойство field-sizing или autoresize для textarea без костылей

#frontend #css

Во вчерашней подборке от reddit, увидел интересный пост про новое CSS-свойство field-sizing, которое позволяет <textarea> и <input type="text"> автоматически расширяться в зависимости от контента.

Автор треда говорит о том, что совсем скоро это завезут в Chrome Canary. Я покопался и на самом деле это свойство туда уже успели завести, по крайней мере, так было написано на chromestatus. Немного вчитался и обнаружил, как можно запустить Chrome Canary с включённым свойством, поскольку в chrome://flags оно пока недоступно (команда, работающая у меня на MacOS, вам надо заменить путь до Chrome Canary, самый простой способ узнать это — открыть в своей Chrome Canary chrome://version):

$ /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --flag-switches-begin --enable-features=CssFieldSizing --flag-switches-end --origin-trial-disabled-features=WebGPU


В данный момент Pull request с этим свойством уже принят в черновиках CSSWG на github.

Пример кода, который я накидал для демки:

<!DOCTYPE html>
<html lang="en">
<head>
<style>
textarea, input {
field-sizing: content;

min-height: 10px;
min-width: 100px;
}
</style>
</head>
<body>
<div>
<textarea></textarea>
</div>
<div>
<input type"text">
</div>
</body>
</html>
🔥8😍2❤‍🔥1
Практические советы для начинающих django-разработчиков

#django #python #backend

Около месяца назад стартовали новый проект на Django и так вышло, что на нём работают Junior+ и Intern в паре. Причём, все последние проекты Junior+ разработчика были на FastAPI, из-за чего Django он подзабыл. По мере разработки я собирал в заметках все советы, которые давал разработчикам на проекте.

Я решил собрать их все в одной статье, дополнив важными особенностями (там есть информация про docker, .env, settings и даже ссылка на наш шаблон). Вот наиболее полезные советы для новичков (на мой взгляд):

1) когда вы делаете поле ForeignKey, не называйте его model_name_id, лучше просто model_name, поскольку model_name_id в случае FK резервируется ORM под возможность получать именно id, а не инстанс модели целиком, что позволяет избежать лишних запросов к БД;

2) если вы напишите человекочитаемый verbose_name у всех полей для каждой модели - это сильно облегчит пользование админкой Django;

3) при написании представлений в Django старайтесь в названии представления отражать то, к чему оно действительно относится, также используйте нормальную форму, к примеру не DetailedModelName, а ModelNameDetailView;

4) старайтесь держать нейминг приложений согласованным, например, если вы назвали какое-то приложение в множественном числе, в то время, как все остальные названы в единственном числе, - это будет выглядеть неаккуратно;

5) если вы используете choices, вам следует завести их ключи свойствами класса модели, либо вынести их в отдельный класс, чтобы обращаться к константе, а не указывать конкретное значение.
🔥8❤‍🔥1
Спасибо, что были со мной в этом году!

Хотя и не сказать, что я достаточно часто делился с вами постами и видео, но обещаю, что в 2024м вас ждёт много интересного, планы, как всегда, наполеоновские.

В знак благодарности решил разыграть 5 годовых подписок на телеграм премиум среди вас, давно было интересно, как это вообще работает :)
👍83🔥3❤‍🔥1
This media is not supported in the widget
VIEW IN TELEGRAM
🔥231👍1
Есть ощущение, что раньше я никогда публично не подводил итоги года.

Не скажу, что в этом году появилось какое-то жгучее желание, но вот поделиться тем, что мы вместе сделали за год — считаю вполне можно.

Из важных наблюдений — в мою жизнь потихоньку вернулась систематизация к концу года. Максимализма поубавилось — редко нынче возникает желание сидеть и каждый день выдавать по посту среднего или низкого качества, но в данный момент уже на январь у меня готовится много интересного (и хочется верить, что тот жизненный опыт, который я получал на работе, пока не писал посты станет неплохим подспорьем).

Обещаю в 2024м перестать пропадать из публичного пространства и делиться с вами опытом, наблюдениями и интересными новостями значительно чаще, чем удавалось в 2023м.

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

Планы на 2023й у меня были довольно большие, но не могу сказать, что все из них по итогам были выполнены. Впрочем, это не главное. Могу сказать, наверное, что с головой уходил в работу, отчего времени и сил не хватало на всё остальное.

Обещаю себе, что с понедельника всё изменится. Удачно совпало начало года с началом недели. Тут точно у каждого любителя начать новую жизнь в понедельник — не получится отвертеться, как и у меня, надеюсь :)

Ну а кроме циферок активности в телеграме и на ютубе у меня есть и личные итоги, 2023 мне запомнился потому, что:

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

А каким для вас был этот год?

Всех с наступающим! 🎉
🎉7❤‍🔥3🐳1
2025/07/12 15:43:42
Back to Top
HTML Embed Code: