• Что будет если многократно закладывать переменную в другую переменную?

    fenrir1121
    @fenrir1121
    Начни с документации
    Открываете любую книгу по питону для начинающих и читаете, что переменная это просто ссылка.
    Все ваши 100 позиций будут указывать на один и тот же объект в памяти.
    Ответ написан
    2 комментария
  • Буквенно-цифровое значение в поле ИНН, КПП и в адресе (в карточке клиента)?

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Тут в коментах понакидали, я немного разложу для понимания.
    Сегодня программирование это не 1 область, типа " - хочу в программирование - вам вот в эту дверь".
    Условно ее можно разделить на несколько подвидов, переход из которых в смежную будет сопровождаться некоторыми трудностями, особенно для новичка, по этому с направлением нужно определиться на берегу, или по крайней мере вовремя остановиться если увидели что это направление - не ваше.

    1) Веб разработка. В свою очередь делится на 2 поднаправления: фронтенд - все что отрисовывается и обрабатывается на клиенте (то есть проще говоря в браузере), и бэкенд - все что относится к работе со стороны сервера. Фронтенд, как это ни странно, ограничен в языках более всего, тут только яваскрипт или что-то типа тайпскрипта, которое по итогоу в яваскрипт "компилируется". Бэк в этом плане более разношерстный, тут можно практически все использовать, но мэйнстрим это пхп, питон, ява, сишарп, руби-рельсы. Первые два в основном используют студии вебразработки, вторые два - в основном энтерпрайз, последний уже больше экзотика.
    2) Геймдев. Как ни странно, тоже делится на 2 поднаправления: казуалки/мобилы и большие триплА проекты. В первом случае это сишарп + юнити (да, это не язык, а инструмент, но без него стек не полный), в редком случае что-то экзотическое. Во втором это скорее всего си++ и какой-то фреймворк, а-ля анриал или вулкан.
    3) Энтерпрайз. Тут стандарт де факто - ява. Как вариант Сишарп, но гораздо реже.
    4) Десктоп приложения. Простенькие консольные можно писать практически на чем угодно, более-менее обладающее интерфейсом тербует соответствующих gui библиотек, по типу Qt, gtk, ну и соответственно языков типа ява, си++, сишарп... Хочу заметить, что направление это весьма дохлое, в плане того что именно приложения для широких масс в последнее время практически не выпускаются, уступая место вебсервисам или мобильным приложениям, которые тоже не ахти какие рынки занимают...
    5) Мобильная разработка. Зверь редкий, так как под мобилы больше игры делают. Именно разработка приложений достаточно узкий сегмент, ну и опять же - делится на разработку под андроид и под айфон. В первом случае языком разработки будет Котлин(в девичестве Ява), под айфон соответственно будет Свифт. Есть решения кроссплатформенные, по типу флаттера, но это не всегда подходит, так как некоторые функции под конкретную платформу будут недоступны.

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

    vabka
    @vabka
    Токсичный шарпист
    Вы пытаетесь решить несуществующую проблему.
    1. Нет никакой проблемы в том что два разных приложения (клиент и сервер) имеют разную нумерацию.
    2. semver нужен только если у тебя есть какой-то контракт, который тебе нужно соблюдать. Если контракта нет - можно использовать просто номера релизов.
    Ответ написан
    3 комментария
  • Почему консоль не читает вводимые от пользователя данные в функции ReadLine в c#?

    @1TheNikita
    Программист и системный администратор
    Скорее всего она читает.
    Приведу пример ниже:
    // Приняли данные
    var string = Console.ReadLine();
    Console.WriteLine($"Вы написали {string}");


    Но пропустили самое главное - это то, что после написания программа ответит вам и закроется, так как все действия выполнены. Во избежание данной ситуации можно сделать сделующее:
    //... ваш код
    
    // ожидание Enter
    // Console.ReadLine();
    
    // ожидание любой клавиши
    Console.ReadKey();

    Я обычно использую второй вариант.
    Ответ написан
    Комментировать
  • Зачем нужен второй интерфейс в определении класса, если первый интерфейс - наследник второго?

    Jacen11
    @Jacen11
    для удобства программиста, чтобы он сразу видел что NodeRef является Serializable и не нужно было куда то проваливаться. В плане исполнения кода ни на что не влияет. Можно и убрать спокойно, чисто личные предпочтения
    Ответ написан
    1 комментарий
  • Куда расти дальше?

    @calculator212
    Не использую c#, но эта штука в любом языке полезная, т.к. даёт примерное понятие того, что нужно изучить roadmap
    Ответ написан
    Комментировать
  • Как реализовать зависимость аргумента одного класса от другого класса?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Соглашусь с предыдущими комментаторами, пример СЛИШКОМ высосан из пальца, чтобы по нему давать какие-то рекомендации.
    Но в целом, бак должен быть отдельным объектом в составе машины, а никаким не "аругментом".
    И у него может быть метод consumeFuel(miles)
    Который может принимать длину дороги в качестве аргумента, и уменьшать количество топлива в соответствии с заложенной формулой.

    Car.Tank.fillMax()
    print Car.Tank.getLevel()
    Car.Тank. consumeFuel(Road.length)
    print Car.Tank.getLevel()

    По поводу последнего варианта - всегда исходите из здравого смысла. Может ли быть дорога частью автомобиля? Нет, это очевидная бессмыслица. Дорога может быть частью поездки. Как и автомобиль. Вот в рамках объекта Trip они вполне могут взаимодействовать друг с другом.

    Вообще, тут важно сразу понять, что ООП гораздо сложнее "базового" процедурного программирования, которое в принципе может осилить любой. Все эти циклы, условные переходы, функции, базовые алгоритмы, последовательное выполнение команд. Или даже асинхронное.

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

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

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

    vabka
    @vabka
    Токсичный шарпист
    в примере с кораблём и пространством можно использовать паттерн "фабрика".
    Делаешь третий класс, в нём поле, которое содержит Space, и метод который будет принимать координаты нового корабля и возвращать созданный экземпляр. В этом методе и будет проверка.

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

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

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Для этого всего ORM и придумали.

    Да и прочтите про наследование и виртуальные методы.
    Ответ написан
    Комментировать
  • Куда расти дальше?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист

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

    1. Посмотри как у других оформлены проекты.
    2. Посмотри на современные стандарты C# и попробуй обновить свой проект.
    3. Смотри вакансии и изучай технологии, которые требуются.
    4. Погугли, что изучают в вузах и поизучай фундаментальные вещи.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не специалист по C# поэтому по качеству кода не смогу ничего сказать. Но могу сказать по другой части.

    Проект создан в 2 коммита. Это обман. Так не бывает. Программисты не делают проект в 2 шага. Обычно
    идет некий итерационный процесс когда в течение дня. Либо в течение итерации разработки какой-то
    фичи делается бранч. И вмерживается в мастер. Или делается отдельный коммит в мастер с описаием что делалось.
    И тогда проект приобретает ИСТОРИЮ изменений. По истории видно как авторы работали. Что изменяли.

    У проекта нет документации. Надо описать что это для чего и так далее. Нет инструкции по сборке.
    Каждый разработчик должен иметь возможность собрать любой проект с гитхаба прочитав инструкцию.
    Сборка - это не программирование. Это отдельный скилл. Почитай что такое сборщики. И это не среда
    разработки. Это отдельный продукт. Обычно в консоли работает. Чтоб на сервере собирать проекты
    в режиме автономного процесса без участия человека.

    У проекта нет модульных тестов. Это говорит о том что нет возможности бытро проверить не сломалась
    ли логика после изменений. Тесты надо добавить.

    Нет внешних метрик здоровья проекта. Непонятно в каком состоянии щас он находится. Компилируется ли вообще? Посмотри как другие проекты в гитхабе выглядят.

    В исходники нужно вставить текст лицензии. Подойдет любая из опен-сорцных.
    Ответ написан
    Комментировать
  • В windows form на c# медленно отправляет данные по serial Бод на 921600 даже в асинхронным Как сделать можно чтоб шустро?

    @d-stream
    Готовые решения - не подаю, но...
    Наверное мышкой водить. Ну или успокоительного выпить - будет казаться шустрее.

    Ну а чтобы не было как в анекдоте:

    - Радар Вартанович, как тут допустимая скорость?
    - Вжууу
    - А как ехал этот водитель?
    - Вжуааа

    Стоит выдать какие-то более адекватные замеры.
    Ответ написан
    Комментировать
  • Почему консольное приложение С# созданое в VS Code выглядит нестандартно?

    Adler_lug
    @Adler_lug
    Прямо в первой же строке ссылка, по которой находится ответ на ваш вопрос.
    Ответ написан
    Комментировать
  • Как перегрузить оператор присваивания, c#?

    Nipheris
    @Nipheris Куратор тега C#
    С точки зрения C# вы хотите не того, что нужно. В отличие от C++, где перегрузка операций даёт возможность сформировать индивидуальное поведение для каждого пользовательского типа, в C# для вас построили два основных стереотипа поведения - тип-ссылка и тип-значение - и предлагают выбрать один из них.

    Вам нужно переформулировать задачу в более общую, и понять, что вы хотите сделать на самом деле, и для чего вам понадобилось переопределение присваивания. Судя по имени класса (Person), вы явно делаете с ним что-то не то.
    Ответ написан
    3 комментария
  • Как правильно построить архитектуру?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Архитектура строится исходя из
    1. как это будет запускаться, на каких ресурсах, хватит ли 1-2 cpu сейчас или через год, если надо будет масштабировать?

    2. Опять же сколько данных будет через год или 5 лет, будут ли они обрабатываться также быстро?

    3. Надо будет обновлять софт - ОС, версию java или еще чего. Насколько удобно и легко это будет делать

    4. Нужно ли вам работа 24/7, или можно отключать систему по ночам или выходным для различных технических требований (апгрейды, бэкапы, миграции)

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

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

    @sharkirill
    Shift-Win и стрелку вправо, окно можно перебросить на другой монитор. Только не знаю с играми прокатит или нет.
    Ответ написан
    1 комментарий
  • Какие разработчики работают с алгоритмами?

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

    Например браузер. Лично мне приходилось в хромиуме писать и динамическое программирование и дихотомию и всякие хитрые структуры данных.

    Из вашего списка скорее подходят бакенд и desktop. Еще очень алгоритмоемкая область - разработка игр. Вот там нужно много чего использовать, потому что надо все делать эффективно, иначе игра будет тормозить.

    По поводу второго вопроса, похоже большинство разработчиков алгоритмы презирают. Считают что это не нужно знать вообще и очень ненавидят алгоритмические интервью в ФААНГах и им подражающим.
    Ответ написан
    5 комментариев
  • Как написать решение для формулы в c#?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Степени - Math.Pow
    Модуль - Math.Abs
    Синус - Math.Sin
    Ответ написан
    Комментировать
  • Пытаюсь подключить БД access к visual studio 2022, но вылазет ошибка, как исправить?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!

    Возможно проблема кроется в битности MS Access.
    Откройте в MS Access: Файл -> Учетная запись -> О программе Access -> появится информация о программе, где указана ее битность.
    Если, указано 32, то Вам нужно снести офис и поставить x64.

    625f190608feb399889574.png

    Второй Вариант - настройки компилятора для построения x86 решения.
    Нашел вот тут подсказку.
    А вот мануал по настройки VS Studio 2022 под запуск на нужной платформе.
    Ответ написан
    Комментировать