Задать вопрос
  • Почему параметры командной строки ломаются, если на конце у них слеш?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    конечный слэш (в windows стиле!)

    Это называется обратный слэш/бекслэш.

    потому что если уж на то пошло то именно строка

    param1 with space and leading slash\"

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


    Про эскейп вы поняли верно. Но:
    • Первый аргумент - это всегда имя файла программы
    • Второй аргумент слился воедино с param2 не смотря на кавычки потому, что param2 стоит вплотную, между аргументами нет разделителя-пробела. Пробел в кавычках - это часть предыдущего аргумента

    .

    это же должен быть высоко-интелектуальный интерпретатор с эскейпом?!

    Мысли читать должен?)
    Ответ написан
  • Как сработает переопределение?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Метод помечен виртуальным (virtual), поэтому компилятор подставляет код виртуального вызова метода (IL-инструкция callvirt), а не непосредственного (call). В дотнете у каждого объекта есть неявная ссылка на его соответствующий (реальный) объект-тип. Через эту ссылку находится адрес правильного метода.

    В других языках все может быть устроено иначе. А об устройстве дотнета более подробно вы можете почитать в книжке Джеффри Рихтера "CLR via C#...".
    Ответ написан
    Комментировать
  • Как организовать паттерн "репозиторий" с возможностью переключаться на разные СУБД, а именно в c#?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Это для получается для каждого репозитория нужно писать getter/setter в главном репозитории? Очень много и накладно.

    Это можно решать метапрограммированием через Reflection API и дженерики.

    Для переключения между субд я решил сделать Фабрику. Но на этом и возник ступор.

    Реализации фабрик для этого уже написаны и называются IoC-контейнерами. Принципы работы с ними можно посмотреть здесь. Ну или где угодно в интернете. Популярные реализации: Castle Windsor, Unity, Ninject и т.п.

    Суть в том, что контейнер сначала можно настроить:
    interface IMyEntityRepository {...}
    class MySqlEntityRpository: IMyEntityRepository  {...}
    ...
    config.Bind<IMyEntityRepository>().ImplementsBy<MySqlEntityRpository>();


    А потом позвать:
    var repo = ioCContainer.Get<IMyEntityRepository>();


    Кроме очевидных плюсов, IoC-контейнеры могут:
    1. собирать полный граф зависимостей по своей таблице (A зависит от B, B от C и т.п., внедряя необходимые реализации автоматически, т.е. мы можем создавать сразу A)
    2. конфигурироваться без перекомпиляции (autowiring (автоматический поиск реализаций заданных интерфейсов) или по информации из конфиг-файла, вроде XML).
    Ответ написан
    6 комментариев
  • Как в представлении Create/Update задать не ID связной сущности а поле Name?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Конструктор SelectList имеет сигнатуру :
    public SelectList (System.Collections.IEnumerable items, 
                       string dataValueField, 
                       string dataTextField,
                       object selectedValue);

    Поэтому вторым параметром необходимо указать имя свойства для значений элементов option:
    new SelectList(_context.Department, 
                   nameof(Department.DepartmentID), 
                   nameof(Department.Name), 
                   person.DepartmentID);
    Ответ написан
    1 комментарий
  • Не получается реализовать в классе записи и чтения в/из файла. Какие действия посоветуете?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Так, как вы написали в комментариях - не прокатит для сложных объектов, вроде Sport.

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

    Во-вторых, у вас внутри объекта есть динамические члены (способные изменять свои размеры) - vector и string. Благодаря этому объект имеет многомерное представление в памяти и вам необходимо придумать, как спроецировать его на "плоскую" память, записать его почленно. Если с char, int, float все очевидно (их размеры известены на этапе компиляции: sizeof(char), sizeof(int), sizeof(float)), то для string, например, нужно сначала сохранить его размер (чтобы потом знать, сколько читать из файла), а потом записать содержимое. С vector - аналогично, за тем исключением, что это тот же Sport и вам нужно вызвать функцию сохранения для каждого ребенка текущего объекта (и для их детей, т.е. рекуррентно обойти дерево владения).

    Чтение производить в обратном порядке.
    Ответ написан
    Комментировать
  • Учить программирование сейчас или потом?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Без диплома в Штатах работать устроиться будет намного сложнее. Если мечтаете о загранице - сразу рассчитывайте на необходимость профильного магистрского диплома.

    К 18 (за 3 года) у вас очень вряд ли появится стоящий опыт программирования. Максимум - знания основ и способности для джуниорской позиции. Коротких путей стать крутым специалистом нет. Это годы учебы, работы и накопление широкой компитенции. У вас еще вагон времени впереди, жертвовать возможностями (учиться, пока нет обязательств, вроде работы-семьи-кредитов) ради работы, которая будет всегда, кмк, неразумно.

    Но никто не мешает учиться программировать самостоятельно в свободное время. Само по себе это не рокет сайнс, а метериалов вокруг - вагон. Главное - не увязнуть во веб-фронтенде (=
    Ответ написан
    Комментировать
  • Нелогично работают теги в Razor?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Дело не в razor, а в том, что вы заведомо пишите невалидную разметку. Как должен браузер обрабатывать клик по внутренней ссылке? Игнорировать ее или внешнюю? Он, вероятно, что-то все же сделает, но не факт то, что вы ожидаете. А парсер разметки в Razor считает, что лучше вот так интерпретировать.

    Судя по тому, что на внешней ссылке (catalog-item) нет аттрибута "href" (он обязателен), вам она нужна лишь для руки-указателя. Того же эффекта можно добиться с div:
    .catalog-item:hover { cursor: pointer; }
    Ответ написан
    2 комментария
  • Кто может разжевать асинхронные контроллеры?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    await еще не означает создания дополнительный поток (тред). Особенно, когда дело касается асинхронного ввода-вывода.

    В десктопных приложениях в основном потоке есть Главный Цикл (event loop), который в свободное от обработчиков время перемалывает очередь сообщений окна (дёргает эти самые обработчики в ответ на соответствующие события, вроде нажатия кнопок). Если обработчик попался слишком жирный, то сообщения не обрабатываются - окно перестает реагировать на сообщения.

    В вебе (ASP.NET) же каждому новому запросу выделяется новый поток. Если запросы выполняются слишком медленно, а клиенты поступают и поступают, то есть риск исчерпать thread pool. Как правило, самые медленные действия - это ввод-вывод, при которых поток нашей программы ничем не занят, кроме ожидания. Но операционные системы могут делать асинхронный ввод-вывод (сигналить, когда данные были прочтены/записаны), так почему бы нам не вернуть напрасно простаивающий поток в тредпул? А когда данные считаются - мы выделим поток и вернемся к задачке.
    Ответ написан
  • Почему в Arduino int 2 байта, а не 4?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Дело не в языке, а в стандарте С++ (на котором основан ардуиновский Wiring), который предполагает тип int равный некоторому размеру, зависящему от целевой платформы:

    Plain ints have the natural size suggested by the architecture of the execution environment


    Причина - оптимальность размера типа для процессора.

    С большой долей вероятности там отличаются размеры и остальных типов, включая указатели (void*).
    Ответ написан
    Комментировать
  • Как создать POST запрос без нажатия кнопки?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Вызвать вручную событие формы
    document.querySelector('form').submit();

    или же POST-запрос с помощью ajax (XMLHttpRequest)
    Ответ написан
    1 комментарий
  • Как добавить Partial View к основной странице?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Partial Views (и вообще средства Razor) - это серверный рендеринг, тут ни о каких щелчках по кнопкам речи не идет. Здесь решения может быть в общем случае два:
    1. рендерить с display: none, а при щелчке менять стиль (JS или :checked в CSS )
    2. рендерить на клиенте, уже фактически изменяя DOM
    Ответ написан
    Комментировать
  • Как делать вёрстку текста без BR?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Вообще, пиксель-перфект для текста - это ужасная идея.

    Так или иначе, семантика страницы не должна страдать из-за прихотей дизайнера. Желаемого можно добиться через:
    .shitty-line::after {
        content:'\a';
        white-space: pre;
    }
    
    <p>
        <span class="shitty-line">...</span>
        <span class="shitty-line">...</span>
        <span class="shitty-line">...</span>
        <span class="shitty-line">...</span>
    </p>
    Ответ написан
    Комментировать
  • Как пофиксить проблему невозможности распараллелить работу над фичей между разработчиками?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Блокирование - это нормально. Разработчиками необходимо договариваться об интерфейсах ("стыках" зон ответственности). Как правило, любая крупная фича как минимум делится по слоям: представление - бизнес-логика - доступ к данным, в вебе чаще всего эти слои присутствуют как на фронте, так и на бэкенде. Кроме того сервисный слой может и должен крошиться на независимые функциональные блоки (сервисы).

    Если же идут отмазки в духе: "Я же не знаю, какие данные мне могут понадобиться", то это укажет на недостаток планирования и/или необходимость "разведки боем" в виде какого-то прототипа наивной имплементации.
    Ответ написан
    Комментировать
  • Существует ли расширение-маркер прочитанных страниц?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    В CSS есть такая замечательная вещь, как псевдокласс :visited для ссылок, однако в современности им часто пренебрегают (перекрывая своими стилями все состояния).

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

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Семантика совершенно другая. Область видимости статической функции ограничивается единицей трансляции в которой она определяется.
    Своего рода инкапсуляция в C.
    Ответ написан
    7 комментариев
  • И снова БЭМ, служебный(приватный блок)?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    У вас "внутри" event-list снова элементы от events? Это же нарушает главную идею блоков - модульность.

    Мне кажется, блоками могли бы быть сами события (li), а содержащий их список - элемент блока events. Что-то вроде:

    <div class="events">
        <h3 class="events__title">Upcoming events</h3>
        <ul class="events__list">
          <li class="event-list-item">
            <a href="#" class="event-list-item__link">
              <div class="event-list-item__calendar">
                <span class="event-list-item__day">5</span><br>
                <span class="event-list-item__month">May</span>
              </div>
              <p class="event-list-item__details">some random event</p>
            </a>
          </li>
          ...
        </ul>
        <a class="events__get-all-btn btn" href="#">Посмотреть все</a>
    </div>
    Ответ написан
    2 комментария
  • Не поздно ли в ВУЗ после колледжа?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    В 25 лет выйти без опыта работы или джуном такая себе перспектива

    А что не так? Амбиции жмут?) Как тут уже сказали, учиться никогда не поздно.

    И получается после ВУЗа выйду на рынок мидлом с 4-х летнем стажем на позиции джуна (учитывая, что мидлом на неполный день никто не возьмет)

    На зарплату джуна. Брать джуна на полставки, когда орда за дверью стоит - глупая идея. Поэтому вам нужно уже из себя представлять ценность, чтобы игра стоила свеч.

    Ни в какой скрам вы с таким распорядком не впишитесь, поэтому в нормальную команду попасть будет нереально. Если будете делать фокус на работе, то очная учеба от совмещения пострадает обязательно. Как итог: ни нормально не поработаете, ни поучитесь. Поэтому о полноценной работе советую задумываться перевалив хотя бы за "экватор", когда сможете отделять зерна от плевел и расставлять приоритеты.
    Ответ написан
    9 комментариев
  • Как подружить C# и Java?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Ответ написан
    Комментировать
  • Загрузить 350000 строк на сервер, как сделать?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Можно попытаться разбивать файл на чанки и их поэтапно отправлять разными запросами.
    Ответ написан
    Комментировать
  • Telegram шифрует все или только секретные чаты?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Шифруются все чаты, но P2P - только приватные.
    Ответ написан
    Комментировать