Logo
TGCATALOG
Каталог Подборки Блог
Backend - программисты

Backend - программисты

Backend разработчики.

Нет оценок
555
29.10.2026
555
29.10.2026
Нет оценок
555
29.10.2026
Безопасный переход через бот
О канале

Backend разработчики.

Подписчиков 3,717
Тематика Технологии
Язык Русский
Ссылка t.me/easy_backend

Также рекомендуем

Kekaton AI | Озвучка и клон голоса
Kekaton AI | Озвучка и клон голоса
Бот

AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.

Описание

Комьюнити backend-программистов: Python, Java, Golang, PHP, DevOps.

Последние посты

Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое XSS. Примеры. Как защитить приложение? XSS (Cross-Site Scripting) — это тип атаки на веб-приложения, при котором злоумышленник внедряет вредоносный скрипт (обычно JavaScript) в веб-страницу, которую просматривает пользователь. Это позволяет атакующему выполнять произвольный код в контексте браузера жертвы, что может привести к краже данных, угону сессий или изменению содержимого страницы. 🚩Виды XSS-атак 🟠Stored XSS (Хранимый XSS) Вредоносный код сохраняется в базе данных или другом постоянном хранилище. Например, пользователь вводит в комментарий ..., который сохраняется в БД и выполняется при просмотре комментариев. 🟠Reflected XSS (Отражённый XSS) Вредоносный код передаётся в запросе и немедленно отображается без обработки. Например, если строка запроса ?search=alert('XSS') отображается на странице без фильтрации, скрипт выполнится. 🟠DOM-based XSS Возникает, когда JavaScript на клиенте изменяет DOM, используя входные данные, не проверяя их безопасность. Например, если код document.write(location.hash); вставляет содержимое URL-хэша (#alert('XSS')) в страницу, скрипт выполнится. 🚩Последствия XSS Кража cookies и сессионных данных. Фишинг-атаки (изменение содержимого страниц). Выполнение произвольных действий от лица пользователя. Перенаправление на вредоносные сайты. 🚩Как защитить приложение от XSS 🟠Экранирование (escaping) выходных данных Используйте htmlspecialchars() (PHP), encodeURIComponent() (JS) или аналогичные методы для предотвращения исполнения HTML-кода. 🟠Фильтрация и валидация входных данных Проверяйте и ограничивайте вводимые пользователем данные (например, запрещайте ). 🟠Использование Content Security Policy (CSP) CSP ограничивает выполнение скриптов только из доверенных источников. 🟠HttpOnly и Secure cookies Флаг HttpOnly запрещает доступ к cookie через JavaScript, а Secure требует HTTPS. 🟠Не используйте `eval()`, `innerHTML`, `document.write()` Эти методы позволяют вставлять HTML и JavaScript без защиты. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое JSON? Это легкий формат обмена данными, который легко читается и пишется человеком, а также легко парсится и генерируется компьютером. Он используется для представления структурированных данных в текстовом формате и основан на подмножестве языка программирования JavaScript, но независим от него. JSON часто используется для передачи данных между сервером и веб-приложением в формате, который легко обрабатывается. 🚩Основные характеристики 🟠Простота JSON имеет простой и понятный синтаксис, состоящий из двух основных структур: коллекций пар "ключ-значение" (объектов) и упорядоченных списков значений (массивов). Это делает его легким для понимания и работы как для людей, так и для машин. 🟠Легковесность В отличие от более сложных форматов, таких как XML, JSON занимает меньше места благодаря лаконичному синтаксису, что делает его идеальным для передачи данных по сети, особенно в веб-приложениях. 🟠Язык-независимость Хотя JSON основан на синтаксисе JavaScript, он поддерживается практически всеми языками программирования. В большинстве современных языков существуют библиотеки для парсинга и генерации JSON, что облегчает его интеграцию в различные системы. 🟠Читаемость человеком JSON форматы легко читаются человеком благодаря своей структурированности и использованию простой текстовой нотации. 🚩Структура 🟠Объекты Представляют собой коллекции пар "ключ-значение", заключенные в фигурные скобки {}. Ключи являются строками, а значения могут быть любыми допустимыми типами данных JSON (строки, числа, массивы, объекты, логические значения, null). { "name": "John", "age": 30, "isStudent": false, "address": { "street": "123 Main St", "city": "Anytown" }, "courses": ["Math", "Science", "History"] } 🟠Массивы Представляют собой упорядоченные списки значений, заключенные в квадратные скобки []. Значения могут быть любого типа данных JSON. ["apple", "banana", "cherry"] 🟠Примитивные типы данных Включают строки, числа, логические значения (true или false), и null. { "stringExample": "Hello, World!", "numberExample": 42, "booleanExample": true, "nullExample": null } 🚩Использование JSON 🟠Передача данных между клиентом и сервером JSON широко используется в веб-разработке для обмена данными между клиентскими приложениями и сервером через HTTP-запросы, обычно с использованием методов GET или POST. 🟠Конфигурационные файлы JSON используется для хранения конфигурационных настроек в различных приложениях, поскольку его структура легко читаема и редактируема. 🟠Хранение данных В некоторых базах данных, таких как MongoDB, JSON используется как формат для хранения документов. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что знаешь о принципах программирования DRY? Это принцип программирования, который гласит, что информация или логика в коде не должны дублироваться. Каждый фрагмент знаний должен иметь одно, однозначное и авторитетное представление в системе. Этот принцип был введен в книге "The Pragmatic Programmer" Эндрю Хантом и Дэвидом Томасом. 🚩Аспекты 🟠Избежание дублирования кода Код должен быть написан так, чтобы не повторяться. Если одно и то же действие или информация используются в нескольких местах, они должны быть вынесены в одно место и использоваться повторно. 🟠Легкость сопровождения Изменения в коде нужно вносить в одном месте, что упрощает его сопровождение и уменьшает вероятность ошибок. 🟠Чистота и ясность кода Код становится более понятным и структурированным, что облегчает его чтение и понимание. 🚩Примеры применения 🟠Функции и методы Вынос общих операций в функции или методы, которые затем можно вызывать в различных частях программы. 🟠Модули и библиотеки Создание модулей или библиотек, которые содержат повторяющуюся логику и могут быть переиспользованы в различных проектах. 🟠Константы Объявление констант вместо использования "магических чисел" или строковых литералов в нескольких местах кода. 🟠Шаблоны Использование шаблонов в HTML, XML или других языках разметки для генерации повторяющихся структур. 🟠Конфигурационные файлы Хранение конфигурационных данных в одном месте, а не встраивание их в код. 🚩Плюсы ➕Снижение сложности Меньшее количество кода и дублирования упрощает понимание системы и снижает её сложность. ➕Улучшение сопровождения Легче поддерживать и обновлять код, так как изменения нужно вносить в одном месте. ➕Меньше ошибок Снижается вероятность ошибок, поскольку одно и то же изменение не нужно делать в нескольких местах. ➕Повышение производительности разработки Переиспользование кода ускоряет разработку, так как не нужно повторно писать уже существующий функционал. 🚩Примеры нарушений 🟠Дублирование логики Одинаковые блоки кода, выполняющие одну и ту же задачу, размещены в разных частях программы. 🟠Повторяющиеся данные Те же самые данные (например, настройки или конфигурации) хранятся в нескольких местах. 🟠Дублирование структур данных Одни и те же структуры данных определены в разных местах программы. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Расскажи об отличиях MVC от MVP? MVC (Model-View-Controller) и MVP (Model-View-Presenter) – это архитектурные шаблоны, используемые в разработке программного обеспечения для разделения логики приложения на отдельные компоненты. Хотя обе архитектуры помогают улучшить структуру и поддерживаемость кода, между ними существуют важные различия. 🚩MVC (Model-View-Controller) 🟠Model (Модель) Отвечает за управление данными и бизнес-логикой приложения. Она не знает о существовании View и Controller. 🟠View (Представление) Отображает данные, полученные от Model, и отправляет пользовательский ввод в Controller. 🟠Controller (Контроллер) Получает ввод от View, обновляет Model и выбирает, какое View должно быть обновлено. 🚩MVP (Model-View-Presenter) 🟠Model (Модель) Отвечает за управление данными и бизнес-логикой приложения. 🟠View (Представление) Отображает данные и передает пользовательский ввод Presenter'у. 🟠Presenter (Презентер) Получает ввод от View, обновляет Model и передает данные обратно в View для отображения. 🚩Основные отличия 🟠Взаимодействие View и других компонентов В MVC View взаимодействует напрямую с Model. В MVP View взаимодействует только с Presenter, а Presenter уже работает с Model. 🟠Уведомления об изменениях В MVC Model уведомляет View об изменениях напрямую. В MVP Model уведомляет Presenter, а Presenter обновляет View. 🟠Роль Controller и Presenter В MVC Controller отвечает за определение, какое View отображать. В MVP Presenter отвечает за всю логику взаимодействия между Model и View, а также за обновление View. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 В чем разница между SQL lite и Express SQL? Это две разные системы управления базами данных (СУБД), каждая из которых имеет свои уникальные особенности, применения и случаи использования. 🟠Архитектура SQLite Встраиваемая СУБД: SQLite - это библиотека, которая встраивается непосредственно в приложение. Она не требует отдельного сервера для работы. Без сервера: Работает без необходимости запуска серверного процесса, что упрощает установку и настройку. Файловая система: Все данные хранятся в одном файле базы данных на диске. SQL Server Express Серверная СУБД: SQL Server Express - это урезанная версия Microsoft SQL Server, требующая установки и запуска серверного процесса. Клиент-серверная архитектура: Клиенты подключаются к серверу базы данных через сеть. Разделенные файлы данных и логов: Данные и логи хранятся в отдельных файлах. 🟠Производительность и масштабируемость SQLite Легковесная и быстрая: Подходит для приложений с небольшими или средними объемами данных и низкими требованиями к многопользовательскому доступу. Ограниченная многопользовательская поддержка: Поддерживает ограниченное количество одновременных пользователей, так как блокировки осуществляются на уровне файла. SQL Server Express Масштабируемость: Подходит для приложений с высокими требованиями к производительности и поддерживает значительное количество одновременных пользователей. Многопользовательская поддержка: Обеспечивает управление многопользовательским доступом и параллельностью транзакций. 🟠Функциональные возможности SQLite: Основные возможности SQL: Поддерживает основные команды SQL, такие как SELECT, INSERT, UPDATE, DELETE. Ограниченные возможности: Отсутствие многих расширенных функций, таких как триггеры, хранимые процедуры, сложные типы данных и транзакции с несколькими заявлениями. SQL Server Express: Расширенные возможности: Поддержка триггеров, хранимых процедур, полнотекстового поиска, транзакций и других продвинутых функций. Ограничения по сравнению с полной версией: SQL Server Express имеет ограничения по объему базы данных (до 10 ГБ на одну базу данных) и по использованию ресурсов (до 1 ГБ ОЗУ и 1 процессор). 🟠Установка и развертывание SQLite: Простота установки: Не требует установки, просто включается как библиотека в приложение. Легкость развертывания: Так как данные хранятся в одном файле, перемещение базы данных сводится к копированию этого файла. SQL Server Express: Требует установки: Необходимо установить серверную часть, что может включать несколько шагов настройки. Администрирование: Требует определенного уровня администрирования для настройки безопасности, резервного копирования и восстановления данных. 🟠Случаи использования SQLite: Мобильные приложения: Часто используется в мобильных приложениях (например, Android и iOS) для локального хранения данных. Встроенные системы: Подходит для встроенных систем и IoT устройств. Прототипирование и тестирование: Удобен для быстрого создания прототипов и тестирования. SQL Server Express: Веб-приложения: Хорошо подходит для небольших веб-приложений и сервисов, особенно на платформе Windows. Настольные приложения: Используется в настольных приложениях, требующих мощной базы данных. Учебные цели: Часто используется в образовательных целях для обучения работе с SQL Server. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое IP? IP (Internet Protocol) — это основной протокол сетевого уровня, который используется для передачи данных через интернет и другие сети. IP отвечает за маршрутизацию и адресацию пакетов данных, обеспечивая их доставку от отправителя к получателю. 🚩Основные аспекты IP: Адресация: IP адресация обеспечивает уникальные адреса для устройств в сети, что позволяет им взаимодействовать друг с другом. Существует две версии IP адресации: 🟠Использует 32-битные адреса, что позволяет создать около 4,3 миллиарда уникальных адресов. 🟠Пример IPv4 адреса: 192.168.0.1 🟠IPv6 (Internet Protocol version 6): 🟠Использует 128-битные адреса, что позволяет создать около 340 ундециллионов (3,4×10^38) уникальных адресов. 🟠Пример IPv6 адреса: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 Маршрутизация: IP отвечает за определение пути для передачи пакетов от источника к назначению через сеть, включая множество промежуточных маршрутизаторов. Это позволяет передавать данные через различные сети и соединения. Фрагментация и сборка: IP может разделять большие пакеты данных на более мелкие фрагменты, чтобы они могли быть переданы через сети с различными ограничениями по размеру пакетов. Получатель затем собирает фрагменты обратно в исходный пакет. Пакетная передача: IP передает данные в виде пакетов. Каждый пакет содержит заголовок с информацией об адресации и маршрутизации, а также полезную нагрузку с передаваемыми данными. 🚩Основные функции IP: 🟠Адресация устройств: IP предоставляет уникальные адреса для каждого устройства в сети, что позволяет им идентифицировать и находить друг друга. 🟠Маршрутизация пакетов: IP определяет маршрут для пакетов данных через различные сети и маршрутизаторы до их конечного назначения. 🟠Фрагментация и сборка: IP разбивает большие пакеты на более мелкие фрагменты для передачи через сеть и собирает их обратно у получателя. 🟠Проверка целостности: IP включает контрольные суммы для проверки целостности заголовка пакета, но не обеспечивает контроль целостности данных. 🚩Преимущества IP 🟠Универсальность IP является стандартным протоколом для передачи данных в интернете и поддерживается всеми сетевыми устройствами. 🟠Гибкость IP может передавать данные через различные типы сетей и соединений. 🟠Масштабируемость IPv6 предоставляет практически неограниченное количество адресов для подключения новых устройств к сети. 🚩Недостатки IP 🟠Безопасность IP сам по себе не предоставляет механизмов для шифрования или аутентификации данных, что делает его уязвимым для атак. 🟠Отсутствие гарантии доставки: IP не гарантирует доставку пакетов, их последовательность или целостность данных, полагаясь на протоколы более высокого уровня, такие как TCP, для обеспечения надежности. 🚩Взаимодействие с другими протоколами IP работает в комбинации с другими протоколами, чтобы обеспечить полное взаимодействие в сети: 🟠TCP (Transmission Control Protocol): Работает поверх IP и обеспечивает надежную передачу данных, проверку ошибок и управление потоком. 🟠UDP (User Datagram Protocol): Также работает поверх IP, но не обеспечивает надежность, что делает его подходящим для приложений, требующих высокой скорости и низкой задержки, таких как потоковая передача и игры. 🟠ICMP (Internet Control Message Protocol): Используется для передачи диагностических и управляющих сообщений, таких как запросы ping. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое столп "наследование" ? Наследование — это ключевой принцип объектно-ориентированного программирования, позволяющий создавать новый класс (наследник), который заимствует свойства и методы существующего класса (родителя). Это способствует: 🟠Повторному использованию кода Общие функции и данные определяются один раз в родительском классе и могут быть использованы во всех классах-наследниках. 🟠Упрощению расширения функциональности Наследники могут добавлять новые свойства и методы или изменять существующие, не затрагивая код родительского класса. 🟠Созданию иерархий классов Помогает структурировать и организовать код в виде дерева классов, отражающего реальные отношения иерархии. class Animal { void eat() { System.out.println("This animal eats."); } } class Dog extends Animal { void bark() { System.out.println("The dog barks."); } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.eat(); // Наследованный метод dog.bark(); // Метод класса Dog } } Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Когда ROC AUC будет плохо определять качество классификатора ? ROC AUC (Receiver Operating Characteristic - Area Under Curve) является популярной метрикой для оценки качества бинарного классификатора. Однако, в некоторых ситуациях использование ROC AUC может быть неэффективным или вводящим в заблуждение. 🟠Сильно несбалансированные данные При сильном дисбалансе классов, где один класс существенно преобладает над другим, ROC AUC может давать завышенные оценки качества модели. Это происходит потому, что ROC AUC учитывает как истинно положительные, так и ложно положительные сработки, но при этом не всегда отражает способность модели предсказывать редкий класс. 🟠Различная стоимость ошибок Если ошибки различных типов (ложно положительные и ложно отрицательные) имеют разную стоимость, ROC AUC может неадекватно отражать качество модели. В таких случаях более подходящей метрикой может быть Precision-Recall Curve или специфическая метрика, учитывающая стоимость ошибок. 🟠Малое количество положительных примеров При малом количестве положительных примеров (класса 1), ROC AUC может стать менее надежной, так как небольшое изменение в предсказаниях может существенно повлиять на значение метрики. В таких случаях Precision-Recall Curve и PR AUC могут предоставить более надежную оценку. 🟠Нестабильность при малых выборках Может быть нестабильной и сильно зависеть от конкретного набора данных, особенно при небольших выборках. Это может привести к значительным колебаниям в оценках качества модели. import numpy as np import pandas as pd from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import roc_auc_score, precision_recall_curve, auc # Создание несбалансированного набора данных X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, n_clusters_per_class=1, weights=[0.99], flip_y=0, random_state=42) # Разделение на обучающую и тестовую выборки X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Обучение модели логистической регрессии model = LogisticRegression() model.fit(X_train, y_train) # Предсказание вероятностей y_scores = model.predict_proba(X_test)[:, 1] # Вычисление ROC AUC roc_auc = roc_auc_score(y_test, y_scores) # Вычисление Precision-Recall AUC precision, recall, _ = precision_recall_curve(y_test, y_scores) pr_auc = auc(recall, precision) print(f"ROC AUC: {roc_auc}") print(f"Precision-Recall AUC: {pr_auc}") Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое ACID? Это акроним, представляющий четыре ключевых свойства транзакций в системах управления базами данных (СУБД), которые гарантируют надежность и согласованность при выполнении операций с данными. Эти свойства необходимы для обеспечения целостности данных в многопользовательских и распределенных системах. 🟠Atomicity (Атомарность) Атомарность гарантирует, что каждая транзакция выполняется полностью или не выполняется вовсе. Если любая часть транзакции завершается с ошибкой, то все изменения, внесенные в ходе этой транзакции, отменяются. Это свойство обеспечивает целостность данных, предотвращая частичные обновления. Пример: Если транзакция состоит из двух операций (перевод денег с одного счета на другой), то обе операции должны быть выполнены успешно или ни одна из них не должна быть выполнена. 🟠Consistency (Согласованность) Согласованность обеспечивает, что транзакция переводит базу данных из одного согласованного состояния в другое согласованное состояние. Это означает, что все правила и ограничения, заданные в базе данных (такие как целостность ссылок, уникальность и т.д.), должны быть соблюдены до и после выполнения транзакции. Пример: В базе данных учетных записей баланс счета не может быть отрицательным. Транзакция должна гарантировать, что это правило не будет нарушено. 🟠Isolation (Изолированность) Изолированность гарантирует, что результаты выполнения транзакции невидимы для других транзакций, пока она не будет завершена. Это свойство предотвращает проблемы, связанные с параллельным выполнением транзакций, такие как "грязные" чтения, неповторяемые чтения и фантомные чтения. Пример: Если одна транзакция читает данные, то она не увидит изменения, сделанные другой параллельно выполняющейся транзакцией, до тех пор, пока вторая транзакция не будет завершена. 🟠Durability (Долговечность) Долговечность гарантирует, что после завершения транзакции ее результаты будут сохранены и останутся в базе данных даже в случае сбоя системы или потери питания. Это достигается путем записи изменений на диск и использования механизмов резервного копирования. Пример: После успешного выполнения транзакции, фиксирующей покупку товаров, информация о покупке останется в базе данных, даже если система сразу после этого выйдет из строя. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Динамика подписчиков
+-0.9% за 30 дней
Текущие
3,717
Месяц назад
3,752
Средний рост
+-1 / день
Обновлено
1 день назад

Отзывы о канале Backend - программисты

Авторизуйтесь, чтобы оставить отзыв

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

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Loading
Переход на светлую тему
Главная Каталог Подборки Блог Вход