Задать вопрос
  • C# цикл FOR (вопрос по тестовому заданию)?

    @oleg_ods
    Если предположить что цель метода вернуть List с именами в обратном порядке, то можно развернуть цикл и метод Insert заменить на Add.

    List<string> GetNames() 
    {
       List<string> ss = new List<string>();
       for (int i = 10000000; i >= 0; i--) {
           ss.Add(GetName(i)); // GetName - это просто какая-то функция, которая возвращает нам строку
       }
       return ss;
    }


    List под капотом содержит массив.
    Принцип работы метода Insert:
    1) Проверить достаточно ли места во внутреннем массиве. См. свойство Capacity.
    2) Если недостаточно, то расширить массив в 2 раза.
    3) Сместить все последующие элементы на одну позицию вперед.
    4) Добавить в нужный индекс значение.

    Принцип работы метода Add:
    1) Проверить достаточно ли места во внутреннем массиве. См. свойство Capacity.
    2) Если недостаточно, то расширить массив в 2 раза.
    3) Вставить значение в конец массива.

    Соответственно при использовании метода Insert, в Вашем случае, будет очень много операций копирования значений.

    Второе, если на момент создания List в методе известно кол-во элементов которые он должен содержать, то можно использовать конструктор List(int capacity), который изначально создаст List нужного размера. Так Вы избавитесь от необходимости динамически расширять List при переполнении внутреннего массива.

    P.S. Для общего образования можете погонять альтернативные реализации методов через библиотеку DotNetBenchmark и сравнить на сколько вырастет производительность в каждом случае.
    Ответ написан
  • Какие данные должны возвращать GET-запросы к вложенным ресурсам в rest api?

    @romicohen
    Системный Архитектор
    Смотри, такие роуты

    /organizations/{organizationId}/departments/{departmentId}/employees/{employeeId}

    (обычно без слэша на конце) используют когда речь идет о древовидной иерархии.

    Т.е. когда у тебя для одной организации /organizations/{organizationId} есть один или более департаментов, и для каждого департамента /organizations/{organizationId}/departments/{departmentId} есть один и более эмплоеров.

    По идее, ты можешь получить всё дерево целиком:

    GET /departments

    даже не вопрос :) А можешь на этот же роут отдавать не дерево, а простой список айдишников организаций. Тут в зависимости от твоих целей.

    А можешь так:

    GET /departments?mode=list (список аудишников)

    GET /departments?mode=tree (всё дерево)

    вот это:

    GET /organizations/{organizationId}/departments - подразумевает что ты отдаешь все департаменты для какой-то определенной организации ({organizationId}) - то же самое, можешь списком, можешь деревом, без разницы ))

    Всё зависит от потребностей фронта.

    Общий принцип: не отдавать больше, чем нужно :)
    Ответ написан
    1 комментарий
  • Существует ли такой алгорим?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Я так понял задача в том, а есть ли алгоритм, который для двух входных чисел всегда выводит их сумму, но невозможно доказать, а выводит ли он ее или что-то другое.

    Есть такой алгоритм. В общем случае он выглядит так:

    Read(a);
    Read(b);
    DoSomething(a, b);
    Write(a+b);


    Перед выводом суммы чисел есть какой-то алгоритм, который что-то делает. Если он виснет, то и весь алгоритм виснет. Если он не виснет - то весь алгоритм выдаст сумму. Но вот определить, а виснет ли заданная программа в общем случае - нельзя.

    Поэтому 100% существует такой DoSomething, про который формально доказать что он не виснет нельзя. Иначе бы проблема остановки решалась.
    Ответ написан
    4 комментария
  • Можно ли давать людям сервера на docker?

    @Akela_wolf
    Extreme Programmer
    Docker != VPS

    Главное отличие: VPS - это сервер к которому пользователь имеет полный доступ и может устанавливать и запускать любые программы. Docker - это инструмент для запуска единственного процесса в определенном окружении.

    Чтобы раздавать другим людям серверы нужен гипервизор. Чтобы установить гипервизор нужен полноценный сервер, а не VDS.
    Ответ написан
    Комментировать
  • .baml файл? как редактировать и сохранить в проект?

    Nipheris
    @Nipheris Куратор тега C#
    XAML и так компЕлируется в BAML, когда вы собираете ваш проект, и встраивается в ресурсы результирующей сборки.

    Поэтому неясно, почему вы это спрашиваете и почему это вас беспокоит. Какой у вас тип проекта и какую UI-библиотеку вы используете?
    Ответ написан
    9 комментариев
  • Какую базу и способ хранения выбрать?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    База на 30гб? Какая смешная кроха.

    Да сгенерируйте себе синтетических данных и поиграйтесь с ними. Я понимаю неудобно на локальной машине щупать базу в десяток террабайт - но лишь только 30гб не проблема просто сгенерировать и посмотреть вживую.
    Ответ написан
    1 комментарий
  • Вам нужно нанять "Android junior developer". Какие у вас будут требования?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Те навыки, которые нужны на проектах куда идет найм.
    Ответ написан
  • Как выпускать электронные подписи?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    все должно быть в нашей системе
    А зачем клиенту доверять вам закрытый ключ своего сертификата?
    Клиент на вашем сайте привязывает свой открытый сертификат к своей учётной записи. Вы удостоверяетесь, что подпись принадлежит ему, подписывая на клиентской стороне случайный блок и проверяя подпись на своей стороне. Затем вы храните сертификат у себя и проверяете с его помощью достоверность подписи клиента.
    В каком именно из УЦ клиент сгенерировал свою подпись вас касаться не должно. Главное, чтобы переданный вам открытый сертификат был действителен, то есть не был просрочен и цепочка подписей прослеживалась до одного из признаваемых вами корневых УЦ.
    Ответ написан
    5 комментариев
  • Как провалидировать что строка base64 является изображением?

    @PavelMos
    https://docs.python.org/3/library/imghdr.html

    работает с файлами и с объектами

    но пишут что он тоже проверяет только заголовок файла . Но просмотрщики графики всё равно будут пытаться отобразить частично даже поврежденный файл, значит, само понятие, как валидный JPEG, не совсем корректно. Может быть, нужен полностью валидный, который откроется до конца ?

    def what(file, h=None):
        f = None
        try:
            if h is None:
                if isinstance(file, basestring):
                    f = open(file, 'rb')
                    h = f.read(32)
                else:
                    location = file.tell()
                    h = file.read(32)
                    file.seek(location)
            for tf in tests:
                res = tf(h, f)
                if res:
                    return res
        finally:
            if f: f.close()
        return None
    Ответ написан
    Комментировать
  • Как изучить C c нуля?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Уэйт, Прата, Мартин Язык С (PDF, прямая ссылка!)

    Книжка далеко не новая, ну так и язык С достаточно стар.
    Когда-то я сам начинал по этой книжке.
    Ответ написан
    Комментировать
  • Как лучше всего отучиться на программиста чтобы вкатиться в it?

    Jacen11
    @Jacen11
    пойти на заочку думаю ибо уже почувствовал вкус каких-никаких денег и сидеть с пустыми карманами как-то уже некамильфо.

    бросить работу и учиться в вузе, живя на гроши и не получая опыт работы хоть в какой-то сфере

    кажется вы уже выбрали вариант и просто ждете одобрения. Ну ок, одобряю

    я потеряю два года жизни
    ну вы же будете продолжать жить, в чем потеря то. Со временем разница в стаже все больше будет сглаживаться

    как мне быть?
    эта ответственность полностью на вас. Ваша же жизнь, вам и виднее со своей колокольни. В принципе все правильно описали. Правда не совсем понял зачем эта учеба все таки. Сейчас книжки курсы все доступны, репетитора нанять можно если что
    Ответ написан
    Комментировать
  • Как лучше всего отучиться на программиста чтобы вкатиться в it?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Делай свои проекты, нарабатывай опыт.
    Когда научишься программировать, у тебя будет портфолио и тебя смогут нанять на галеры работать.
    Программирование - это не язык программирования, а стиль мышления и образ жизни.
    Ответ написан
    2 комментария
  • Как отследить статусы Push-уведомлений на android и ios?

    Для этих целей не обязательно использовать SDK, всё в ваших руках. Вы в мобилке можете подписаться на событие получения пуша, и как только он приходит отправляете запрос на свой backend с информацией что пуш был получен.
    Ответ написан
    9 комментариев
  • На что установить сервер?

    Adamos
    @Adamos
    "Дедик" - это dedicated server, полностью ваш железный сервер в чьем-то датацентре.
    Да, на нем можно без всяких раздумий запустить винду и елозить мышкой. Но он стоит, как крыло от самолета, и вас вообще не должен интересовать.
    Для пет-сервера, которому не нужно ни выдерживать наплыв пользователей, ни крутить тяжелые задачи - самый дешевый VPS за 55 руб./мес., скорее всего, будет более чем достаточен.
    НО! Никаких мышек по рабочему столу. Линукс, командная строка, вся свобода администрирования...
    Ответ написан
    2 комментария
  • Как спарсить json?

    @Akela_wolf
    Extreme Programmer
    Насколько я вижу по структуре JSON у вас здесь List<Map<String, RegisterRequest>>
    Ответ написан
    Комментировать
  • Законно ли писать программу из процедур без in/out параметров, которые оперируют глобальными переменными?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    За такой код, по идее, надо бить по рукам.

    Развивать и поддерживать его невозможно уже или станет в ближайшем будущем. Надо срочно рефакторить или вообще переписывать части с нуля.

    Очевидно, что писал это кто-то вообще без опыта или "переучившийся" на си с какого-то другого древнего языка.

    Солидарен с другими отвечающими: если нет возможности это исправить - бегите.
    Ответ написан
    3 комментария
  • Почему PL/SQL не популярен?

    @Akela_wolf
    Extreme Programmer
    Потому что это язык привязанный к БД Oracle. На нем, конечно, можно многое делать, но нет Oracle - нет и приложения на PL/SQL. А Oracle дорог (а сейчас еще и в "зоне риска"). Поэтому PL/SQL - это достаточно специфичный язык программирования, ориентированный на обработку данных в БД.
    Скажем, написать на PL/SQL сайт, наверное, можно. Но зачем, если есть более подходящие для этой цели инструменты?

    В отличие от него, C++/Java/C#/Javascript/Typescript/Python и пр. имеют значительно более широкое применение.
    Ответ написан
  • Какую функцию выполняет json файл в этом коде?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    В контексте самого HTML/JS - никакого.
    Но вообще, это список зависимостей для какого-то установщика/сборщика.
    Ответ написан
    2 комментария