Задать вопрос
  • Как лучше всего хранить данные о группах в бд?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    table resources
    user_name, user_id, w1_total, w1_used, w2_total, w2_used, w3_total, w3_used, w4_total, w4_used, w5_total, w5_used

    table groups
    user_id, group_name, w1,w2,w3,w4,w5, current_task
    Ответ написан
    Комментировать
  • По какой формуле можно высчитать делитель, с нужным остатком от деления?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ну, раз нет никаких дополнительных требований, то делитель равен самому числу, остаток 0.
    Ответ написан
    1 комментарий
  • Как остановить выполнение функции при нажатии на input?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    var timeoutId;
    // ...
    timeoutId = setTimeout(...
    // ...
    timeoutId = setTimeout(...
    // ...
    function stop() {
      clearTimeout(timeoutId);
    }
    document.getElementById("placeholder_text").click = stop;


    Ну и не называй функцию do, есть ключевое слово do ... while.
    Ответ написан
    Комментировать
  • Как эффективно заменить текущий HTML элемент на другой?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    https://jsfiddle.net/Lfst8wog/1/
    const childElement = document.getElementById('child'); // находим потомка
    const parentElement = childElement.parentNode; // находим родителя
    
    // Создаем новый элемент
    const newElement = document.createElement('p');
    newElement.textContent = 'Новый элемент';
    
    // Заменяем старый элемент на новый
    parentElement.replaceChild(newElement, childElement);


    Или так (https://jsfiddle.net/Lfst8wog/)
    const oldElement = document.getElementById('old');
    
    // Создаем новый элемент
    const newElement = document.createElement('div');
    newElement.textContent = 'Новый элемент';
    
    // Заменяем старый элемент новым
    oldElement.replaceWith(newElement);


    const oldElement = document.getElementById('old');
    
    oldElement.replaceWith(document.createRange().createContextualFragment(`
      <div class="box box2">
        <p1>hello world</p1>
      </div>
    `));
    Ответ написан
    3 комментария
  • Нужны ли везде дивы и как должна выглядеть верстка?

    Бри́тва О́ккама (иногда ле́звие О́ккама) — методологический принцип, в кратком виде гласящий: «Не следует множить сущее без необходимости» (либо «Не следует привлекать новые сущности без крайней на то необходимости»).

    Это главный принцип и верстки, и программирования.

    1. Оборачивайте элемент в div (или другой контейнер), если вы точно знаете, зачем вы это делаете, и без этого нельзя обойтись.

    2. Не вставляйте везде бездумно div. Почитайте про семантическую вёрстку, и используйте разные элементы-обёртки для разных типов контента.

    https://htmlacademy.ru/blog/html/semantics
    Ответ написан
    1 комментарий
  • Как упростить метод, выполняющий операции для всех других методов класса, если он получается слишком раздутым?

    vhood
    @vhood
    Не забывайте отмечать решения
    Здесь Вы принимаете type
    public function makeRequest(array $args, string $type) {
    Здесь выполняете логику в зависимости от typeif($type === "source1") {

    Для каждого type нужно создать класс, который будет выполнять логику, описанную в его блоке if.
    пример

    class SpecificTypeApiService implemets ApiServiceInterface
    {
        public function send()
       {
    //код ниже просто скопирован, стоит вынести что-то в параметры, что-то в конструктор и сделать код более элегантным
    //можно сделать абстрактный класс и делегировать ему общий для разных type (сервисов) функционал
        $proxiesArr = array('72.37.217.3:4145', '174.77.111.196:4145');
              
              $randProx = array_rand($proxiesArr, 1);
              
              $proxyIp = $proxiesArr[$randProx];
            
    //      $proxyIp = '174.77.111.196:4145';
            $url1 = $args[0] . $args[1];
                $headers = [
                'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.105 YaBrowser/21.3.3.230 Yowser/2.5 Safari/537.36'
                ];
    
                $curl = curl_init();
    
            curl_setopt($curl, CURLOPT_PROXY, $proxyIp);
            curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
            curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_VERBOSE, 1); 
            curl_setopt($curl, CURLOPT_POST, false);
            curl_setopt($curl, CURLOPT_URL, $url1);
    
            $result = curl_exec($curl);
    
            if(curl_exec($curl) === false)
            {
            echo 'Ошибка curl: ' . curl_error($curl);
            } else {
            echo 'Операция завершена без каких-либо ошибок';
            }
    
            return $result;
       }
    }


    После, с помощью DI и полиморфизма, отрефакторить существующий код следующим образом:

    Здесь Вы принимаете сервис вместо type
    public function makeRequest(array $args, ApiServiceInterface $apiService) {

    Здесь выполняете логику, но выполнение делегируете сервису$apiService->send();

    Стоит получше подумать над именами классов, переменных и функций.
    Ответ написан
    Комментировать
  • Как упростить метод, выполняющий операции для всех других методов класса, если он получается слишком раздутым?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Сделать декомпозицию и разбить на несколько методов. Или даже на целый класс с группой различных методов с разными опциями.
    Ответ написан
    Комментировать
  • Axios vs Fetch NodeJS - CPU and Memory usage сравнение?

    liaFcipE
    @liaFcipE
    Зачем вы сравниваете эффективность таких вещей? Там же разница будет на уровне погрешности (по моему мнению).

    Я на нашел сходу инфы о том, что нативный fetch основан на node:http, мне казалось это отдельный WebAPI, со своей спецификацией.

    Просто выберите то, что удобнее и проще. Fetch прост, с минимум фич, в то время как Axios - полноценный фреймворк, который что только не умеет.

    В крайнем случае - напишите бенчмарк, дело 5ти минут, но сомневаюсь, что там будет что-то интересное.
    Ответ написан
    Комментировать
  • Почему выдает ошибку 404 NGINX?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Потому что у вас зачем-то в локейшене /api/category/ завершающий /, а он там не нужен. В текущем виде запрос /api/category обрабатывается локейшеном /.
    Ответ написан
  • Стоит ли указывать паспортные данные в анкете соискателя?

    @Drno
    нет конечно. если Вы не хотите 100500 кредитов на Ваше имя от левых организаций
    Ответ написан
    6 комментариев
  • Стоит ли указывать паспортные данные в анкете соискателя?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Нет, не нормально. В нормальных местах такое отдельно и необязательно указывается.
    также его аффилированным лицам

    Попахивает продажей клиентской базы, жди спама
    Ответ написан
    7 комментариев
  • Почему в данном случаи используется enum, а не обычный интерфейс?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ну вот так решил разработчик. Мало ли зачем? У него были какие-то причины - никто их не знает. И вообще, смысл спрашивать в интернете мнение рандомного куска кода, тем более вообще без контекста, а не у самого разработчика этого кода?
    Ответ написан
    3 комментария
  • Как пометить метод Main атрибутом в новейших версиях?

    petermzg
    @petermzg
    Самый лучший программист
    Если вам нужно задавать атрибуты для main. Тогда и добавьте его в проект.
    Top-level statements это для новичков, для облегчения вхождения.
    Просто скрывает точку входа, чтобы каждый раз не писать конструкцию.
    public static class HelloClass 
          {  
               public static void Main(string[] args) 
               { 
                  
               } 
           }

    Вот тут можно задать точку входа.
    6707b12d49bd5046919043.png
    Ответ написан
    1 комментарий
  • Как стать начинающим программистом в текущих реалиях?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Куда легче всего пробиться в программирование?

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

    Мне вообще всё равно, куда идти в плане доходов (лишь бы на еду хватало)

    Почему тогда именно ИТ?

    поскольку знаю, что я не выдающийся человек ни в чём

    Бизнес выдающихся и не ищет в основном.

    - Теоретический опыт по книгам по Java,

    Подозреваю, что сейчас это знает каждый школьник.

    Школьники сейчас читать-то не умеют многие.

    Что вы мне посоветуете?

    Ещё раз хорошо подумать нужно ли вам именно ИТ. Во-первых, в силу хайпа сюда сейчас ломятся все подряд, соответственно прорваться на первое рабочее место очень непросто. Во-вторых, в отрасли довольно большая концентрация тех, кто программирование любит, с такими тяжело конкурировать, а чем выше будете забираться, тем чаще придётся. Есть множество работ, куда попасть легче и где хватать будет не только на еду.
    Ответ написан
    2 комментария
  • Что такое .Net и .Net framework?

    .NET Framework - это старая платформа, которая изначально в 2000х появилась.
    Потом в 2016 или типа того году появился .NET Core и .NET standart.

    .NET Core - новая, кроссплатформенная платформа, в которую изначально завозили всякие новые штуки типа нового JIT, вносили новые API, убирали старые, завозили новые фичи C#.

    .NET standart - спецификация, которая позволяет делать библиотеки, которые работают и на .net framework и на .net core с гарантией совместимости.

    Часть нововведений .NET Core вернулась в .NET Framework, а часть - нет.

    Потом произошёл ребрендинг и .NET Core переименовали в просто .NET, а .netstandard прекратили обновлять, тк все новые api теперь идут только в .NET, но не в .NET Framework.

    Как я понял .Net и .Net framework это программы, которые преобразуют папку с проектом в исполняемый файл, другими словами говоря - компиляторы.

    Не совсем. Есть две вещи:
    1. .NET runtime и .NET SDK
    2. .NET Framework и .NET Framework DevPack
    То что слева - это только рантайм, он отвечает за запуск уже собранных приложений.
    А вот в sdk уже входит компилятор и все необходимые для сборки приложений библиотеки.

    Сами по себе они отличаются тем, что .Net framework создаёт файл, запускающейся только на винде, а .Net - и на маке и на линуксе.


    Различие между .NET Framework и .NET я уже описал выше, но повторю:
    1. .NET Framework - старый/устаревший, менее производительный, и только windows (mono упоминать не будем)
    2. .NET с номером - новый/современный, более производительный, работает на разных платформах.

    Для нового проекта стоит выбирать только номерной .NET (сейчас вроде 9), если у тебя нет весомых доводов для выбора .NET Framework.
    Ответ написан
    4 комментария
  • Что такое .Net и .Net framework?

    Zuguki
    @Zuguki
    I'm working all the time!
    Привет.
    Раньше было разделение на .net framework, .net core и .net standart. Суть в том, что все это фреймворки, которые содержат либы и тд. Просто либы в .net framework - только под винду, а под .net core кросплатформенные решения.

    .net framwork и .net core оба используют внутри себя .net standart
    Сейчас .net framework и .net core объеденили и получился .net (кросплатформенный)
    Ответ написан
    1 комментарий
  • Почему у задачи такое решение?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    А как вы код написали, если не можете понять, как он работает?

    Вы открывали документацию функции, читали, что она делает и какие аргументы принимает?
    Ну, давайте я вам её сюда скопирую:
    Parameters
    indexStart
    The index of the first character to include in the returned substring.
    indexEnd Optional
    The index of the first character to exclude from the returned substring.
    Description
    If indexStart < 0, the index is counted from the end of the string. More formally, in this case, the substring starts at max(indexStart + str.length, 0).
    If indexEnd < 0, the index is counted from the end of the string. More formally, in this case, the substring ends at max(indexEnd + str.length, 0).


    зачем нужен (-2, -1)
    Для выполнения вот этого условия задачи: "если слово заканчивается на мягкий знак, то получите предпоследнюю букву". Я искренне не понимаю, что тут можно добавить...
    Ответ написан
  • Как преобразовать из char массива в string массив в си шарп?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1. На бумажке словами расписать алгоритм
    2. Нарисовать схему алгоритма
    3. Сделать декомпозицию схемы до самых простых действий
    4. Найти в документации по языку методы реализации этих самых простых действий
    5. Написать код
    6. Продебажить и исправить ошибки
    Ответ написан
    Комментировать
  • Как получить список токенов и их баланс у привязанного к приложению кошелька Ton?

    @Everything_is_bad
    Просмотрел все доки и гугл, ответ так и не нашёл.
    а надо всего лишь открыть доки к API которое ты используешь и изучить их. https://toncenter.com/api/v3/index.html
    Ответ написан
    2 комментария
  • Нормально ли использовать var вместо явной типизации в C#?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Вынесено из комментариев.
    Василий Банников , ну, что вам на это сказать?
    Сильно легче код писать таким образом.
    Писать - да, читать - it depends, как говорят англичане.

    Если тебе сложно понять смысл кода без типов - значит кто-то плохие имена дал переменным.
    А разве в legacy 4-5-летней выдержки, над которым поработало много программистов, хороших и разных, по-другому бывает? А ещё имена могут дать хорошие, понятные - но основанные на системе понятий, которая нетривиальна и не попала при этом в документацию. Чтобы понять, о чем я - попробуйте почитать исходники подсистемы маршрутизации в ASP.NET Core. лучше всего - после работы с чем-нибудь типа MVC или Razor Pages: сомневаюсь, что вы сразу въедете, что Model там и Model тут - это разные Model.

    А ещё бывает, что методы называются почти одинаково, но типы значений у них разные. Пример: builder.Services.AddOptions() и builder.Services.AddOptions<TOptions>() из кода конфигурирования контейнера сервисов, методы расширения IServiceCollection для Option Patterns - типы возвращаемых значений у них разные. А их ещё любят цеплять друг к другу к таким же методам через точку - вот и смотри потом, чой-то в ConfigureOptions какие-то лишние параметры вылезли.

    с анонимными типами без var работать было бы очень сложно.
    Правильный вопрос - зачем вообще заставлять работать с анонимными типами? Подозреваю, что их из-за маршрутизации в MVC завезли - как типы параметров, вместо того, чтобы передавать в методы генерации ссылок вместо IDictionary<String,Object>, как это оно там реально требуется. Но, в Microsoft решили, видимо, тогда не делать инициализаторы для словарей (при том, что потом всё равно сделали, не отвертелись), а притащить вместо них анонимные типы (интересно откуда - неужели прямо из JS?). Но это не точно. (Ага, в комментарии мне напомнили про LINQ)

    Тренд говорит об обратном - автоматический вывод типов сейчас есть практически во всех статически-типизированных языках в том или ином виде.
    Это потому что сейчас главное - быстрее писать MVP, для веба - особенно. Ну, а потом можно сказать волшебное слово: "Legacy".

    Ну и помни ещё, что ты же не в блокноте код пишешь
    Но читаешь-то ты его не только в IDE. В частности, MS в своей документации на сайте в примерах очень любит писать var - вот и выбирай потом, что делать: лезть прямо сразу в документацию по API (а ссылки отнюдь не прилагаются) или рисковать упустить что-то важное? А если ещё учесть, что сейчас принято документацию ограничивать примерами (MS любит, да) - оно вообще весело.

    Но, с другой стороны, автор вопроса, похоже, с трех- и более этажными дженериками ещё не сталкивался (ну, или забыл, как они выглядят) - там без var тоже грустно.
    Как-то так
    Ответ написан
    2 комментария