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 - программисты
🔒Открыть пост
и посмотреть медиа
🤔 В чём разница между сцеплением и связанностью? Это два ключевых свойства модульной архитектуры программного обеспечения, которые помогают оценить качество кода и архитектурных решений. 🚩Отличия 🟠Сцепление (Coupling) Описывает степень зависимости одного модуля от других. Высокое сцепление означает, что модули сильно зависят друг от друга, что затрудняет их изменение, тестирование и повторное использование, так как изменения в одном модуле требуют изменений в зависимых модулях. Идеально стремиться к слабому сцеплению, чтобы модули были максимально независимыми. Это позволяет изменять или заменять один модуль без необходимости изменения других. 🟠Связанность (Cohesion) Описывает, насколько тесно связанные и объединённые общей задачей элементы внутри одного модуля. Высокая связанность означает, что все функции и данные модуля логически связаны и выполняют одну задачу. Это упрощает понимание кода и делает модуль более автономным.Высокая связанность считается хорошей практикой, так как модуль с высокой связанностью проще в обслуживании, его легче изменить или заменить. 🚩Пример Представьте модуль, который управляет пользователями: если в модуле только функции для работы с пользователями (например, добавление и удаление), он обладает высокой связанностью, так как его функции направлены на одну задачу. Если модуль при этом минимально зависит от других частей системы, это говорит о слабом сцеплении. 🚩 Сравнение 🟠Слабое сцепление и высокая связанность Это желательные качества. Они помогают создать более гибкую и поддерживаемую систему. 🟠Сцепление Лучше, когда оно слабое, так как снижает зависимость между модулями. 🟠Связанность Лучше, когда она высокая, так как все функции модуля работают на достижение одной цели. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Из чего состоит ответ на сервере? Ответ на сервере, особенно в контексте HTTP, состоит из нескольких ключевых компонентов. Эти компоненты обеспечивают клиенту информацию о результате запроса, статусе обработки, а также предоставляют сами данные, если это необходимо. Основные части ответа включают: 🟠Стартовая линия (Status Line) Стартовая линия содержит информацию о статусе ответа и состоит из следующих частей: Версия протокола HTTP: Например, HTTP/1.1. Код состояния (Status Code): Числовой код, который указывает результат обработки запроса. Примеры включают 200 (OK), 404 (Not Found), 500 (Internal Server Error). Причинная фраза (Reason Phrase): Человеко-читаемое описание статуса. Например, OK, Not Found, Internal Server Error. HTTP/1.1 200 OK 🟠Заголовки (Headers) Заголовки предоставляют метаданные о ответе. Они состоят из пар "ключ-значение" и могут включать: Date: Дата и время отправки ответа. Content-Type: Тип содержимого ответа (например, text/html, application/json). Content-Length: Размер тела ответа в байтах. Server: Информация о сервере, отправившем ответ. Set-Cookie: Установка cookies. Content-Type: application/json Content-Length: 85 Server: Apache/2.4.1 (Unix) Set-Cookie: sessionId=abc123; Path=/; HttpOnly 🟠Тело ответа (Body) Тело ответа содержит данные, которые сервер отправляет клиенту. Формат и содержание тела зависят от типа ответа и могут включать: HTML-страницы JSON-объекты XML-данные Файлы (например, изображения, документы) { "id": 123, "name": "John Doe", "email": "[email protected]" } Пример полного HTTP-ответа HTTP/1.1 200 OK Date: Tue, 27 Jul 2024 12:28:53 GMT Content-Type: application/json Content-Length: 85 Server: Apache/2.4.1 (Unix) Set-Cookie: sessionId=abc123; Path=/; HttpOnly { "id": 123, "name": "John Doe", "email": "[email protected]" } Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое виртуальное окружение? Это изолированная среда для выполнения программного кода, которая позволяет создавать независимые друг от друга пространства для различных проектов. В каждом таком окружении могут быть установлены специфические для проекта зависимости (библиотеки, пакеты), которые не будут пересекаться с зависимостями других проектов. 🚩Зачем нужно 🟠Изоляция зависимостей В разных проектах могут использоваться различные версии одних и тех же библиотек. Виртуальные окружения позволяют избежать конфликтов версий, создавая изолированные пространства для каждого проекта. 🟠Упрощение управления зависимостями Легко установить, обновить или удалить зависимости без риска повлиять на другие проекты. Это особенно полезно при работе над проектами с долгим жизненным циклом, где могут возникать проблемы совместимости. 🟠Повышение безопасности Изоляция окружения помогает ограничить доступ к критически важным системным ресурсам и защищает основную систему от потенциально вредоносного кода. 🟠Удобство разработки и тестирования Виртуальные окружения позволяют разработчикам легко переключаться между проектами и их зависимостями, что упрощает процесс тестирования и отладки. 🟠Совместимость и переносимость Проекты с виртуальными окружениями легче перенести на другие системы или передать другим разработчикам. Достаточно скопировать окружение вместе с проектом, чтобы получить полностью функционирующую копию. 🚩Как используется 🟠venv Встроенный модуль в Python, позволяющий создавать легковесные виртуальные окружения. 🟠virtualenv Более функциональный инструмент, особенно полезный для старых версий Python. 🟠conda Инструмент, который управляет как пакетами, так и виртуальными окружениями, поддерживающий не только Python, но и другие языки программирования. 1⃣Создание окружения Команда для создания нового окружения (например, python -m venv env для venv). 2⃣Активация окружения Команда для активации окружения (например, source env/bin/activate на Unix-подобных системах или .\env\Scripts\activate на Windows). 3⃣Установка зависимостей Использование менеджера пакетов (например, pip) для установки необходимых библиотек. 4⃣Деактивация окружения Команда для выхода из окружения (например, deactivate). Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Какие есть уровни изоляции транзакций ? Уровни изоляции транзакций определяют степень видимости изменений, сделанных одной транзакцией, для других параллельно выполняющихся транзакций. Они помогают контролировать влияние транзакций друг на друга и управляют различными типами аномалий, такими как "грязное" чтение, неповторяющееся чтение и фантомные чтения. В стандарте SQL-92 определены четыре уровня изоляции транзакций: 🚩Read Uncommitted (Чтение неподтвержденных данных) Транзакция может видеть изменения, сделанные другими транзакциями, даже если эти изменения еще не были зафиксированы (не подтверждены). 🟠Грязное чтение (Dirty Read) Транзакция может прочитать данные, которые были изменены другой транзакцией, но не были зафиксированы. 🟠Неповторяющееся чтение (Non-repeatable Read) Транзакция может видеть разные значения данных при повторном чтении, если другая транзакция изменила эти данные и зафиксировала изменения. 🟠Фантомные чтения (Phantom Read) Транзакция может видеть новые строки, добавленные другой транзакцией, при повторном выполнении запроса. 🚩Read Committed (Чтение подтвержденных данных) Транзакция может видеть только изменения, которые были зафиксированы другими транзакциями. Неподтвержденные изменения не видны. 🟠Неповторяющееся чтение (Non-repeatable Read) Транзакция может видеть разные значения данных при повторном чтении, если другая транзакция изменила и зафиксировала эти данные. 🟠Фантомные чтения (Phantom Read) Транзакция может видеть новые строки, добавленные другой транзакцией, при повторном выполнении запроса. 🚩Repeatable Read (Повторяемое чтение) Транзакция гарантирует, что если она прочитала данные в начале транзакции, эти данные останутся неизменными до конца транзакции. Транзакция не видит изменения данных, сделанные другими транзакциями после начала текущей транзакции. Фантомные чтения (Phantom Read): Транзакция может видеть новые строки, добавленные другой транзакцией, при повторном выполнении запроса. 🚩Serializable (Сериализуемость) Транзакция выполняется так, как если бы она была единственной, работающей в системе. Другие транзакции не могут добавлять, изменять или удалять данные, пока текущая транзакция не завершится. Это самый строгий уровень изоляции. Все аномалии (грязное чтение, неповторяющееся чтение, фантомные чтения) предотвращаются. -- Установка уровня изоляции SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; Пример на Java (использование JDBC) connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); connection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое MVVM? Это архитектурный шаблон, который разделяет приложение на три части: Model (данные и логика), View (интерфейс) и ViewModel (связь между Model и View). 🚩Пример Model public class User { public string Name { get; set; } public int Age { get; set; } } ViewModel public class UserViewModel : INotifyPropertyChanged { private ObservableCollection _users; public ObservableCollection Users { get { return _users; } set { _users = value; OnPropertyChanged(nameof(Users)); } } public UserViewModel() { Users = new ObservableCollection { new User { Name = "John Doe", Age = 30 }, new User { Name = "Jane Doe", Age = 25 } }; } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } View (XAML) • • Код за View (Code-behind) public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = new UserViewModel(); } } Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Какие существуют нормальные формы в SQL? Это процесс организации данных для минимизации избыточности и избегания аномалий при внесении данных. Нормальные формы (NF) — это набор правил, которые помогают в нормализации баз данных. 🟠Первая нормальная форма (1NF) Таблица находится в 1NF, если: Все столбцы содержат атомарные значения, то есть каждое значение в столбце неделимо. Все строки уникальны, нет повторяющихся строк. Пример: Если у вас есть таблица с заказами, и каждый заказ может содержать несколько продуктов, вместо хранения всех продуктов в одном столбце, нужно разбить их на отдельные строки. 🟠Вторая нормальная форма (2NF) Таблица находится во 2NF, если: Она находится в 1NF. Все неключевые столбцы полностью зависят от всего первичного ключа, а не от его части. Пример Если в таблице "Заказы" у вас есть составной ключ (OrderID, ProductID), то столбцы, зависящие только от OrderID (например, OrderDate), должны быть вынесены в отдельную таблицу. 🟠Третья нормальная форма (3NF) Таблица находится в 3NF, если: Она находится во 2NF. Все неключевые столбцы зависят только от первичного ключа, а не от других неключевых столбцов. Пример Если в таблице "Сотрудники" у вас есть столбцы EmployeeID, DepartmentID и DepartmentName, нужно вынести DepartmentName в отдельную таблицу "Департаменты", чтобы избежать зависимости между неключевыми столбцами. 🟠Бойс-Кодд нормальная форма (BCNF) Таблица находится в BCNF, если: Она находится в 3NF. Для каждой функциональной зависимости X -> Y, X является суперключом. Пример: Если в таблице "Курс" есть зависимости (Professor, Course) -> Room и Room -> Capacity, необходимо реструктурировать таблицу так, чтобы не было зависимостей, где детерминанты не являются суперключами. 🟠Четвертая нормальная форма (4NF) Таблица находится в 4NF, если: Она находится в BCNF. В ней нет многозначных зависимостей (Multivalued Dependencies). Пример: Если студент может записаться на несколько курсов и участвовать в нескольких клубах, то эти зависимости должны быть вынесены в отдельные таблицы. 🟠Пятая нормальная форма (5NF) Таблица находится в 5NF, если: Она находится в 4NF. В ней нет соединительных зависимостей (Join Dependencies), которые нельзя разделить без потери данных. Пример: Если у вас есть сложные зависимости между несколькими таблицами, то нужно убедиться, что все соединения этих таблиц могут быть разложены обратно без потери информации. 🟠Доменино-ключевая нормальная форма (DKNF) Таблица находится в DKNF, если: Все ограничения и зависимости выражаются только через домены и ключи таблицы, и отсутствуют аномалии при вставке, обновлении или удалении данных. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Расскажи про https HTTPS (HyperText Transfer Protocol Secure) — это расширение протокола HTTP, используемое для безопасного обмена данными между веб-браузером и веб-сервером. HTTPS обеспечивает конфиденциальность, целостность и аутентичность передаваемых данных, используя шифрование, аутентификацию и проверку целостности. 🚩Основные аспекты HTTPS 🟠Шифрование: HTTPS использует шифрование для защиты данных, передаваемых между клиентом и сервером. Шифрование делает данные нечитаемыми для посторонних, предотвращая их перехват и кражу. Это достигается с помощью протоколов SSL (Secure Sockets Layer) и его преемника TLS (Transport Layer Security). 🟠Аутентификация: Аутентификация подтверждает, что клиент и сервер являются теми, за кого они себя выдают. Это предотвращает атаки типа "человек посередине" (man-in-the-middle attacks). Аутентификация осуществляется с помощью цифровых сертификатов, которые выдаются доверенными центрами сертификации (Certificate Authorities, CA). 🟠Целостность данных: Целостность данных гарантирует, что данные не были изменены во время передачи. Это достигается с помощью хеш-функций и контрольных сумм, которые проверяются на каждой стороне соединения. 🚩Как работает HTTPS 🟠Инициация соединения: Клиент (например, веб-браузер) инициирует соединение с сервером, отправляя HTTPS-запрос. 🟠Обмен сертификатами: Сервер отправляет клиенту свой цифровой сертификат. Сертификат содержит публичный ключ сервера и информацию о центре сертификации. 🟠Проверка сертификата: Клиент проверяет подлинность сертификата, используя список доверенных центров сертификации. Если сертификат действителен, клиент продолжает установку защищённого соединения. 🟠Установка сеансового ключа: Клиент и сервер договариваются о сеансовом ключе, используя асимметричное шифрование. Этот ключ будет использоваться для шифрования данных в течение сеанса. 🟠Шифрование данных: Данные передаются между клиентом и сервером в зашифрованном виде, что обеспечивает их конфиденциальность и целостность. 🚩Преимущества HTTPS 🟠Безопасность: HTTPS защищает данные от перехвата и подделки, что особенно важно для передачи конфиденциальной информации, такой как пароли и номера кредитных карт. 🟠Доверие пользователей: Наличие HTTPS повышает доверие пользователей к веб-сайту, так как современные браузеры отмечают сайты с HTTPS как безопасные. 🟠SEO (Поисковая оптимизация): Поисковые системы, такие как Google, отдают предпочтение сайтам с HTTPS и могут ранжировать их выше в результатах поиска. 🟠Соответствие стандартам: Многие нормативные акты и стандарты требуют использования HTTPS для защиты данных, например, GDPR в Европейском Союзе. 🚩Как настроить HTTPS 🟠Получение сертификата: Приобретите SSL/TLS сертификат у доверенного центра сертификации (CA) или используйте бесплатные сертификаты, такие как Let's Encrypt. 🟠Установка сертификата: Установите полученный сертификат на веб-сервер. Процесс установки зависит от используемого веб-сервера (например, Apache, Nginx, IIS). 🟠Настройка перенаправлений:Настройте сервер так, чтобы все HTTP-запросы перенаправлялись на HTTPS. 🟠Обновление ссылок и ресурсов: Убедитесь, что все ссылки и ресурсы на сайте используют HTTPS, чтобы избежать смешанного контента (mixed content), когда части страницы загружаются по HTTP. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 В чём смысл инкапсуляции? Один из основных принципов объектно-ориентированного программирования (ООП), наряду с наследованием и полиморфизмом. Смысл инкапсуляции заключается в объединении данных и методов, работающих с этими данными, в одном объекте, а также в ограничении доступа к этим данным из внешнего мира. 🚩Основные аспекты инкапсуляции 🟠Сокрытие данных В инкапсуляции данные (свойства) объекта скрываются от внешнего доступа и защищаются от некорректных изменений. Это достигается путем использования модификаторов доступа (например, private, protected, public). 🟠Контролируемый доступ Вместо прямого доступа к данным, предоставляются методы (геттеры и сеттеры) для чтения и изменения значений свойств. Это позволяет контролировать, каким образом данные могут быть изменены или получены. 🟠Защита целостности данных Инкапсуляция помогает защитить внутреннее состояние объекта от некорректных или неожиданных изменений, обеспечивая целостность данных и уменьшая вероятность ошибок. 🚩Примеры инкапсуляции На Java public class Person { private String name; private int age; // Конструктор public Person(String name, int age) { this.name = name; this.age = age; } // Геттер для имени public String getName() { return name; } // Сеттер для имени public void setName(String name) { this.name = name; } // Геттер для возраста public int getAge() { return age; } // Сеттер для возраста public void setAge(int age) { if (age > 0) { this.age = age; } else { System.out.println("Возраст должен быть положительным числом."); } } } На Python class Person: def __init__(self, name, age): self._name = name self._age = age # Геттер для имени @property def name(self): return self._name # Сеттер для имени @name.setter def name(self, name): self._name = name # Геттер для возраста @property def age(self): return self._age # Сеттер для возраста @age.setter def age(self, age): if age > 0: self._age = age else: print("Возраст должен быть положительным числом.") # Пример использования person = Person("John", 30) print(person.name) # John person.age = -5 # Возраст должен быть положительным числом. print(person.age) # 30 Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Backend - программисты
🔒Открыть пост
и посмотреть медиа
🤔 Что такое Agile? Это подход к разработке программного обеспечения, который фокусируется на гибкости, сотрудничестве и быстрой адаптации к изменениям. Agile основывается на следующих принципах и ценностях: 🚩Основные принципы 🟠Индивидуумы и взаимодействия важнее процессов и инструментов Акцент на командную работу и эффективное общение. 🟠Работающее программное обеспечение важнее исчерпывающей документации Быстрая поставка работающих продуктов с минимально необходимой документацией. 🟠Сотрудничество с заказчиком важнее согласования условий контракта Постоянное взаимодействие с заказчиком для удовлетворения его потребностей. 🟠Готовность к изменениям важнее следования первоначальному плану Гибкость в адаптации к изменениям требований и условий. 🚩Основные методологии 🟠Scrum Итеративный процесс с фиксированными временными промежутками, называемыми спринтами. Роли: Product Owner, Scrum Master, Команда разработки. Артефакты: Product Backlog, Sprint Backlog, Инкремент. Встречи: Планирование спринта, Ежедневные стендап-совещания, Обзор спринта, Ретроспектива. 🟠Kanban Визуализация процесса работы с помощью доски Kanban. Ограничение незавершенной работы (Work In Progress, WIP). Постоянное улучшение и адаптация. 🟠Extreme Programming (XP) Практики: Парное программирование, Частые релизы, Непрерывная интеграция, Тестирование. 🟠Lean Сокращение избыточности и увеличение ценности для клиента.- Принципы: Устранение потерь, Увеличение потока, Улучшение качества. 🚩Плюсы ➕Быстрая адаптация к изменениям Возможность быстро реагировать на изменения требований или условий рынка. ➕Улучшенное качество продукта Постоянное тестирование и интеграция. ➕Повышенная вовлеченность команды Активное участие всех членов команды в процессе разработки. ➕Удовлетворенность клиентов Постоянное взаимодействие с заказчиками и предоставление им ценности на каждом этапе разработки. Ставь 👍 и забирай 📚 Базу знаний
Backend - программисты
Динамика подписчиков
+-0.9% за 30 дней
Текущие
3,717
Месяц назад
3,752
Средний рост
+-1 / день
Обновлено
1 день назад

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

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

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

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

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

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

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