• Какие есть технологии, методики или инструменты для упрощения валидации и обработки данных на Front-end и Back-end?

    @maltsever
    Поскольку мы в разделе ASP.NET, то буду говорить про него. Не знаю каким образом мы можем синхронизировать валидацию на фронтенде и бекенде, мне даже кажется это технически нереализуемо, но могу ошибаться. Если мы говорим о валидации в целом, то мы в первую очередь должны обеспечивать 100% валидацию на стороне сервера, потому что не хотим, чтобы была нарушена целостность данных и т.д. Тут надо руководствоваться принципом fail fast - как можно быстрее проверяем валидность данных из запроса. Чтобы привести валидацию к какому-то организованному виду можно использовать, например, библиотеку FluentValidation.
    Ответ написан
    1 комментарий
  • Какие есть технологии, методики или инструменты для упрощения валидации и обработки данных на Front-end и Back-end?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Один из подходов (достаточно успешный), использовать единую кодовую базу со статической типизацией.
    В которой одна и таже кодовая база (модель данных например), переиспользуется как на бэке, так и на фронте.
    Для этого или бэкенд на ЖС набирается (нода), или Фронтэнд (ЖС), генерируется из языка на бэкенде.
    Такой подход позволяет очень быстро создавать прототип и его быстро переделывать, при этом можно сделать бесшовную связь бэкенда с фронтэндом без необходимости описывать апи.
    Конечно в итоге вы получаете сильно связанный код, который по-хорошему потом все равно переписать надо, однако для прототипирования самое то.
    Ответ написан
    3 комментария
  • Не выполняется проверка ЭЦП из 1С с помощью C#. В чём различия?

    bonv
    @bonv
    Ваш код на C# делает "голую" подпись.
    Менеджер криптографиии в 1С создает подпись в формате PKCS7.

    Соответственно в C# проверять нужно подпись в формате PKCS7 (CMS).
    SignedCms.CheckSignature
    Ответ написан
    4 комментария
  • В каком типе переменной хранить (м\ж) пол?

    Для гибкости (и по идеологии шарпа) можно сделать структурой, инкапсулирующей этот Int32/Nullable/Enum и т.д., умеющий в конвертирование из разных представлений, выдачу локализованных названий полов, сериализацию и прочие полезные вещи.
    Ответ написан
    Комментировать
  • В каком типе переменной хранить (м\ж) пол?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    ИМХО, расточительно делать отдельную таблицу под пол. Отлично подойдет (если не уходить в дебри человеческих отклонений):
    enum Sex { 
        Male,
        Female,
        Undefined
    }

    bool? - тоже вариант, но читается хуже.
    Ответ написан
    Комментировать
  • В каком типе переменной хранить (м\ж) пол?

    @AndrewJonson
    Я программист 1С
    Женщина <> Не мужчина
    Если у вас уже есть справочник людей и в нем есть данные и вы решили добавить поле "пол", то по вашей логике все станут мужчинами (при условии что по дэфолту бутет ложь)? Лучше создавать отдельную таблицу со значениями.
    Ответ написан
    Комментировать
  • В каком типе переменной хранить (м\ж) пол?

    nki
    @nki
    bezkart.ru готовая система лояльности
    1C-ник правильно вам сказал - для таких случаев в 1С используются перечисления. Так проще сопровождать. Не придется разбираться кто есть кто - мужчина или женщина.
    Ответ написан
    7 комментариев
  • В каком типе переменной хранить (м\ж) пол?

    petermzg
    @petermzg
    Самый лучший программист
    По причине сумасшествия в современном обществе, "пол" лучше хранить в int и для значений использовать отдельную таблицу.
    Ответ написан
    2 комментария
  • Какой лучше использовать "метод Создания View" для отображение данных из БД в ASP.NET MVC?

    ImmortalCAT
    @ImmortalCAT
    C# loving
    Вместо тысячи слов
    всё гуглиться
    на сайте asp.net есть самплы
    да и вообще в интернете есть множество самплов!!!
    Ответ написан
    5 комментариев
  • Какое существует приложение демон для запуска процессов в Microsoft Windows?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    коммандлетом powershell
    new-service
    примеры применений : get-help new-service -examples
    Ответ написан
    Комментировать
  • Как корректно вывести в ASP.NET MVC кирилическое поле связанное ч/з EF?

    @Archusha
    https://agaltsovav.ru/
    Вообще странно.
    В VS не когда с этим не сталкивался, но в том же php такой "глюк" проявлялся, если файл где прописана кириллица был в другой кодировки.
    Ответ написан
    3 комментария
  • Как уйти с распутья технологий?

    @0x131315
    Стратегию уже подсказали: найти любую работу, чтобы кушать, и тем самым выиграть время на изучение чего-то, что поможет зарабатывать больше, и тем самым выиграть еще больше времени, и в конце концов изучить то, благодаря чему будешь работать не на зарплату, а на удовлетворение.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Сложность задачи не особо влияет на мотивацию, а вот факт решения/нерешения - влияет сильно. Не решил - значит не осилил, не осилил - значит не достоин, не достоин - значит иди ко дну и не рыпайся. Это как импотенция: импотент - значит не мужик, не мужик - значит никто, ничего не достоин и об тебя можно ноги вытирать. Подсознание портит всю малину, так что не следует давать ему шанса - лучше решить задачу попроще, чем не решить по сложнее.
    Ответ написан
    7 комментариев
  • C# асоциативные массивы?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    А обязательно хранить?

    public class Id: UInt32{}
    public class Name: string{}
    public class Value: double{}
     
    public class IdNameValue
    {
        public Id id{get;set;}
        public Name name {get; set;}
        public Value value {get; set;}
    }
    
    IEnumerable<IdNameValue> idNameValues = Create();
    
    var idNameValuesWhereValueIsNaN = idNameValues.Where(item=>double.IsNaN(item.value));
    Ответ написан
    Комментировать
  • C# асоциативные массивы?

    des1roer
    @des1roer Автор вопроса
    ученье - свет, а неученье - приятный полумрак
    var NonValueArray = new Dictionary<string, double>();
    
                for (int i = 0, cnt = c.Count; i < cnt; i++)
                {
                    logger.Trace(c[i].id + " " + c[i].value + " " + c[i].server);
                    if (Double.IsNaN((c[i].value)))
                    {
                        //NonValueArray.Add(c[i].service, c[i].id);
                        NonValueArray[c[i].service] = c[i].id;
                    }
                }
                foreach (var pair in NonValueArray)
                {
                    Console.WriteLine(pair.Key);
                }
    Ответ написан
    1 комментарий
  • Нужен любой исходник C# проги со всеми элементами языка?

    @onepavel
    Консультация и разработка мобильных приложений
    Комментировать