Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Отправляйся в погоню за легендарными сокровищами Бабы Яги в 3D!
А в это время Баба Яга отправится в погоню за тобой.

Убеги от Бабы Яги

Аркады, Мидкорные, 3D

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Backend

С этим тегом используют

IT Программирование Frontend IT юмор Разработка Программист Drupal Все
226 постов сначала свежее
7838
rovercrimea
rovercrimea
4 месяца назад
Скриншоты комментов

А ты с какой стороны дедлайна?⁠⁠

#comment_341682400

А ты с какой стороны дедлайна? Комментарии на Пикабу, Скриншот, Backend, Дедлайн
Показать полностью 1
Комментарии на Пикабу Скриншот Backend Дедлайн
127
5223
KOPOBOPOTEHb
KOPOBOPOTEHb
4 месяца назад
Противозачаточные шутки

Девушка хочет в бэкэнд⁠⁠

Девушка хочет в бэкэнд Из сети, Юмор, Мужчины и женщины, Backend, Скриншот, Комментарии
Показать полностью 1
Из сети Юмор Мужчины и женщины Backend Скриншот Комментарии
216
3
DropTrigger
DropTrigger
4 месяца назад
Серия Записки вкатуна

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT)⁠⁠

Термины в статье:

  1. Эндпоинт

  2. Аутентификация, Регистрация, JWT, Access, Refresh

К стеку добавился:

  • Vue.js

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Дописываю API

Потратив 2 ночи (и немного терпения), я наконец завершил реализацию всех эндпоинтов! В какой-то момент это очень наскучило, но я все равно продолжал писать их.

Как выглядят эндпоинты в этой статье - Создаю онлайн-сервис для чтения книг. День 4. Обработка первого запроса.

Архитектура папок теперь выглядит вот так:

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Всего реализовано 38 эндпоинтов , и это еще не конец — их количество будет расти! Последний из них ощущался как будто я пробежал марафон.


Разработка дизайна 🎨

Но как делать веб без дизайна? Верно, никак! 🤔
Зайдя в Figma и подсмотрев интерфейс GitHub'а , я накидал ориентировочный дизайн страниц регистрации и входа.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост
Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Верстка 🖥️

Верстка — это немного рутинное занятие, но результат того стоит!
Могу сказать, что получилось почти идентично дизайну.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Frontend с Vue.js

Почему Vue.js ? Просто такие условия 🙃. Если бы выбор был за мной, я бы взял React .

Добавлю в решение новый проект Веб-приложение ASP.NET Core (MVC) . Стандартный шаблон создаст такие папки:

  • wwwroot
    Это корневая папка для статических файлов, которые будут доступны напрямую через браузер.

  • Controllers
    Папка содержит классы контроллеров, которые управляют маршрутизацией.

  • Models
    Папка содержит модели данных, которые представляют сущности приложения.

  • Views
    Папка содержит представления — файлы, которые отвечают за отображение HTML-страниц пользователю.

В папку wwwroot/lib добавлю клиентскую библиотеку Vue.js .

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Создам новый контроллер для страниц аутентификации.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

В папке Views есть еще 2 папки:

  • Home

  • Shared

В папку Shared добавлю новый шаблон страницы Razor с названием _LoginLayout для страниц аутентификации.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Создам папку Auth, добавив туда пустую страницу Razor с названием _ViewStart. Этот файл указывает какой шаблон будут использовать страницы.

@{

Layout = "_LoginLayout";

}

Теперь закину в wwwroot/css свой файл со стилем, который наверстал.


Логика фронтенда 🧠

Начну со страницы входа, добавив HTML-разметку, которую наверстал.

Снизу файла напишу блок скриптов:

@Section scripts {

<script src="~/lib/vue/vue.global.js"></script>

<script>

...тут будут все скрипты...

</script>

}

Пример запроса на бэкенд:

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

На скрине показан метод ассинхронный метод login(), в нем реализована отправка запроса на эндпоинт /auth/login, если запрос проходит успешно, я записываю Access-токен в локальное хранилище и перенаправляю пользователя на страницу по адресу /home. В противном случае я показываю ошибку пользователю.

В ответе сервера я получаю Access и Refresh токены.

  • Access-токен записываю в локальное хранилище.

  • Refresh-токен храню в Http-only куках для большей безопасности 🛡️.

Пример записи куки на сервере:

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Здесь я записал новую куку с под названием refreshToken, и значением, равным Refresh-токену.

Вообще для чего мне Refresh-токен, если есть Access? Все очень просто, у Access-токена срок жизни 15 минут, поэтому через 15 минут его необходимо будет сгенерировать заново. Для этого как раз и понадобится Refresh-токен.

По истечению Access-токена я буду посылать на сервер запрос со своими куками. Сервер прочитает Refresh-токен из них и, если он валидный, вернет новый Access-токен.

Как это реализовано со стороны сервера:

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Со стороны клиента:

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

При загрузке страницы сразу же срабатывает метод checkRefreshToken, далее отправляется запрос на /auth/refresh. Если сервер возвращает положительный ответ, записываю новый Access в локальное хранилище и продолжаю пользоваться сервисом.

Тестирование 🧪

Запущу бэкенд и фронтенд.

После запуска я сразу попадаю на страницу входа.

Войду в аккаунт, который я создвал еще на начальных этапах.

Если сейчас обратиться по адресу /home, меня перекинет назад на страницу авторизации.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Попробую сначала ввести неправильный пароль.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Теперь введу правильный пароль. Все сработало! Я попал на домашнюю страницу.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

Зайдя в консоль разработчика, можно посмотреть локальное хранилище и найти там Access-токен.

Создаю онлайн-сервис для чтения книг. День 6-9. CRUD, Дизайн+Верстка, Frontend(JWT) Разработка, Программирование, Aspnet, Frontend, Backend, Длиннопост

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

Показать полностью 15
[моё] Разработка Программирование Aspnet Frontend Backend Длиннопост
3
1
DELETED
5 месяцев назад
Лига программистов

Функциональная масштабируемость: что это и как ее достичь⁠⁠

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

Что такое функциональная масштабируемость?
Функциональная масштабируемость — это подход к проектированию систем, при котором большая система делится на независимые модули или сервисы. Каждый модуль отвечает за свою конкретную функцию и может масштабироваться автономно, без влияния на другие части системы.

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

Почему это важно?
1️⃣ Экономия ресурсов. Масштабируя только загруженные модули, вы не тратите деньги на те части системы, которые работают в штатном режиме.
2️⃣ Гибкость. Вы можете использовать разные подходы для разных модулей в зависимости от их задач.
3️⃣ Устойчивость. Проблемы в одном модуле не затрагивают работу всей системы.

Основные подходы к реализации
🔸 Микросервисная архитектура.
Система разбивается на множество небольших сервисов, каждый из которых выполняет одну задачу и может масштабироваться отдельно.
💡 Пример: в интернет-магазине сервис обработки заказов можно масштабировать отдельно от сервиса рекомендаций.

🔸 Асинхронное взаимодействие между модулями.
Использование асинхронного обмена данными между модулями позволяет разгрузить систему и ускорить выполнение задач.
💡 Пример: вместо ожидания ответа от сервиса платежей модуль заказов ставит задачу в очередь и продолжает работу.

🔸 Использование очередей сообщений.
Очереди сообщений (например, RabbitMQ, Kafka) помогают организовать взаимодействие между модулями, чтобы избежать перегрузки и сбалансировать нагрузку.
💡 Пример: сервис обработки изображений получает задачи из очереди и обрабатывает их, не перегружая систему.

🔸 Serverless-архитектура для изолированных задач.
Serverless (например, AWS Lambda, Google Cloud Functions) подходит для задач, требующих обработки большого числа событий или коротких операций.
💡 Пример: при загрузке файла serverless-функция может автоматически обрабатывать его (например, сжимать или анализировать) без необходимости держать постоянный сервер.

Преимущества функциональной масштабируемости
✔️ Повышение производительности: вы можете оперативно масштабировать только те части системы, которые испытывают нагрузку.
✔️ Устойчивость к сбоям: изолированные модули упрощают локализацию и устранение проблем.
✔️ Ускорение разработки: команды могут работать над отдельными модулями независимо друг от друга.

Заключение
Функциональная масштабируемость — это путь к созданию современных, эффективных и устойчивых систем. Выбор подхода зависит от задач вашей системы, но главное правило остается неизменным: разделяйте и властвуйте!

#scaling #технологии #backend

Функциональная масштабируемость: что это и как ее достичь Кросспостинг, Технологии, Backend, Длиннопост
Показать полностью 1
Кросспостинг Технологии Backend Длиннопост
2
DELETED
5 месяцев назад
Лига программистов

Горизонтальная масштабируемость: ключ к мощным системам⁠⁠

В мире высоконагруженных систем горизонтальная масштабируемость играет решающую роль. Этот подход позволяет увеличить производительность, просто добавляя новые серверы в систему, вместо того чтобы усиливать один. Разберёмся, как это работает.

Что такое горизонтальная масштабируемость?
Горизонтальная масштабируемость (Horizontal Scaling) — это способ увеличения мощности системы за счёт добавления новых серверов. Вместо того чтобы "усиливать" один сервер, нагрузка распределяется между несколькими узлами, работающими параллельно.
Пример: если сервер обрабатывает 10 000 запросов в секунду, но вам нужно обрабатывать 30 000, вы добавляете ещё два сервера, и каждый из них берёт свою долю.

Как это работает?
1️⃣ Балансировка нагрузки
Балансировщик равномерно распределяет запросы между всеми доступными серверами. Это защищает систему от перегрузки.
2️⃣ Распределение данных
Данные делятся между узлами с помощью шардирования или репликации, что ускоряет доступ к ним.
3️⃣ Кэширование
Популярные данные сохраняются в распределённом кэше, чтобы уменьшить нагрузку на базу данных.
4️⃣ Облачная инфраструктура
В облаке можно динамически добавлять или удалять ресурсы в зависимости от текущей нагрузки.

Преимущества
✅ Неограниченный рост производительности
Чем больше серверов, тем больше запросов система может обработать.
✅ Отказоустойчивость
Если один сервер выходит из строя, другие продолжают работать.
✅ Гибкость
Легко добавлять или убирать мощности по мере необходимости.

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

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

#scaling #технологии #backend

Горизонтальная масштабируемость: ключ к мощным системам Кросспостинг, Технологии, Backend
Показать полностью 1
Кросспостинг Технологии Backend
0
5
zhizait
zhizait
5 месяцев назад

Иногда полезно устроить внеплановый корпоратив⁠⁠

Иногда полезно устроить внеплановый корпоратив IT, Работа, Корпоратив, Backend, Тимлид, Разработчики, Истории из жизни, Telegram (ссылка)

Источник: «Жиза ИТ руководителя»

Показать полностью 1
IT Работа Корпоратив Backend Тимлид Разработчики Истории из жизни Telegram (ссылка)
0
4
DELETED
5 месяцев назад
Лига программистов

Вертикальная масштабируемость: когда мощность узла — ваш выбор⁠⁠

Вертикальная масштабируемость (Vertical Scaling) — это способ улучшения производительности системы за счёт увеличения ресурсов одного сервера. Вместо добавления новых серверов (как в горизонтальном подходе) вы просто усиливаете уже имеющийся. Разберём, как это работает и когда стоит использовать.

Что такое вертикальная масштабируемость?
Принцип вертикальной масштабируемости заключается в улучшении характеристик одного узла. Это может быть увеличение объёма оперативной памяти, количества ядер процессора или установка более быстрого хранилища. Такой подход позволяет системе обрабатывать больше запросов и данных без необходимости перераспределения нагрузки между несколькими серверами.
Пример: если ваш сервер перестал справляться с нагрузкой, вы увеличиваете его ресурсы, чтобы повысить производительность.

Как это работает?
1️⃣ Увеличение вычислительных мощностей
Добавление более мощного процессора или увеличение числа ядер позволяет серверу быстрее обрабатывать запросы.
2️⃣ Расширение памяти
Больше оперативной памяти позволяет хранить больше данных в памяти, ускоряя обработку и уменьшая обращение к диску.
3️⃣ Ускорение хранилища
Переход на SSD или более быстрые NVMe-диски улучшает время чтения и записи данных.
4️⃣ Использование виртуализации
Облачные платформы позволяют динамически выделять дополнительные ресурсы (например, CPU или RAM) без физического апгрейда оборудования.

Преимущества
✅ Простота реализации
Не нужно менять архитектуру системы — достаточно улучшить оборудование или обновить конфигурацию.
✅ Стабильность системы
Все данные остаются на одном сервере, что упрощает управление и исключает необходимость синхронизации.
✅ Экономия времени
Масштабирование происходит быстро, без сложной настройки распределённых систем.

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

Когда использовать вертикальную масштабируемость?
📌 Если у вас моноолитная архитектура, которая не поддерживает распределение нагрузки.
📌 Когда нагрузка на систему предсказуема и стабильна.
📌 Если система работает на облачных платформах, где можно легко масштабировать ресурсы.
📌 Для приложений с минимальным количеством узлов (например, небольшие базы данных или односерверные приложения).

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

Вертикальная масштабируемость: когда мощность узла — ваш выбор Кросспостинг, Технологии, Backend, Длиннопост
Показать полностью 1
Кросспостинг Технологии Backend Длиннопост
0
4
DELETED
5 месяцев назад
Лига программистов

Виды масштабируемости систем: что это и зачем нужно?⁠⁠

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

Вот основные из них и подходы, которые применяются для их реализации:
🔹 Горизонтальная масштабируемость (Horizontal Scaling)
Система увеличивает мощность за счёт добавления новых серверов. Это помогает распределить нагрузку и улучшить отказоустойчивость.
Подходы: балансировка нагрузки между узлами, использование распределённых баз данных, настройка кластера кэширования, Автоматическое масштабирование в облаке.

🔹 Вертикальная масштабируемость (Vertical Scaling)
Повышение мощности одного сервера за счёт добавления ресурсов: процессоров, памяти или более быстрых дисков.
Подходы: увеличение вычислительных ресурсов узла, оптимизация программного обеспечения под высокопроизводительное оборудование, использование виртуализации для динамического перераспределения ресурсов.

🔹 Функциональная масштабируемость (Functional Scaling)
Разделение системы на независимые модули или сервисы. Каждый из них можно масштабировать отдельно, что делает систему гибкой.
Подходы: микросервисная архитектура, асинхронное взаимодействие между модулями, использование очередей сообщений, serverless-архитектура для изолированных задач.

🔹 Масштабируемость по данным (Data Scaling)
Работа с большими объёмами информации через перераспределение данных между узлами или оптимизацию хранилищ.
Подходы: шардирование данных, репликация для повышения отказоустойчивости, оптимизация индексов в базах данных, использование распределённых систем хранения.

В следующих постах разберём подробно, каждый вид масштабируемости. 🚀

Виды масштабируемости систем: что это и зачем нужно? Технологии, Backend, Кросспостинг
Показать полностью 1
Технологии Backend Кросспостинг
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии