• Как решить зависимость класса от другого класса?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Может какой-то Dependency Injection?)

    Вообще, если у вас два класса столь "плотно" зависят друг от друга, значит их общую зависимость нужно вынести в другой класс
    Ответ написан
    Комментировать
  • Насколько сложно сделать свой сервер для сайта? Возможно ли сделать сервер из ноутбука?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Что такое вообще сервер?

    По факту, простыми словами, это конечная точка http запроса, к которой вы можете достучаться по ip адресу.

    В чём проблема просто запустить свой сайт на своём ip? Потому что ваш ip является динамическим и изменяется каждых несколько минут. Технически, вы можете достучаться к вашему ПК из другого ПК, но такая связь будет не долгой, пока не изменится ip адрес.

    Что тогда делать?
    Вы можете обратиться к своему интернет - провайдеру для получения публичного статического белого ip адреса. В вашей сети будет выделен один статический публичный адрес, на котором вы сможете разместить свой программный сервер и тогда к нему смогут достучаться по ip.

    Для того, что бы вы могли достучаться к нему по доменному адресу, нужно уже шаманить с DNS (Система, какая заменяет доменной имя на фактический ip адрес, который вам ранее выделил ваш интернет провайдер).

    Это вкратце для общего понимания, "Что, как и зачем" делать
    Ответ написан
    4 комментария
  • Как сделать функцию ping?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Я вообще лучше бы использовал какой-то SignalR, который бы "тыкал" клиента. Если клиент отвечает - значит жив ¯\_(ツ)_/¯
    Ответ написан
    1 комментарий
  • Что начать читать?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Сейчас меня будут бить

    Лично я бы посоветовал бы вас начать с C++. Сразу кажу, не из-за того что... Да чёрт его знает. В двух словах. Питон отличается от других языков программирования (Императивно - Декларативных), так что не очень хороший старт. Почему? Потому что у вас будет направление только Питон и, масимум Реакт. Я НЕ ГОВОРЮ ЧТО ЭТО ПЛОХОЙ СТЕК.

    Для примера, почему я предлагаю начать с C++. Вы детально разберёте работу с памятью, типами данных, структурами и алгоритмами. Отсюда у вас буде уже очень мощная база для выхода куда угодно, та хоть в микроконтроллеры. Вообще отсюда можно идти уже во многих направлениях, C#, php, Java и т.д.

    Но опять же, это моё субъективное мнение, что я считаю C++ лучше чем Python

    UPD: да и C++ могли лучше прокачивает чем Python. На Python обычно очень много школьников начинают, на C++ работают инженеры)) Илон Маск начинал с программирования на C++ )))
    Ответ написан
    21 комментарий
  • Есть ли какие то полезные источники где хорошо и подробно рассказывают о авторизации, регистрации на react с токеном?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Лично я, когда учил это, просто задавал интересующие меня вопросы ChatGPT. Сначала прошёл по теории, дале по примерам кода, далее сам сделал.

    Ну вообще, я уже знаю наверняка, какой вопрос сам может интересовать.

    Во-первых, токены можно храниться в localStorage.
    Во-вторых, токены отправляются в header'е Bearer {Token}
    Ответ написан
    Комментировать
  • Как задать логическое && в лямба выражении?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    WhereIf? Может просто Where использовать? Туда как раз таки можно передать лямбду. и использовать логическое &&
    Ответ написан
    Комментировать
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Сделаю заключение долгих попыток десериализации сложных объектов, советов и рекомендаций.

    Первое что нужно понимать при сериализации и десериализации, что объект должен иметь возможность полного построения, т.е., иметь public конструктор и все свойства должны быть set (Именно public set, init так же не подходит)

    Проблема в том, что сериализаторы (По крайней мере те, который я использовал, это Newtonsoft.Json, System.Json и Utf8Json) не работают с System.Reflection, т.е., они могут восстановить только те поля/свойства, который доступны публично

    BinarySerialization так же не подходит

    Почему я не встречал такой ошибки раньше? Потому что на проектах типу web api + react основной единицей транспортировки данных были модели, так называемые DTO (Data Transfer Object), которые сами по себе имеют только публичные свойства и стандартный публичный конструктор без параметров и эти объекты отлично работают для отправки информации через http
    Ответ написан
  • Как сверстать адаптивную кнопку с элементами по периметру?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну можете отсюда отталкиваться

    border: 5px dotted pink;
    height: 29px;
    background-color: red;
    Ответ написан
    Комментировать
  • Как сделать что бы при уменьшении длины страницы длина блока уменьшалась?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Во прямо хард-кодом задаёте размеры блока. Попробуйте использовать пропорциональные размеры, т.е., вместо px воспользуйтесь процентами %
    Ответ написан
  • Нормально ли писать на C# на Linux Manjaro?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Да, вы можете спокойно работать на C# из различных ОС таких как Windows, Linux и MacOS. Для этого вы можете разрабатывать проекты на платформе .NET Core. .NET Core является кроссплатформенной, по этому вы можете писать, запускать, тестировать и разворачивать ваши приложения на .NET Core на любой из платформ. Ограничения по ОС есть только для .NET Framework, т.к. она "наглухо" привязана к Windows
    Ответ написан
    7 комментариев
  • Как управлять локализацией дат?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вы можете использовать DatetimeOffset в связке с регистрацией локализации в Dependency Injection и Middleware
    Ответ написан
    Комментировать
  • Как в скрипте указать class с любой цифрой на конце?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Можно сделать выборку по классам:
    let items = document.querySelectorAll("[class^='filter-block']")
    let items.forEeach(item => {
        // ...
    });


    [class^='filter-block'] означает, что вы будете делать выборку по всем элементам, у которых значение указанного аттрибута (В нашем случае, мы указали аттрибут class) будет начинаться (Это делается при помощи такой конструкции как ^= ) с указанного значения (Мы указали filter-block), после которого могут следовать другие символы (Т.е. filter-block2, filter-block-filter-block-filter-block, filter-block-123, filter-blockkkkkkkkkkkkkkkkk и так далее, это всё будет проходить через выборку, т.к. имеет общее начало filter-block)
    Ответ написан
  • Можно ли как-то получить доступ к отображающим элементам ToolBar?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вы можете локально сохранять значения на клиенте, это не запрещено. На крайний случай, можете где-то в .тхт файл сохранить. И потом оттуда брать значения.

    Я вас понимаю в плане, почему вы это не сделал раньше, но правило стейтлесс относится больше к серверной части, на клиенте это вполне реализуемо
    Ответ написан
  • Как решить проблему "не найдены ссылочные сборки для NETCoreApp,Version=v6.0"?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Открывайте Visual Studio Installer над нашем ПК.
    65d70f7e00608775873243.png

    Далее нажимаете кнопку Изменить
    65d70fbd7f12d068259364.png

    На вкладке Дополнительные компоненты вводим в поиск .NET 6 и выбираем пункт .NET 6 Runtime
    65d710305cf52760206233.png

    Устанавливаем (У меня минус, что бы показать изменение размера и отображение кнопки)
    65d7106a0d7a9895031401.png
    Ответ написан
    Комментировать
  • Почему при навигации между компонентами в Blazor не погружается JS код?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    В blazor использовать кастомные JS скрипты немного сложнее чем вы думаете. Там нужно использовать такую штуку как JSRuntime. А вообще советую прочитать эту статью про JS Interop
    Ответ написан
    Комментировать
  • Почему при установке Sequelize, не устанавливается pgAdmin?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Попробуйте поставить напрямую из официального сайта через installer
    Ответ написан
    Комментировать
  • React. Нормальная ли практика выносить картинки за пределы src в папку public?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Это не то что бы нормальная практика, это стандарт. Почему? Потому что (Согласно документации) элементы, которые доступны в папке public являются общедоступными, а тут я что-то сомневаюсь, что фотографии у вас являются часть бизнес-логики)
    Ответ написан
    Комментировать
  • Почему required проперти не могут иметь более ограничиващий модификатор set\init, чем модиикатор класса, их содержащего?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Обязательные элементы должны быть не менее видимыми, чем содержащие их типы

    Что значит обязательные? У вас в примере есть это:
    public required DDD Dddd { get; internal init; }

    Что это значит? Допустим, у вас класс public class QQQ, а внутри него есть обязательное поле Dddd. Допустим, вы хотите создать объект этого типа из другого проекта. Как вы это сделаете? Ответ - НИКАК.

    Почему? Потому что систему будет требовать инициализировать поле Dddd, но вы его не видете, т.к. оно internal. На этом моменте у вас просто отвалится вся логика программы та и всей платформы .NET. По этому такие вещи просто запрещены

    Почему этот кусок будет работать?
    internal class QQQ
    {
    
        public required DDD Dddd { get; internal init; }
    }


    Потому что в любом месте видимости класса QQQ вы сможете инициализировать обязательное поле, которое имеет бо'льшую область видимости

    Вот тут отличная документация по модификаторам доступа, а вот тут видео об области видимости
    Ответ написан
    4 комментария
  • Как сделать, чтобы yandex maps не выходил за пределы div?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Скорее всего внутренние элементы имеют ширину больше, чем 100%-я ширина блока. Смотрите в инспекторе
    Ответ написан
    1 комментарий
  • Как создать скрытый input для передачи технической информации на другую страницу?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тип hidden не подходит, потому что его можно редактировать? А что из html вы вообще можете НЕ редактировать?

    Вам тут стоит понять одну очень важную штуку: html/css/js образуют client side. Вы должны понимать, почему это называется вообще "Клиентом"? Потому что эта вся информация полностью загружается на клиента и он имеет к ней доступ.

    По этому существует server side - часть программной системы, к какой конечный пользователь не имеет доступа, в отличии от клиентской части.

    Цель сервера - обрабатывать запросы с клиента. Первое, что делает сервер с данными, которые ему отправил клиент - ВАЛИДИРУЕТ. Соответственно, если данные не валидны - запрос разворачивается обратно на клиента и отдаёт ему какую-то ошибку

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

    Client side должен обрабатывать данные перед отправкой на сервер (Но сервер обязан их повторно валидовать) и после получения данных от сервера для наилучшего представления ИХ конечному пользователю

    UPD: для справки. Вы можете полностью редактировать html в режиме реального времени, но он не будет сохранён для всех пользователей, а только для вас, т.к. эта часть загружается только два вас как для конечного пользователя. Сам html хранится на сервере и является результатом работы сервера. Эту часть html, что вы видите в браузере вы можете редактировать.

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

    Проблема в том, что даже после элементарной перезагрузки страницы (Через Ctrl + R или другими способами) это всё будет утеряно и вам загрузится тот самый html/css/js, который является результатом рабыты сервера того сайта, который вы просматриваете
    Ответ написан
    1 комментарий