Задать вопрос
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Вам разве не жалко того, кто будет это поддерживать после вас?
    Вы зря переживаете. Наверное, потому что не в курсе результата.
    Особенностью проверок в моей программе в том, что нельзя точно сказать, что ошибка вызвана одним параметров. Не проходит не один параметр, а условие. Там сравниваются один,два,три и более параметров, но принимать решение какой параметр не подходит должен только пользователь. Например:

    5b239377359bc187705647.png

    Пользователь видит нормальное сообщение, а если он в чём-то сомневается, то звонит мне и не рассказывает, что параметры почему-то неверные, а называет номер ошибки. И теперь начинается предметный разговор, т.к. условия выдавал мне конструктор, а мне всё равно, что ему хотелось. Теперь мы будем обсуждать сухой язык программы. Обратная связь.
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Виктор П.,
    чтобы вам было легче искать ошибку в куче if-ов, то номера будут больше не нужны
    почему вы думаете, что номера будут не нужны? Наоборот, будут именно нужны, чтобы в коде найти то самое место, где сформировалась ошибка, иначе валидация начинает работать как магия. Мне до введения кодов приходилось гадать, что же именно не подходит? А теперь есть код ошибки - есть место в программном коде. Обратная связь. Как же без неё?
    код противоречит сразу четырём принципам
    но ваше предложение может нарушать основной принцип - если работает - не трогай. ))) Ну а по сути наверное не было ни формализации правил, ни тестов. Но, скажу по секрету, у меня пока тестов тоже нет. Надеюсь временно. Переживаю.
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    nexus478, Нет, не вручную. Я только набираю, VS говорит, что member-а нет и предлагает добавить. Я только соглашаюсь добавить, а добавляет его сама VS.
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    nexus478, Я знаю, только это уже нужно делать вручную, а этого хочется избежать.
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Вы очень хорошо всё поняли и решение отлично подходит. Вот что я сделал в Visual Studio без resharper-а:

    5b22b255dc158518818621.png
  • Как правильно вывести в интерфейс частые команды?

    AlexXYZ
    @AlexXYZ
    Мой Путь, не разобрался, что вы работаете под Linux. У меня тоже есть линуксовые сервера, но я в них только в putty/mc, поэтому этот менеджер помогает. Но в принципе рад помочь.
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    В принципиальном виде это все есть. Вопрос не в способе хранения результата в runtime, а как сделать набор этих номеров уникальным во время набора кода. Вот набираете вы условие и хотите написать, что вот тут будет вывод ошибки с номером 59. Но перед тем, как написать число 59 вы должны убедится, что оно для номера ошибки ещё не использовалось.
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Не нужно городить огородов изобретая свой собственный велосипед с номерами ошибок
    Ладно, ладно ))) Сама по себе программа уже велосипед, иначе она была бы фреймворком. Это не значит, что указанная вами валидация не подходит, просто её применение должно быть обосновано. Изначально речь о ней в проекте не шла, но постепенно шаг за шагом требования растут.

    Например, можно в этом валидаторе сравнить не с константными значениями, а с переменными?
    //Как в примере:
    Range(1800, 2000, ErrorMessage = "Год должен быть в промежутке от 1800 до 2000")
    
    // как меня интересует:
    Range(min, max, ErrorMessage = $"Год должен быть в промежутке от {min} до {max}")

    а значения min и max менять в каком-то другом месте? Бизнеслогика бывает коварна.
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Для зависимых полей приходится писать кастомные классы-валидаторы
    Слишком уж сложно для данного случая. (В вопросе не было уточнения, но в приложении нет MVC-модели - это API-сервис).
    Требуется просто проверка и выставление кода ошибки. Вопрос в скорости "регистрации" нового кода ошибки и в его уникальности. Номер должен упоминаться в коде только один раз. В принципе я сделал проверку, чтобы при присвоении в runtime проверялось, что такого числа ещё не было присвоено ошибке, но это сильно не надёжно, поэтому и хотелось бы сделать какую-то "визульную" проверку уникальности при наборе кода. Предполагается, что я буду только увеличивать номер ошибки и Visual Studio должна мне подсказывать, что кода, который мне нужен - нет. Тут-то я его и создам. Вопрос - минимум усилий!
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Это-то всё есть. Однако моя программа не должна останавливаться на первой ошибке, поэтому исключения не подходят. Сначала программа "коллекционирует" все ошибки, которые только могут встретиться в параметрах. От неправильного написания значения параметра, до несовместимости, поэтому мне не нужно бросать исключение, если пользователь вместо числа написал свою фамилию. Я ему в конце проверки выкатываю полный список что неправильно введено. Расчёт ещё не производится.

    P.S.
    Если я в программе буду писать не номер ошибки, а создавать исключение, то ничего по сути не меняется - вместо чисел, я буду вынужден хранить объекты исключений, т.к. бросать их мне не нужно. Слишком сложно для поддержки. Каждый раз нужно возвращаться в Enum и определять новый код, писать руками "Error23 = 23" в то время как (обратите внимание) номер кода ошибки уже содержится в названии Error23. Нужно сократить время, которое я затрачиваю, чтобы "зарегистрировать" ошибку в коде. если выражаться не техническим языком, то "хочу, чтобы ошибка по номеру создавалась автоматически". Понимаю, что желание странное, но вот хочу )))
  • Получить текстовое представление формулы, записанной в коде, обратно в текст?

    AlexXYZ
    @AlexXYZ Автор вопроса
    По сути очень хороший вариант, но очень сложно поддерживать. В каждой формуле нужно помнить названия параметров. Но не смотря на это я размышляю именно в этом направлении и всё больше склоняюсь к тому, что нужно сделать парсер, например, на основе antlr. Там главный цикл обработки выражения (visitor или listener) как раз и можно запускать в нескольких режимах, в зависимости от потребности - либо считать, либо "собирать" имена переменных и заменять их на названия, понятные пользователю, либо заменять их на значения и возвращать само выражение.
    Я не сказал об одной тонкости задачи - переменные, типа D_SVAYA уже находятся в dictionary со значением, описанием и др. свойствами, поэтому извлечь необходимые величины для замены - не проблема.
  • Получить текстовое представление формулы, записанной в коде, обратно в текст?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Вот как раз и хотелось избежать повторной записи выражения. Так я могу расшифровывать формулу и без такой записи.
  • Получить текстовое представление формулы, записанной в коде, обратно в текст?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Спасибо, но eval не подходит, т.к. решение не управляемое. Результат на выходе не всегда только числовой результат. Из выражения может потребоваться получить и расшифровку параметров и подстановку числовых значений (чтобы пользователь мог проверить сами числа) и, конечно, сам результат. Может быть в будущем, если формулы будут позаковыристей, то и вид типа equation.
  • Взять исходники GUI из WAR-файла?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Вопрос не в распаковке архива. 7-zip это легко делает. Нет ли какой-то хитрости с самими файлами при помещении их в WAR, чтобы не пришлось с чем-то столкнуться после извлечения?
  • Как подставить данные js ответа в sql запрос?

    AlexXYZ
    @AlexXYZ
    Лучше POST, чтобы исключить кеширование.
  • C#, требуется отправить сырой HTTP(S) запрос?

    AlexXYZ
    @AlexXYZ Автор вопроса
    martensit, Лично мне кажется, что это прозрачная процедура, не требующая каких-то дополнительных настроек. Или вы пробовали, но у вас выдалась ошибка?
  • DotNet. strongly named assembly. Можно ли Загрузить такую сборку из ресурса?

    AlexXYZ
    @AlexXYZ Автор вопроса
    Артур Нуруллин, Пробовал. Но если dotnet обнаруживает, что если требуется загрузить подписанную сборку, то даже до срабатывания события AssemblyLoad дело не доходит. В документации написано, что подписанные сборки могут загружать только подписанные сборки и при этом не должны загружать не подписанные, но при этом нигде не было написано, что запрещено вызывать это событие, если подписанная сборка не найдена среди файлов на диске.
    Так же в документации написано, что запрет загрузки только подписанных сборок можно отключить через реестр, но этот вариант не подходит.
  • Не работает функция search в bower?

    AlexXYZ
    @AlexXYZ Автор вопроса
    sim3x, Спасибо за подсказку. Только что сумел перевести проект на модули через npm, но возникла проблема загрузки совместимых компонентов.
    Позвольте ещё задать вопрос?
    Когда я скачивал модули через bower, то он добросовестно проверял совместимость компонентов и любезно спрашивал, что меня устроит:

    5abe3ac773225594824368.png

    А так же докачивал недостающие компоненты сам и их не надо было прописывать в bower.json.

    npm же тупо сливает то, что записано в package.json и не спрашивает ничего. Только то, что есть:

    5abe3aae119f3762070196.png

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

    5abe3bf90dce2573785099.png

    Есть ли возможность как-то заставить npm проверять совместимость между компонентами или придётся это всё делать вручную?