Задать вопрос
  • Принял оффер, завтра выходить на работу, но хочу отказаться - внесут ли в black list?

    Чёрных списков не существует - слишком дорого отказываться от хорошего кандидата на рынке, где имеется дефицит. Тем более, что более высокая зп - это более чем уважительная причина (может даже в ответ контр-оффер предложат с ещё более высокой зп)

    В крайнем случае - следующую попытку сможешь сделать только через полгода.
    Ответ написан
    Комментировать
  • Возможно ли устроиться junior golang без опыта?

    Устроиться без опыта - можно, если твои навыки отвечают требованиям работодателя и ты в итоге попал на этап с техническим собеседованием, чтобы это доказать.
    Ответ написан
    Комментировать
  • Есть ли аналоги корутин Unity в языке c# и как их использовать?

    На сколько я знаю, корутины в Unity реализованы через IEnumerator и объекты WaitForSeconds.

    IEnumerator и IEnumerable - это стандартные интерфейсы, которые используются для реализации перечислений/коллекций и итераторов.

    А вот ожидание в C# ты можешь получить через метод Thread.Sleep (в синхронных методах) или await Task.Delay (в асинхронных методах).
    Ответ написан
    9 комментариев
  • Где взглянуть на C# проект с "эталонной" архитектурой?

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

    Всегда можно к чему-то придраться.
    Качество архитектуры можно понять только в динамике - легко ли вносить изменения в продукт, или сложно.
    А так есть eShopOnWeb и eShopOnContainers
    Ответ написан
    Комментировать
  • Чем отличается домашний интернет от корпоративного?

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

    Ну и ещё тут приходит в гости маржинальность. Бизнес является гораздо более платёжеспособным клиентом, чем частник. По тому можно легко завысить ценник в 10 раз.
    Ответ написан
    Комментировать
  • Как inject Generic interfaces?

    Чтобы можно было резолвить обобщённые интерфейсы, тебе нужно их зарегистрировать. Всё также, как и с необобщёнными интерфейсами:
    services.AddScoped(typeof(IFoo<>), typeof(Foo<>));

    Чтобы твой контроллер мог принимать в себя обобщённый интерфейс как параметр - сам контроллер должен быть обобщённым.
    Но тут сразу возникает проблема с тем, как маршрутизировать к такому контроллеру. По тому просто так нельзя так сделать.
    Ответ написан
    Комментировать
  • Колледж или 10 класс?

    1. Такие вопросы тут уже кучу раз задавали. Где твой навык поиска информации?

    Я хочу найти нормальное окружение с которыми вместе будем писать код и откосить от армии

    Первое сможешь найти разве что в хороших вузах.
    В колледжах, как правило, по профессии работает в лучшем случае 1 или 2 человека с выпуска.

    Смогу ли я устроиться на работу без вышки?

    Зависит только от тебя. Пока что в России нет законов, которые бы обязывали отказывать кандидатам без вышки, по тому большинство работодателей рассматривает всех и выбирает по способности выполнять поставленные задачи.

    Если выбрал колледж нужно ли потом в вуз поступить?

    Можно, и вроде как можно будет пропустить первый курс в таком случае.
    Нужность определяй для себя сам. Например я в подобной ситуации решил для себя, что мне пока не нужно, хотя сейчас, спустя 4 года работы, подумываю о поступлении куда-нибудь для расширения кругозора.

    я не из России.

    Не дочитал до этого момента. Тогда на счёт законов лучше уточни у себя. В той же РБ, как я слышал, такой закон есть (проверять не буду).
    Аналогично и с колледжами. Описывал ту ситуацию, которую видел сам.
    Ответ написан
    Комментировать
  • Как корректно получить данные из SqliteDataReader?


    sqlCommandText = "SELECT * FROM table WHERE id='"+Id+"'"; // Смущает +Id+, так вроде не пишут, нужно @?


    Правильно, что смущает.
    1. SELECT * лучше не писать. Лучше писать конкретные поля, которые тебе нужны
    2. Вместо конкатенации следует использовать параметризованные запросы. При использовании EF Core и Dapper их можно делать через интерполяцию, но тут придётся ручками добавлять параметры в свойство Parameters

    using var command = new SqliteCommand
    {
        CommandText = "SELECT id, txt, floating_point, raw_bytes FROM table WHERE id=$id",
        Parameters = {
          new SqliteParameter("$id", 123)
        },
        Connection = new SqliteConnection() // Тут стоит подставить настоящий connection
    };
    
    using var reader = await command.ExecuteReaderAsync(); // Вместо async-await можно использовать и синхронные методы
    var data = new List<(int id, string text, double floatingPoint, byte[] blob>(); // Вместо кортежа можно нормальный тип
    while (await reader.ReadAsync())
    {
      var id = await reader.GetFieldValueAsync<int>(0); //integer
      var text = await reader.GetFieldValueAsync<string>(1); //text
      var value = await reader.GetFieldValueAsync<double>(2); // real
      var blob = await reader.GetFieldValueAsync<byte[]>(3); // blob
      data.Add((id, text, value, blob));
    }
    Ответ написан
    4 комментария
  • Как в С++ удалить/добавить элементы в массив?

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

    С удалением всё аналогично.

    std::vector делает всё примерно то же самое, только он не создаёт новый массив при удалении (если не вызвать truncate), а просто уменьшает счётчик занятых элементов, да и при добавлении новых элементов создаёт массив с запасом.
    Ответ написан
  • Как подключиться к интернету находясь в другой стране?

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

    Нет, не можешь. Сначала твой компьютер в любом случае попадает в физическую сеть провайдера, а потом уже в мировой интернет.

    Если тебе нужен казахский интернет, то тебе всё равно нужно использовать VPN, где сервер будет в казахстане (хотябы у твоего друга)
    Ответ написан
    Комментировать
  • Как найти стажировку в крупной компании?

    Обычно на сайте компании есть отдельный раздел с карьерой/образованием/стажировками.
    Ответ написан
    Комментировать
  • Какой паттерн использовать?

    Шаблонный

    Шаблонный что?
    итератор

    А что ты итерировать собрался?

    Не нужно тут придумывать название паттерна и пытаться по нему решить задачу.
    Сама задача решается тупо рекурсивным проходом по всем подпапкам.
    В зависимости от того, как конкретно ты будешь это реализовывать, будут наблюдаться разные паттерны.
    Ответ написан
    Комментировать
  • Есть возможность локонично реализовать множественную фильтрацию в if let?

    vabka
    @vabka Куратор тега Rust
    В твоём случае логичнее было бы использовать метод any, если ты хочешь просто проверить, что такие элементы существуют.

    Как вариант ты можешь сделать так, если тебе нужны потом переменные poz_*:
    fn read() -> Result<(), io::Err> {
      //let vec: Vec<u8> = !vec[2, 5, 8, 10, 15, 16];
      let pos1 = self.responce.iter().position(|&el| el == 8).ok_or_else(||io::Err::new("understading message"))?;
      let pos2 = self.responce.iter().position(|&el| el == 15).ok_or_else(||io::Err::new("understading message"))?;
      let pos3 = self.responce.iter().position(|&el| el == 12).ok_or_else(||io::Err::new("understading message"))?;
      return Ok(());
    }

    Ещё можно попробовать let-else
    Ответ написан
    8 комментариев
  • Spring или Asp.net core для будущей работы?

    Зарплаты примерно и там и там если не одинаковые, то очень близкие.
    Вакансий на Java/Spring больше, чем на C#/ASP NET Core, но во втором случае и конкуренции меньше. В целом проблем с поиском работы нет.

    Я буду жабой, которая хвалит своё болото и предложу углубиться в ASP.NET Core.
    Мне C# кажется более перспективным языком и платформой чем Java. (хотя ещё я бы посмотрел на Kotlin)

    Но тебе всё равно следует посмотреть ситуацию на конкретно твоём рынке труда и принять окончательное решение.
    Учитывай, что ситуация за 3-4 года 10 раз может поменяться.
    Ответ написан
    2 комментария
  • Можно ли получить тип интерфейса, переданного в дженерик-метод и правильно ли использовать его таким способом?

    Ну ты можешь сделать так:
    switch(parameter) {
      case IPrintService_IncomeProductLabelParams incomeProductLabel: {
        // ...
        break;
      }
      case IPrintService_WLabelParams wLabel: {
        // ...
        break;
      }
      // итд
      default:
        // ...
      break;
    }

    Но мне не понятен смысл женерика и интерфейсов с пропертями.
    Ты собираешься делать параметры ещё и структурами?
    В принципе тут можно избавиться от интерфейсов вообще и оставить только конкретные классы, а в IPrintService сделать несколько перегрузок, например.
    Или сделать по интерфейсу для каждого типа этикеток.

    Вообще, я у тебя тут вижу три разные вещи у этикеток:
    1. Какой принтер используется (PrinterName)
    2. Параметры задания на печать (Copy)
    3. Параметры самой этикетки. Её тип и, например, SKU товара.
    Попробуй подумать с этой стороны.
    Например ты можешь сделать такой IPrinter, который будет принимать в себя PrintTask, у которого будет написано количество нужных копий и Payload который будет уже самой этикеткой.
    Конкретная реализация IPrinter может быть привязана к одному физическому принтеру.

    А Payload ты можешь формировать отдельно от сервиса печати. Например у тебя может быть какая-нибудь "служба шаблонов этикеток", в которую ты передаёшь объект с параметрами этикетки, а она отдаёт тебе уже сформированный объект этикетки, который пригоден для печати (Что там вообще принтер принимает? Картинку?)
    Ответ написан
  • Как исправить "cannot borrow as mutable"?

    vabka
    @vabka Куратор тега Rust
    Попробуй вместо того что у тебя написано использовать entry()
    self.on_event_closure
      .entry(event)
      .or_insert_with(Vec::new)
      .and_modify(move |vec| vec.push(f));


    А нельзя borrow as mutable из-за того что get заимствует on_event_closure
    Ответ написан
    1 комментарий
  • В каких случаях логичней чтобы получить половину умножать на 1/2, а в каких делить на 2?

    Никогда если честно не видел, чтобы умножали на 0.5 там, где нужно поделить на 2.

    В теории, если у тебя очень глупый компилятор, то умножение на 0.5 будет быстрее, чем деление на 2.

    Ещё это может иметь смысл, если у тебя есть число типа int, и ты хочешь его поделить на два, и чтобы в результате получилось число типа double. Тогда умножение на 0.5 будет компактнее, чем приведение типов явно.

    В общем нужно смотреть на конкретную ситуацию. А математического смысла за этим не стоит
    Ответ написан
    Комментировать
  • Так ли проходит день стажера?

    У меня было что-то похожее.
    Так что предположу, что это норма.

    Но по-хорошему ты не должен оставаться 1-на-1 с кодом и должен быть где-то человек, которому ты можешь задавать вопросы (пусть он и не будет с тобой рядом весь день сидеть)


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

    Тогда это норма вдвойне.
    В 90% случаев ты попадаешь не в стартап, где нет кода, а уже в сложившуюся команду, особенно если ты новичок.
    Ответ написан
    2 комментария
  • Какой самый правильный, на ваш взгляд, способ хранить динамические настройки?

    Ну тут либо json (было бы хорошо, если СУБД поддерживает их нативно и можно построить индекс по содержимому json)

    Либо паттерн Entity-Attribute-Value (загугли)
    Ответ написан
    Комментировать