• Как подключить proto файлы к проекту?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Клик сюда
    660ebe1a9e832661047201.jpeg

    Далее сюда
    660ebe371e0df243799837.png

    Подключаете .proto файл. После этого делает Rebuild вашего solution'а. Потом даблклик по проекту, в этом .csproj файле ищите секцию ItemGroup в которой будут ваши Protobuf. К ним додаёте аттрибут ProtoRoot, который (Для удобной работы) должен быть таким же как и пусть в аттрибуте Include без указания названия файла .proto

    UPD:
    Так же стоит отметить, чтобы импортировать в .proto ваш другой .proto, они должны быть хотя бы на одном уровне. Другими словами, вы можете импортировать только файлы, который находятся по архитектуре на том же уровне или ниже, потому что в import запрещено использования символа точки и запятой. Это значит, что вы не сможете выйти на уровень выше
    Ответ написан
    7 комментариев
  • Создается dll вместо exe?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    dll это библиотека. Значит вам нужен проект не библиотека, а, допустим, консольное приложение
    Ответ написан
    Комментировать
  • Selenium не может нажать на radio button из- за befor, что делать?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    В Selenium должна быть функция ожидания появления элемента. Вот отличная статья на Хабре по Selenium + Python для ожидания появления элемента. Так же можете использовать XPath, что бы более эффективно находить нужные элементы. Вот отличная статья на Хабре и по этому поводу
    Ответ написан
    Комментировать
  • Какую должность я занимаю?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    IT-Разнорабочий, оплата почасовая высчитывается по формуле:
    Количество отработанных часов * стоимость часа работы * коэффициент тяжести работы


    Стоимость часа работы высчитывается по формуле:
    (Количество лет опыта работы с текущей задачей + 0.2) * стандартная оплата за час работы


    Все коэффициенты можете найти в таблице ниже...
    Ответ написан
    4 комментария
  • В какую сторону учиться, QA, front end или back end для реалистичного входа?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ок, обо всём по порядку

    IT в самом худшем положении чем когда-либо

    Да, есть такое. В первую очередь это вызвано из-за быстрорастущей сферы ИИ. Я думаю вы в курсе, что уже сейчас есть нейронки, которые могут по наброску написать страницу сайта на React, что в 1 000 раз быстрее, чем сделал это джун, и в столько же раз дешевле. Зачем тогда держать джунов? Это и есть одна из причин, по которой требования растут.

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

    И третья причина, это огромный приток людей в сферу ИТ. У нас очень любят шутить: "Если ты попробовал всё и у тебя ничего не получилось в жизни, иди в IT, сюда идут все кто ничего не смог добиться". Вообще это достаточно странно, потому что программисты должны быть умными и знать очень много, тут люди могут всю жизнь учиться. Почему так случилось? Потому что пришёл тот же PHP, Python и прочее, где низки порог вхождения, и тут уже всё стаёт на свои места. Даже школьники пишут всякую дичь на PHP и очень этим гордятся.

    Со стороны работодателя, как понять, что ты принимаешь на роботу человека с опытом и мозгами в голове, а не школьника? Поднимать требования!

    Почему поднимаются ЕЩЁ требования? Потому что если очень много людей на рынке, ты можешь выставлять более высокие требования. Это природны отбор и тут нет ничего удивительного. Скоро это всё будет на уровне вундеркиндов (с вундервафлями). За год выпускается группа в универе где есть обученные студенты программирования. В такой группе может быть человек 30, на потоке 120 и больше. Таких университетов 100500. Как понять кто лучше из них, кто знает и хочет работать, а кто пошёл сюда чисто, потому что он тупой и больше никуда его не взяли?

    конкуренция адская, front-end, UX/UI дизайнеров и тестировщиков/QA -- как собак нерезаных и все профнепригодны

    Ещё одна причина по которой это всё происходит. Почему вообще IT стало очень популярное? Потому что большинство заказов на проекты были западные, соответственно, з/п в долларах это очень сладкая и желательная вещь для всех. Но теперь рынок в странах бывшего СССР очень сильно просел из-за таких вещей.

    А теперь подумайте, выгнали целый отдел программистов, мидлы, синьйоры и т.д. и сидят они без работы. Месяц, два, пол года. Мидл, который по факту стоит около 4000 долларов, за пол года без работы будет пробовать подавать заявку на вакансии джун/джун-стронг с зп 2000-3000 долларов. Почему? Потому что у него нет работы

    А как со стороны работодателей? Взять перспективного джуна по цене 1000 долларов на вакансию 2000 долларов, либо взять мидла, который стоит 4000 долларов, по платить ему 2000-3000? Конечно, тут все очевидно.

    А теперь все эти факты в совокупности дают очень большой регресс для рынка. Хочешь нормально зарабатывать? Ты должен составить конкуренцию и победить в этом среди этих 300 человек. А среди них может быть кто угодно. И при этом всё, вероятность пройти хотя бы ДО СОБЕСЕДОВАНИЯ крайне мала. Скорее всего ваш непрочитанный отзыв завернут после 3х недель ожидания и всё.

    КУДА ИДТИ И КЕМ БЫТЬ?
    Вообще в вашей ситуации, тут больше вопрос "Как?", а не "Кем?". Если вы посмотрите на статистику, то примерно все developer стеки получают одинаково на уровне senoir.

    Так же не стоит думать, что перейти из QA и Dev'ы можно вот просто так. Сейчас разработчики сами отлично умеют всё тестировать, так что тут сложно сказать что-то... Вообще QA стек используется одни инструменты, deve стек использует другие инструменты для работы, по этому тут так же не получится прыгать туда-сюда. Даже если вы будете QA и захотите перейти в dev'ы и программирования не убежишь

    А вообще я бы посоветовал заводить общение с программистами и учить, учить и ещё раз учить. Потому что тут играет ещё одно очень важное правило, что вы никому даже бесплатно не нужны, если вы приносите прибыть. Что бы приносить прибыть, не получится прийти и сказать: "Давайте я тут у вас потусуюсь, что-то учить буду, 3 строки напишу, а вы мне стакан риса". Да, так не прокатит, как бы это печально не звучало.

    Года 2 назад даже с небольшими, но уверенными знаниями программирования вас бы с руками и ногами забрали, если бы вы сказали, что вы там алгоритмы знаете, или на C++ умеет писать программы. Та вам все дороги открыты были бы
    Ответ написан
    2 комментария
  • Как правильно настроить валидацию пароля в Blazor FluentValidation?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вы используете
    fv.RegisterValidatorsFromAssemblyContaining<LoginModelValidation>())


    Это автоматическая регистрация сервисов валидаци, но она не работает на .net 8 (И, вроде бы на .net 7, но жто не точно). По этому, если вы используете указанную версию .net, вас все валидаторы нужно регистрировать вручную
    Ответ написан
  • Как создать QR-код по строке и направить его пользователю на скачивание?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Для генерации можете использовать этот QR Code Generator (Я его не пробовал, по этому не знаю что там к чему).
    Для UI по QR кодам можете использовать QRCode от Ant Design
    Ответ написан
    Комментировать
  • Как получить текст ответа ASP Net Core API?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Основным методом общения между клиентом и сервером являются Status Code. Зачем вам передавать точное описание, что там оно не нашло, если вы можете просто передавать 404 и клиент пусть сам генерирует себе ошибку.

    Вообще забудьте про этот бред return StatusCode. Есть нормальные методы StatusResult к которым относятся Ok(), BadRequest() и тот же NotFound(). В эти методы можете передавать какие-то мета-данные если вам нужно. Либо можете использовать Response.Headers. Но если вам прям очень-очень нужно впихнуть туда вот это вообще об ошибке, так что бы ваш сервер был на все руки мастер, можете сделать что-то типа такого:

    return NotFound(new { message = "Omg, Not Found!!!" });


    UPD:
    Как на клиенте через JS вытянуть ошибку? Я бы использовал просто ajax:

    $.ajax({
        url: '...',
        method: 'get',
        success: (response): {
            let data = JSON.parse(response.responseText);
            console.log(data.message); //Omg, Not Found!!!
        }
    });
    Ответ написан
    3 комментария
  • Почему не работает поиск по классу?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Обратите внимание, что есть методы который .getElemtByX(), а есть .getElemtsByX(). Логично предположить, что .getElements() будет возвращать вам массив элементов, по этому эта строка у вас и не работает:

    document.getElementsByClassName('child2').textContent = 'Измененная строка 2'; // не работает!
    Ответ написан
    5 комментариев
  • Как сделать редирект на refresh-token когда получаю AuthenticationFailed на asp.net core web api?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Решил. Как это всё делается? Внутрь onAuthenticationFailed вставляем этот код:
    if (context.Exception?.GetType() == typeof(SecurityTokenExpiredException))
    {
        IJwtService jwtService = context.HttpContext.RequestServices.GetService<IJwtService>();
    
        if (context.Request.Cookies.TryGetValue("refresh-token", out string refreshToken))
        {
            Result<ClaimsPrincipal> principalResult = jwtService.ValidateAndDecodeToken(refreshToken);
            if (!principalResult.IsSuccess || principalResult.Value == null)
            {
                return Task.CompletedTask;
            }
    
            Result<string> renewAccessTokenResult = jwtService.Encode(principalResult.Value);
            if (!renewAccessTokenResult.IsSuccess && renewAccessTokenResult.ValidationErrors.Any())
            {
                return Task.CompletedTask;
            }
    
            context.Response.Cookies.Append("access-token", renewAccessTokenResult.Value);
            context.Response.StatusCode = 200;
            context.HttpContext.User = principalResult.Value;
            context.Principal = principalResult.Value;
            context.Success();
        }
    }
    return Task.CompletedTask;


    Т.е.. вызывает сервис, берём refresh token и из него извлекаем ClaimPrincipal, далее на его основе делаем access token из того же сервиса и обрабатываем запрос, что бы он возвращал нужный статус. Как говорил Andrei SunnyPh , это допустимая практика (Спасибо)
    Ответ написан
    Комментировать
  • Не работает js на jquery-3.7.0?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    В вашем коде вы используете неправильные имена обработчиков для успеха и ошибки ajax-запроса. Вместо done и fail используйте success и error, соответственно.

    UPD:
    Вот стандартный пример ajax-запроса:
    $.ajax({
        url: 'https://domain.com/router/',
        method: 'post', // NOT A TYPE
        data: JSON.stringify({ ... }),
        dataType: 'application/json; charset=utf-8',
        success: (response) => { ... },
        error: (response) => { ... }
    })


    .done и .fail срабатываю, когда у вас получилось либо не получилось сделать запрос. success и error срабатывают в зависимости от ответа сервера.
    Ответ написан
    2 комментария
  • Как сделать так чтобы проект который создан на двух пользователей у меня запускался?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Не понимаю, причём тут ваш друг и какой стороной он сюда относится, но вы пробовали гуглить вообще ошибку? К примеру вот запрос где в результате вам выдаст очень много информации, которую вы так и не смогли прочитать самостоятельно.

    Вот вообще отдельный пост на Хабре, т.е. по факту, дубликат, где человек пишет решение.

    Вы вообще пробовали искать? И переустановка вам помогла? Вы вообще её пробовали делать? Почему вы это не уточнили в вопросе?
    Ответ написан
    2 комментария
  • Как развернуть сайт на asp.net?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    1. Делаете паблиш проекта
    2. Выбираете целевую ОС
    3. Делаете коннект на сервер
    4. Заливаете туда то, что у вас получилось в результате Паблиша через FileZilla
    5. Настраиваете сервис .net приложения
    6. Настраиваете nginx, что бы сервер постоянно работал
    7. Запускаете сам сервис приложения
    Ответ написан
    2 комментария
  • Как перенести данные из html в VS?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну блин... Ну и вопрос конечно вы задали...

    Через JS можете отправить по HTTP (По желанию). Если таблица Excel, тогда подключайте соответствующие пакеты (Не в html)
    Ответ написан
    Комментировать
  • Как сделать вывод текста из textbox1 и textbox2 в textbox3?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Как-то так...

    string[] employees = textBox1.Text.Split('\n');
    string[] actions = textBox2.Text.Split('\n');
    
    for (int i = 0; i < employees.Length; i++)
    {
        for (int j = 0; j < actions.Length; j++)
        {
            if (actions[j].Contains(employees[i]))
            {
                textBox3.Text += $"{actions[j]}\n";
            }
        }
    }
    Ответ написан
    3 комментария
  • Почему служба Windows с Timer отрабатывает только один раз?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Простите, у вас проблемы с установкой Visual Studio? Или у вас компилятор сломался, что вы не можете запустить код?
    Ответ написан
  • Почему это не работает?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тут есть два варианта, либо оно всё же присваивается, просто вы его не можете использовать так, как нужно, либо у вас условие if равно false. Больше вариантов не может быть

    UPD:
    Судя по логам, у вас выводится число 10, значит внутрь блока if программа заходит, значит всё должно работать. Вы лучше не 10 выводите в Debug.Log, а значение переменной textret
    Ответ написан
    Комментировать
  • Что делать если происходит такая ошибка?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Пожалуйста, зачем вы полезли игры делать, если вы C# не знаете? Что такое NULL?

    У вас ошибка NullReferenceException, значит что объект NULL. Почему? Вы получаете объект zacaz1 используя GetComponent<trigger_test>. Что делает GetComponent<trigger_test>? Возвращает присоединённый компонент указанного объекта (текущего). Если при обращении к zacaz1 вы получаете NULL, о чём это говорит? О том, что у этого компонента нет объекта trigger_test
    Ответ написан
    Комментировать