Ответы пользователя по тегу Веб-разработка
  • Разработка веб-сайта с помощью ASP.NET. С Чего начать?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Начать лучше отсюда, тут есть учебники
    https://docs.microsoft.com/ru-ru/aspnet/core/?view...
    Дополнить можно этим
    https://metanit.com/sharp/aspnet5/
    И этим
    https://www.ozon.ru/product/asp-net-core-3-s-prime...
    Ответ написан
    Комментировать
  • Как разобраться в ASP.NET MVC относительно быстро?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Может какие-то конкретные книги можете посоветовать?

    Советую вот эту https://www.ozon.ru/product/asp-net-core-3-s-prime...
    или более раннюю версию от этого автора.

    Сам начинал учиться по такой книжке, только тогда еще был asp.net mvc4

    Также рекомендую официальную доку https://docs.microsoft.com/ru-ru/aspnet/core/?view...
    Она сделана достаточно хорошо, а в некоторых местах очень хорошо.

    И если не хватает, то https://metanit.com/sharp/aspnet5/
    Ответ написан
    Комментировать
  • Фреймворки в веб-разработке?

    sarapinit
    @sarapinit
    Точу водой камень
    Потому что у эволюции 2 основных инструмента: изменчивость и отбор.
    Ответ написан
    Комментировать
  • Актуально ли это изучать в 2020 году?

    sarapinit
    @sarapinit
    Точу водой камень
    Не стоит, многое из этого уже мертво, многое почти мертво. Это план 10 летней давности. Если программа с тех пор не менялась, зачем вам такие учителя?
    Ответ написан
    Комментировать
  • Как реализовать счетчик "сейчас этот товар просматривают еще N человек"?

    sarapinit
    @sarapinit
    Точу водой камень
    На странице делать периодическую отправку состояния "объект просматривают". Складываете состояние в Redis HashSet со структурой:
    название хэша = id объекта
    ключ = id пользователя
    значение = timestamp
    Выбираете таймаут, например 5 секунд и считаете все записи старше 5 секунд невалидными.
    Для построения счетчика берете количество валидных элементов в хэше для конкретного объекта.
    Чтобы хэш не разрастался нужно удалять простроченные элементы т.к. Redis не умеет инвалидировать элементы хэшсета. Это можно делать периодически либо написать скрипт на lua который будет делать вставку нового элемента и одновременно удалять просроченные.
    Ответ написан
    Комментировать
  • Как сделать переключение между аккаунтам, как в yandex, mail, gmail?

    sarapinit
    @sarapinit
    Точу водой камень
    В случае oauth2 хранятся токены (не обязательно в local storage, для старых браузеров могут и в куках) для нескольких аккаунтов. При переключении аккаунтов выбирается, какой токен писать в заголовок запросов. Сервер по токену определяет пользовательские данные.
    Ответ написан
    Комментировать
  • Когда стоит разделять приложения?

    sarapinit
    @sarapinit
    Точу водой камень
    1 кейс.
    У вас есть запросы на которые нужно отвечать быстро (текущее состояние) и какой-то сервис с отчетами. Когда пользователи запрашивают большой отчет скорость ответа текущего состояния начинает проседать. Тогда вы делаете отдельный сервис для отчетов, выносите его в отдельное приложение и на отдельную виртуалку. Таким образом вы изолируете потребляемые ресурсы и устраняете влияние сервисов друг на друга. Плюс получаете возможность отдельно масштабировать сервис отчетов во времена наибольшей нагрузки.

    2 кейс.
    У вас есть сервис авторизации для которого нужно учесть множество разных требований и стандартов по безопасности. Вы привлекаете отдельную команду для его разработки с определенными навыками. В этом случае вы изолируете ресурс "навыки разработки безопасных сервисов" чтобы команда не тратила свое время на другие фичи.

    3 кейс.
    Вы делаете несколько сложных сервисов и решаете распаралелить разработку на несколько команд. Одна команда делает "Кинопоиск", другая "Афишу". Все они обращаются к серверу авторизации из кейса 2 и бекендам из кейса 1.

    Итог.
    Разделение на несколько приложений - это либо логическое разделение, когда приложения делают разные и несвязанные вещи. В этом случае удобно думать о разных задачах как о разных приложениях. Отдельно их разрабатывать, деплоить и т.д.
    Либо это управление вычислительными мощностями. Когда разные части системы требуют разделения ресурсов, нелинейного масштабирования или имеют совсем разный режим работы (например АПИ для загрузки фоток и асинхронный воркер который делает превьюшки для этих фоток)
    Либо это управление на уровне человеческих ресурсов, когда приходится вводить в разработку несколько команд.
    Ответ написан