Listen IT @listenit_channel Channel on Telegram

Listen IT

@listenit_channel


Здесь публикуем свежие выпуски Listen IT, обсуждаем технологии, инструменты IT и делимся лучшими практиками. Чувствуй себя как дома! ☕️🥪

Youtube - youtube.com/ListenIT_channel
Я.Дзен - zen.yandex.ru/listenit
Сотрудничество - t.me/ed_akimov

Listen IT (Russian)

Наш канал Listen IT создан для всех любителей технологий и IT. Здесь вы найдете свежие выпуски, обсуждения инструментов и технологий, а также лучшие практики в сфере IT. Мы стремимся создать атмосферу, где каждый чувствует себя как дома. Присоединяйтесь к нам, чтобы быть в курсе последних новостей в мире IT! Не забудьте заглянуть на наш канал на Youtube - youtube.com/ListenIT_channel, а также на Я.Дзен - zen.yandex.ru/listenit. Мы также открыты для сотрудничества, поэтому не стесняйтесь обращаться к нам по ссылке t.me/ed_akimov. Давайте вместе развиваться и узнавать все новое в мире IT!

Listen IT

15 Nov, 13:02


🎙И аудио-версия вдогонку

Listen IT

14 Nov, 13:05


📣 Не успели опомниться от HTMX, а я уже закидываю новое видео!

Автор написал статью, в которой выписал ответы на вопросы SQL, которые ему задавали на собеседованиях на Python-разработчика.
Так что в этом выпуске, но сжато по каждому пункту:
Преимущества NoSQL
ACID
Что такое нормализация
Что такое транзакция
Какие есть уровни изоляции
Блокировки БД
Масштабирование БД
Планировщик запросов

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

Listen IT

13 Nov, 07:00


🎙Чуть не забыл! Аудио-версия вчерашнего выпуска про HTMX.

Listen IT

11 Nov, 12:33


📣 Новое видео про HTMX уже на канале!

В нём узнаем:
Что такое HTMX
Чем он лучше MPA и SPA
Какие у него недостатки
Можно ли не учить React и переходить на HTMX

P. S. обещал выложить на прошлой неделе, но задержался - зато на этой неделе будет сразу второе видео со шпаргалкой по вопросам SQL. Интересно?

Listen IT

30 Oct, 09:02


🎙Продолжаю выкладывать аудио-версии старых выпусков с улучшенным качеством.
И сегодня на очереди коротенькое, но информативное видео про различия между REST и SOAP.

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

P. S. жду в комментариях того самого человека, кто будет кричать, что REST - это не обязательно HTTP) 🧠

Listen IT

23 Oct, 08:01


🔎 Следующее видео уже в монтаже - оно будет про HTMX.
Ну а пока работа движется, закину перевод интересной шпаргалки из поста на LinkedIn от Alex Xu - какой стек технологий обычно используется в микросервисной архитектуре.

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

▶️ 𝐏𝐫𝐞-𝐏𝐫𝐨𝐝𝐮𝐜𝐭𝐢𝐨𝐧
🔹 Определение API - устанавливает контракт между фронтендом и бэкендом. Для этого можем использовать Postman или OpenAPI.

🔹 Разработка - Node.js или React - это популярные фреймворки для разработки фронта, а Java/Python/Go для разработки бэка. Также нам нужно конфигурировать API gateway согласно нашему API-контракту.

🔹 СI/CD (Continuous Integration / Continuous Development) - JUnit и Jenkins используются для автоматического тестирования. Код упаковывается в Docker-образы и разворачивается (деплоится) в виде микросервисов.

▶️ 𝐏𝐫𝐨𝐝𝐮𝐜𝐭𝐢𝐨𝐧
🔹NGninx - классический выбор среди балансировщиков нагрузки. Cloudflare предоставляет CDN (Content Delivery Network - географически распределённую сетевую инфраструктуру).

🔹 API Gateway - мы можем использовать Spring Boot для гейтвея (сетевого шлюза), и использовать Eureka/Zookeeper для Service Discovery (служба, которая помогает сервисам динамически находить друг друга в сети).

🔹 Микросервисы разворачиваются в облаке. Тут у нас есть варианты: AWS, Microsoft Azure, или, например, Google GCP.

🔹 Кэш и полнотекстовый поиск - Redis тут будет стандартным выбором для кэширования пар ключ-значение. ElasticSearch используется для полнотекстового поиска.

🔹 Коммуникация между сервисами - для того, чтобы сервисы могли общаться друг с другом, мы можем использовать мессенджинговую инфраструктуру, например, с применением Kafka, либо использовать RPC.

🔹 Персистентность - мы можем использовать MySQL или PostgreSQL для реляционных БД, и Amazon S3 для хранилища объектов. Также можем использовать Cassandra для колоночного хранения данных, если нужно.

🔹 Управление и мониторинг - чтобы управлять таким большим количеством микросервисов, используются такие стандартные инструменты как Prometheus, Elastic Stack и Kubernetes.

Мне понравилась сводка, достаточно сжато технологии расписаны, есть что поизучать. Может, про что-то из этого видео записать, чего ещё нет на канале?

Listen IT

04 Oct, 07:01


🤫 А вот и новый ролик про уровни изоляции транзакций!

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

В ролике узнаем:
Что это за уровни изоляции такие и зачем они нужны
Какие есть уровни изоляции
Что такое "аномалии" и какие они бывают
Чем крут MVCC и зачем он нам
И, конечно, всё на примерах.

Статья полностью моя, ссылочку на Habr прикладываю, если кому хочется посмотреть.
Аудио-версия, как всегда, постом выше.

https://youtu.be/yVlCjzJAOOo

Про блокировки и дедлоки будем делать видео?

Listen IT

02 Oct, 06:54


🪫 Понимаю, что давненько не было никаких новостей, но, на самом деле, работа кипит: я написал отдельную статью по уровням изоляции транзакций в БД, потом переписал и дописал несколько блоков, чтобы там все было максимально понятно, записал аудио, перезаписал аудио, и вот половина видео уже закончена - на этой неделе очень постараюсь выложить. Работа, конечно, не щадит в последние недели, но что поделать. Пока посылаю только мем, но скоро будет неплохое видео - обещаю.

Listen IT

10 Sep, 09:02


🎙Продолжаю выкладывать аудио-версии старенького с улучшенным звуком.

На очереди одно из первых видео на канале - HATEOAS.
Это, кстати, высший уровень зрелости RESTful, как завещал отец РЕСТа Рой Филдинг.

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

1️⃣ Введение в REST API за 7 минут
2️⃣ Различия REST и SOAP за 4 минуты
3️⃣ Что такое Contract First подход за 4 минуты
4️⃣ Что такое Code First подход за 4 минуты
5️⃣ Что такое HATEOAS за 4 минуты

Listen IT

05 Sep, 06:53


Типы связей в БД. Нормализация

В предыдущих постах мы коснулись основных понятий БД и собрали ссылки на полезные материалы. Пора написать про типы связей и нормализацию.

Сущности (таблицы) в БД не существуют изолированно друг от друга: между ними устанавливаются связи. Для организации связи используются внешние ключи. Например, таблица Заказы может быть связана с таблицей Книги через поле book_id в таблице Заказы, значения которого берутся из поля id таблицы Книги.

Связи между таблицами бывают следующих типов:

1️⃣ Один-к-одному (one-to-one) – одной записи в родительской таблице соответствует одна запись в дочерней. Например, человек может иметь только один паспорт и паспорт может принадлежать только одному человеку. Этот вид связи используют, если не хотят, чтобы таблица БД "распухала" от второстепенной информации, однако для чтения связанной информации в нескольких таблицах приходится производить ряд операций чтения вместо одной, когда данные хранятся в одной таблице.

2️⃣ Один-ко-многим (one-to-many) – одной записи родительской таблицы может соответствовать несколько записей дочерней. Например, преподаватель может вести несколько курсов, но каждый курс может вести только один преподаватель. Это самая классическая связь для реляционных БД.

3️⃣ Многие-ко-многим (many-to-many) – каждый экземпляр одной сущности может быть связан с несколькими экземплярами другой сущности и наоборот. Всякую связь "многие–ко–многим" в реляционной базе данных необходимо заменить на связь "один–ко–многим" (одну или более) с помощью введения дополнительных таблиц. Например, студент может записаться на несколько курсов и каждый курс может иметь несколько студентов. Следует добавить новую таблицу Расписание, которое будет связывать таблицы Студенты и Курсы.


Нормализация данных

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

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

Нормализация базы данных выполняется с помощью набора правил. Они называются нормальными формами. Выделяют около 8-ми нормальных форм, но на практике используются первые три. Каждая следующая НФ дополняет предыдущую.

Три нормальные формы:

1️⃣ Информация в каждом поле таблицы является неделимой и не может быть разбита на подгруппы: нет повторяющихся строк и все атрибуты атомарны (простые типы данных)

2️⃣ У таблицы есть первичный ключ, а все остальные поля зависят от всего первичного ключа, но не от его части (если первичный ключ составной)

3️⃣ Все неключевые атрибуты зависят только от первичного ключа и не зависят друг от друга


📎 Материалы

📑 Статьи
1. Разбираем базы данных и язык SQL. (Часть 5 — связи и джоины) — статья на JavaRush про связи в БД с примерами
2. Связи между таблицами SQL — обзор Максима Гритчина про виды джойнов и связей в БД
3. Простыми словами про нормализацию + аудио- видео- ряд
4. Что такое нормализация базы данных — от merion academy
5. Как привести данные в форму — блог Практикума

Видео
1. Моделирование данных за 9 минут — про типы связей
2. Базы данных. 1,2,3 нормальные формы (10 минут)
3. Нормальные формы базы данных. Три нормальных формы, нормализация и денормализация БД

#бд

Listen IT

29 Aug, 07:03


📣 Наконец, видео про Web 3.0!

Обсудим:
Что такое Web 3.0
Какие ещё "версии" Интернета есть, и в чём они выражаются
Когда будет Web 3.0
Web 3.0 - это о крипте и NFT?
бонусом интервью с обсуждением Web 3.0 и перспективы перехода к нему

Аудио-версия выпуска, как всегда для ТГ-подписчиков, постом выше.

Listen IT

27 Aug, 09:59


🎙Пока я монтирую видео про Web 3.0, продолжу выкладывать аудио-версии старых выпусков, чтобы вы могли слушать их здесь с выключенным экраном в дороге.

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

А у вас прокси или VPN?

Listen IT

21 Aug, 08:59


🛠 Продолжаю выкладывать переводы постов-шпаргалок из LinkedIn от Alex Xu.

Сегодня обсудим 8 кратких советов по проектированию эффективного API:

🔹 Доменный подход (Domain Model Driven)
При проектировании структуры URL для RESTful API можно опираться на доменную модель.

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

🔹 Правильная реализация идемпотентности
Проработка идемпотентности при проектировании заранее может повысить надёжность API. Например, метод GET всегда идемпотентный, но POST часто нужно проектировать с учётом того, чтобы он стал идемпотентным.

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

🔹 Версионирование
Использование версий API при проектировании может упростить процесс обновлений.

🔹 Семантика в URL
Использование семантических URL позволяет проще понимать API, чтобы пользователи могли найти нужный метод в API-документации. Например, используем имя ресурса вместо глагола и множественные числа существительных (где это возможно).

🔹 Пакетная обработка
Используем слова "batch" / "bulk" в конце строки URL для обозначения массовых действий.

🔹 Query-параметры
Использование набора устоявшихся параметров в URL делает API более гибким. Например, пагинация, сортировка, фильтрация и др.

Listen IT

12 Aug, 07:51


📆 Так, что у нас по планам?

Уже записал аудио для выпуска про Web 3.0, но, как назло, не могу его пока смонтировать - программа для монтажа взбунтовалась и отказалась напрочь запускаться. Вот пытаюсь решать проблему, либо уже буду монтировать на другом компе.

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

Ну а пока ловите мем про Редис. Может, про Редис тоже будет интересно выпуск послушать?

Listen IT

05 Aug, 10:28


🚫 Итак, YouTube чувствует себя не очень хорошо.
Так что давайте не теряться:

👉 Телеграм - главный источник инфы и новостей по каналу. Плюс, здесь есть аудио-версии статей, которые ни от какого Ютуба не зависят;
👉 Я.Дзен - альтернативный канал, где есть все видео.

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

Listen IT

30 Jul, 07:51


📣 Транзакции в SQL!

Обсудим самую базу: что это, зачем это нужно (с примером), как открыть/закрыть транзакцию, и парочку других моментов.

Аудио, как всегда, постом выше.

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

Listen IT

22 Jul, 08:01


🗂 Новое видео про базовое понимание транзакций в SQL уже в работе! Ждём на следующей неделе.

А пока вот вам мем. А ты тот разработчик, который терпеть не может встречи, или тот зануда, который кидает звонки по любому поводу (лично я - второй😳)?