• Как определить список?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Вам все коллекции необходимо создать

    public ICollection Tanks { get; set; } = new List<Tank>;

    и так далее..
    Ответ написан
    Комментировать
  • Почему Google chrome не предлагает создать пароль?

    insighter
    @insighter Автор вопроса
    -First time? - Huh? (C#, React, JS)
    Отмечу решением этот вариант.
    Если нет входа в учетную запись Гугла, Хром не предлагает сгенерировать новый пароль. Это я проверил. Но при этом он разрешает сохранить введенный пароль.
    Если есть вход в учетную запись, все генерируется и сохраняется.
    Ответ написан
    Комментировать
  • Какие отличие между значимыми и ссылочными типами? Зачем придумали такое разделение? Нельзя было придумать только либо значимые либо ссылочные?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Все хранить в стеке невозможно для обычных программ.
    Все хранить в куче реально (достаточно упаковывать все valued-переменные), но очень и очень не оптимально. Работа со стеком гораздо быстрее, для работы с ним есть специализированные регистры процессора, а для того чтобы обратится к участку произвольной памяти компьютера даже на низком уровне надо сделать много операций. И очищается стек моментально, никаких сборщиков мусора не нужно.
    Ответ написан
  • Как в обработку клика добавить переменную?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    мне передать 2 массива


    Откуда передать, где они создаются эти массивы? Если в форме, то они и так доступны.

    Если у тебя обработчик события находится в другом объекте (не метод формы), тогда до формы можно добраться через sender:
    ... (object sender, ...)
    {
        var form = (Form)((ButtonExtendet)sender).Parent;
        form ... доступны все свойства и методы формы
    }
    Ответ написан
    6 комментариев
  • Как реализовать изменение по id в List?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    id студента (судя по вашему примеру) - это комбинация полей name + surname
    поиск по такому id будет следующий:
    var searchName = "значение для поиска";
    var searchSurname = "значение для поиска";
    var foundedStudent = students.Find(student => student.name == searchName && student.surname == searchSurnname);
    if (foundedStudent != null){
      foundedStudent ... меняйте как хотите
    }
    Ответ написан
    9 комментариев
  • Удалил куки сессии AspNetCore.Cookies, что делать?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Ошибка того, что куки были удалены не полностью, а только одна "AspNETCore.Cookies". Руками надо удалить остальные две "ai_session", "ai_user".

    ASP.Core при попытке продления куки выдавала внутреннюю ошибку.
    Ответ написан
    Комментировать
  • Падает программа при вызове PInvoke?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Шансы небольшие, но все таки проверьте, может быть вы куда то ещё (системная папка) скопировали старую версию CMakeProject2.exe и всегда загружается она, а не то что вы меняете и пересобираете
    Ответ написан
    Комментировать
  • Какие знания по базам данных необходимы начинающему back-end разработчику?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Все что можно сделать с помощью SQL нужно знать. Изучите досконально джойны, стоит хорошо понимать что происходит на них. Также стоит хорошо разобраться с транзакциями и уровнями изоляции - это важная тема.

    Не в первую очередь стоит браться за изучение оптимизации запросов (это бессмысленно без понимания работы джойнов, индексов, партишинов). Ну и оконные функции тоже не на первом месте по срочности, но изучать будет надо.

    В последнюю очередь триггеры и хранимые процедуры. Целесообразность их использования часто рождает холивары. Как по мне в умеренных количествах ХП это нормально.
    Ответ написан
    Комментировать
  • В чем практическая разница между PUT и POST?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Ну вот что написано на ресурсе где это надо смотреть в первую очередь

    Разница между PUT и POST состоит в том, что PUT является идемпотентным: повторное его применение даёт тот же результат, что и при первом применении (то есть у метода нет побочных эффектов), тогда как повторный вызов одного и того же метода POST может иметь такие эффекты, как например, оформление одного и того же заказа несколько раз.

    https://developer.mozilla.org/ru/docs/Web/HTTP/Met...

    Случай 1.
    Допустим у вас есть WebAPI которое позволяет добавлять-создавать пользователей и их комментарии.
    Когда будете добавлять нового пользователя можно использовать PUT запрос. Если пользователь уже есть в базе, то запрос будет возвращать Conflict/BasRequest. Иначе будет пользователь будет добавляться. Многократное [случайное|ошибочное] выполнение одного и того же запроса не вызывает "side effect".

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

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    В паттернах необходимо отталкиваться от функционала. Сначала надо определиться не с тем, как сделать красивее или быстрее, а с тем что точно нужно сделать.
    Если вам надо, чтобы выводился текст, который целиком зависит от данных которые привязаны к фигуре, то делайте интерфейс
    public interface ITalkingShape
    {
    string SayAboutYourself();
    }
    
    public class Square : ITalkingShape
    {
      string SayAboutYourself()
      {
        return $"figure is square. ■\nIts area is {Shape.GetArea(shape)}.\nIts perimeter is {Shape.GetPerimeter(shape)}.\n\n";
      }
    }
    
    public static void Display(ITalkingShape shape)
            { 
    Console.WriteLine(shape.SayAboutYourself())
    }


    Думаю никаких паттернов вам не надо.
    Ответ написан
    1 комментарий
  • Как научиться писать большие проекты в одиночку и не сойти с ума?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Глянул на пэт-проект, который сейчас пишу - 5тыс строк + 1тыс тестов, и если честно, ощущение, что проект даже не начал ещё толком писать.

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

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

    PS хотел бы ещё важное добавить, архитектурными делами надо заниматься не наскоками. Тут как back-end <-> front-end, мне например сложно перескакивать с одного на другое в течение дня, большие задачи делаю только одно, или back или front.
    С архитектурой также надо поступать. Потому, что сложно переключать мышление с глобальных абстракций на детали реализации.
    Ответ написан
    Комментировать
  • Где изучать ASP.NET начинающему программисту?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Я бы посоветовал вам поизучать сам язык C# + фреймворк .NET Core. Попишите учебные консольные приложения. Потом займитесь изучением Entity Framework, т.к. большие шансы, что в ASP.NET вам понадобятся базы данных. И только потом приступайте к веб разработке.

    Если будете изучать все и сразу, то без опыта вы просто не будете понимать, что на каком уровне реализовано, что является частью языка, что часть фреймворка .NET, а что реализовано на уровне фреймворка ASP.NET.

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

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Если прямо отвечать на вопрос то надо сделать так:

    example.step_2.step_1 = example.step_1;
    example.step_2.get()
    Ответ написан
    3 комментария
  • Как работают статические поля в C#?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    У вас, что dial-up интернет или паталогическая лень? :))

    1. Значения констант применимы только на этапе компиляции сборки.
    2. Любые статические поля класса доступны (конечно, если позволяет видимость) всегда
    3. Любые не статические поля класса доступны после создании экземпляра класса

    https://ru.stackoverflow.com/questions/651231/c-%D...

    В чём польза readonly полей в C#?
    https://metanit.com/sharp/tutorial/3.3.php
    Ответ написан
    Комментировать
  • Вопрос по тестовому заданию, масштабируемый сервис?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Возможно, чтобы реализация предусматривала быструю доработку подключения других источников данных.
    В любом случае скорее всего речь шла про функционал, а не производительность.
    Ответ написан
    Комментировать
  • Хочу стать C++ разработчиком но поможет ли Unity?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    При возможности делай то, что принесет удовольствие от работы. Надобности делать то чего совсем не хочется будет предостаточно.
    По части c#, вроде есть проект который позволяет писать Unreal-блюпринты на c#. Так что вдруг пригодится
    Ответ написан
    1 комментарий
  • Можно ли записать в одну строку?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    var leader = new Func<Entity>(() => { var lui =ui as UI; var l = lui.leader; return (l == null || lui.b_leader_dead|| !l.isValid) ? null : l.Owner;  })();
    Ответ написан
    Комментировать
  • Различия MVC и Three Tier?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Может не стоит так дотошно подходить к вопросу?
    MVC - это паттерн программирования для разделения данных и визуального представление этих данных.
    Трехзвенка, если очень упрощенно означает, что работа с данными идет не напрямую с сервером СУБД, а через некоторый промежуточный слой, который чаще всего вводит свои абстракции.
    Ответ написан
  • Как правильно унаследоваться от обобщенного класса без ошибки компилятора?

    insighter
    @insighter Автор вопроса
    -First time? - Huh? (C#, React, JS)
    Спасибо Антон Барышев за решение, нужно добавить опцию new()

    public class RefferedObjectModel<TDataObject> : Model<TDataObject>
        where TDataObject : ReferredObject, new()
    Ответ написан
    Комментировать
  • Как запретить React пересоздавать дочерние компоненты?

    insighter
    @insighter Автор вопроса
    -First time? - Huh? (C#, React, JS)
    Ответ нашел сам.
    При сравнении старого и нового DOM, React сравнивает поле key у существующего и нового объекта, если значения
    полей совпадают, то новый объект отбрасывается, иначе старый объект будет уничтожен и полностью замещен новым. Конечно же сравнение ключей лишь малая часть общего алгоритма согласования.

    Моем случае, компоненты, которые отображаются в табах могут быть разных типов, а чаще всего только так и есть.
    Поэтому React не использует сравнение через key и удаляет оставшиеся закладки (хотя! почему то, если создать
    вкладки одного типа, они все равно удалятся
    )

    Решение найдено в использовании компонента Fragment с суррогатным ключом key

    Генерация ключа:
    const [keyGenValue, setKeyGenValue] = useState(1);
        ...
        // генерим новое значение при открытии новой вкладки
        setKeyGenValue(() => {
            return keyGenValue + 1;
        });


    Генерация рендера:

    <div className='workspace'>
        {views.map(
            (view, index) =>
            <Fragment key={view.key}>
                <div hidden={view !== selectedView}>
                        <h4>{view.caption}</h4>
                        <div>{buildView(view.name)}</div>
                </div>
            </Fragment>
        )}
    </div>
    Ответ написан
    Комментировать