Задать вопрос
Ответы пользователя по тегу Веб-разработка
  • Что делать с деобфусцированным кодом?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Почитал лицензионное соглашение (яндекс переводчик)

    4. Запрещается разрабатывать какие-либо производные версии, модифицированные версии или версии сторонних производителей для распространения на основе DESTOON полностью или в любой части.


    Я не юрист, поэтому как понял: Будешь распространять - накажут.
    Ответ написан
    2 комментария
  • Зачем бэкендеру веб-разработки нужно указывать как проектировать систему?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Бэкендер, что, не разработает микросервис исходя из просто человеческого описания функционала? Не разберется как отправлять/получать сообщения в/из очередь брокера, чтобы получилась работающая фича? Не сообразит какой лучше сделать эндпоинт и что передавать в квери парамтерах/теле запроса? Не сообразит как доработать таблицы базыданных? Не разберется в документации апи внешнего сервиса для интеграции?

    Теперь понятно из-за кого спрос на гадалок возрастает
    Ответ написан
    2 комментария
  • Есть ли разница кто будет обрабатывать оплату на сайте - фронт или бек?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Это надо делать на бэке по разным причинам. Как минимум одну ты уже сказал - не надо палить секретный ключ.

    Можно придумать 2 причину - отвал клиента: представь, что после оплаты клиент отвалился. Что будет?
    - Токен подтверждения оплаты потерян
    - После перезагрузки кэш браузера очистился

    В итоге деньги потратились, но информации об этом ты не получил. Все потерялось - только ручками эту информацию у провайдера оплаты получать и чинить.

    Если бы это сервер обрабатывал, то можно было бы какой-нибудь trace id сохранить в БД и быть уверенным, что даже если отвалишься, то в будущем сможешь проверить статус оплаты.
    Ответ написан
    4 комментария
  • На каких сайтах не используются куки?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    По сути любой сайт без кук. Надо только их запретить
    Ответ написан
    Комментировать
  • Как оптимизировать сервер с большим количеством запросом?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Как понял схема данных следующая:
    - Есть замер времени - отедльный объект со своим ID
    - У каждого замера времени есть список штампов - конкретного времени
    - Эти штампы создают пользователи - отправляют запросы

    Для данного кейса мне видится такое решение:
    - Используем Redis в качестве БД
    - Для ID замеров используем snowflake
    - Тип данных Redis для замеров - list (список)
    - В каждом списке храним эти штампы - строка или unix timestamp (неважно)

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

    Redis хорошо выдерживает высокую нагрузку + его можно масштабировать.
    Благодаря snowflake можно горизонтально мастшабировать свои сервисы.
    Также, ты указал websocket - здесь как хочешь. Но в .NET есть реализация Redis которая использует мультиплексирование - здесь он будет уместен.
    Ответ написан
    2 комментария
  • Как посмотреть изменения на сайте?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Зависит от того, что подразумевается в "изменения":
    - Если контент генерируется пользователями (маркетплейсы, блоги, соц.сети) - то каждое мгновение
    - Если если нужно проверять HTML разметку, то тут возникнут проблемы со всякого рода фреймворками генерации сайтов (с их CSS генераторами названий классов, например)
    - Если нужно визуально проверять, то надо уточнить, что является изменением - текст сместился вниз на 1 нанометр это изменение?

    Тут разве что костыли:
    - Заводи демона, который будет делать скриншоты каждый интервал и сверять с последним
    - Проверяй атрибут Last-Modified
    - Используй webarchive
    Ответ написан
    2 комментария
  • Как реализовать корзину маркетплейса с оплатой каждому вендору отдельно?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    2 решения:

    1. Плохое: есть общая корзина, которая содержит несколько подкорзин - каждая такая подкорзина принадлежит отдельным вендорам. Грубо говоря, ты делаешь группировку по коду вендора в общей корзине: select * from basket group by vendor_code

    2. Хорошее: клиент такого разделения не видит и оплачивает сразу все, а разделение будет уже на стороне бэка. Это более удобно для клиента, чем делать несколько различных покупок.
    Ответ написан
  • Стотит ли менять asp.net mvc на asp.net web api + nextjs?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    нормально себя чувствует.

    Работает и не трогай
    Ответ написан
    3 комментария
  • Хорошая ли идея создавать БД на стороне клиентской части (фронтенда)?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Зависит от многих факторов:
    1. Если это полноценное офлайн приложение:
    - Если необходима полноценная СУБД (SQL Server, Postgres, MySql) - то нет. Мало кто захочет дополнительно себе устанавливать такие тяжелые зависимости, они всегда могут ее удалить и тогда уже не восстановить, обновления ПО либо не будут возможны, либо трудны
    - Если это встраиваемая СУБД (SQLite) - то вполне да, так многие приложения делают (на андроиде слышал SQLite часто используют)
    2. Если это онлайн приложение в браузере:
    - localStorage - это key/value хранилище
    - web sql - устаревшая технология
    - куки - могут пропасть в любое время
    3. Если это корпоративные клиенты, то можно навязать им свои требования по необходимости запуска СУБД на каждой машине

    Тут все зависит от того, что под БД подразумевается и для каких целей это нужно

    UPD: SQL запросы из клиента напрямую в БД - очень плохая идея, не надо так (обновления, безопасность, гибкость и т.д. - все постарадает)
    Ответ написан
    4 комментария
  • Как реализовать функцию статистики просмотра страницы за некий период?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Тут подходит какая-нибудь аналитическая СУБД. Например, ClickHouse практически для этого и создавался (Click Stream + Ware House).
    Хранить можно следующим образом:
    1. Есть общая таблица по посещениям/визитами с примерно такой структурой [page_id, visit_date] (больше и не надо)
    2. Для хранения статистики создаешь материализованные представления для дня/недели/года

    У них есть тестовые данные для плейграунда сбора аналитики по посещениям/хитам - https://clickhouse-docs.vercel.app/docs/en/getting...
    Ответ написан
    3 комментария
  • Можно ли писать бэк на C#, а фронт на React и есть ли в этом смысл?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Эти стеки совместимы очень хорошо. Лично я делал минимум 2 (пет)проекта на этом стеке.

    Даже есть отдельный шаблон для React приложений - dotnet new react
    Ответ написан
    Комментировать
  • Как правильно оповестить пользователю о занятых его данных?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Регистрация может быть для:
    1) Пользователей-людей

    В этом случае используется регистрация через форму. Там есть капчи, токены и т.д.
    В общем, для регистрации надо будет вручную это все вводить (с клавиатуры).

    2) Других машин

    Используются специальные токены. Эти токены могут использоваться только этим клиентом, должен быть секретным. Пример - токен бота в ТГ.

    В итоге:
    1) Для регистрации пользователя, нужно вручную это все вводить. Тут есть очень много ограничителей для автоподборщиков
    2) Токены бота знает только сам разработчик
    Ответ написан
  • Как называется человек, который дизайн придумает для сайта и сверстает его?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Верстальщик-дизайнер
    Ответ написан
    Комментировать
  • Как передать List из одного контроллера в другой через html-кнопку?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    resultString.AppendLine($"<button role=\"button\" class=\"sendBtn\"><a href=\"www.siteadress/api/reports/{serializedIngedientsList}\" style=\"text-decoration: none; color: #000000\"> Отчёт </a></button>");


    Вот здесь не тупая конкатенация должна быть.
    Во первых, URL строки должны экранироваться.
    Во вторых, здесь ты передаешь через путь, а надо через запрос (то что после ? идет).
    В третьих, если передавать через путь, то там не JSON, а собственная структура для сериализации.

    Почитай метанит
    Ответ написан