Задать вопрос
  • Как получить температуру малинки в докере?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    В образе нужен собсна vcgencmd (ставится пакетом libraspberrypi-bin в Ubuntu) и контейнер запускать в privileged режиме, иначе не будет доступа до сенсоров.
    Ответ написан
    Комментировать
  • Что такое бизнес логика и как их разделять с логикой приложения?

    xez
    @xez
    TL Junior Roo
    Бизнес-логика - это то ради чего создается приложение.
    На примере калькулятора, это все, что связано с расчетами: сложение, вычитание, деление и т.д.
    Бизнес логику всегда можно описать в формате "юзер-стори".

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

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

    Adamos
    @Adamos
    Владимир, вы бы еще архитектуру хелловорлда взялись "понимать".
    Если хотите понять в двух словах, то можно применить такой принцип: бизнес-логика - это то, ЧТО должно выполнять приложение. А логика приложения - то, КАК оно это выполняет. Гругря, "по заказу формируются документы в формате XLSX и PDF" - это бизнес-логика. А вот запрос к БД за данными заказа, разбор шаблона документа, использование библиотек для генерации файлов нужного формата - это логика приложения. Отталкиваясь от такого примитивного понимания, можно разглядеть уровни в коде: где программист размахивает человекопонятными блоками и выполняет техзадание, а где - копается в байтах, соединениях и потоках вывода. Если мы одно от другого отделяем, то оказывается, что низкий уровень для большинства задач один и тот же и его можно опять-таки собрать в библиотеки и практически без изменений использовать там, где понадобилась другая бизнес-логика, но использован тот же технологический стек.
    Ответ написан
    1 комментарий
  • Как можно упростить реализацию работы с БД в C#?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Как выше сказали, форму можно и в рантайме создавать (что так и делается, только код отдельно находится для этого).
    1. Можно использовать кодогенерацию, а не рефлексию, при этом вам в любом случае, ваши датаклассы надо будет атрибутами обвешивать, чтобы знать как создавать поля ввода.
    2. Для WinForms готовых бесплатных решений нет. Для WPF https://github.com/GenericCodes/WPFCrudControl не полностью, но решает вашу проблему.
    3. Среди платных решений (DevExpress, Teleric) есть инструменты для автогенерации форм, с шаблонами и прочим, но не в рантайме.
    Ответ написан
    Комментировать
  • Является ли абстрактная фабрика способом динамически создавать классы?

    bingo347
    @bingo347
    Crazy on performance...
    Пример бы привели, который увидели.
    Если кратко - ответ нет, абстрактная фабрика отличается от обычной, тем что создает объекты не конкретного типа, а более абстрактного (любого типа удовлетворяющего интерфейсу например).
    Динамически создавать классы не во всех ЯП можно, а паттерны абстрагированы от ЯП.
    Ответ написан
    1 комментарий
  • Как сделать выборку случайных строк с наименьшим значением определенного столбца?

    meusov11
    @meusov11
    Можно использовать ORDER BY. Пример:

    SELECT *
    FROM your_table
    WHERE views = (
      SELECT MIN(views)
      FROM your_table
    )
    ORDER BY RANDOM()
    LIMIT 10;
    Ответ написан
    Комментировать
  • Как сделать выборку случайных строк с наименьшим значением определенного столбца?

    iMedved2009
    @iMedved2009
    Не люблю людей
    В лоб так:

    select * from products where views = (select min(views) from products);
    Ответ написан
    Комментировать
  • Как локадизовать сайт на другие языки?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1 домен. Отображать юзерам содержимое исходя из ИП адреса пользователя.


    Это точно не есть гуд.
    Отображать нужно согласно выбору юзера, хранить выбор в куках. А по дефолту в первый раз можно отображать исходя из, комбинации - языка браузера + геоIP
    Ответ написан
    5 комментариев
  • Как сделать, чтобы интернет продолжал работать, пока качаю игру в Steam?

    @Drno
    ограничь скорость в стиме. либо сделай шейпер на роутере, если он это умеет.
    возможно у домРу была "Локалка" до серверов стима, либо закешировано всё было. поэтому и хватало скорости

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

    YuriyVorobyov1333
    @YuriyVorobyov1333
    Software Developer
    Ну так a это int, а switch по char'ам, просто уберите одинарные кавычки и все заработает
    Ответ написан
    Комментировать
  • Куда расти дальше?

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

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

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

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

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

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

    @rPman
    о какой скорости идет речь, если ты по одному символу туда пишешь? пиши сразу блоками по несколько килобайт
    Ответ написан
    Комментировать
  • Возможно ли на C# выполнить перевод криптовалюты и её трату?

    @rPman
    Мой тебе совет - найми знающего человека.
    Самоучиться на продакшене своими/чужими деньгами - плохая идея.

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

    p.s. куда ты переводить криптовалюту собрался, если ты ее принимаешь? продавать сразу как получил? - отдельная задача на миллион, завести на бирже аккаунт, держать там некоторый буфер, обменивать ту же сумму что получил от клиента и оперативно выводить излишки и пополнять недостаток. Все это отдельными скриптами, которые должны быть максимально далеко от игрового 'сервера'. На c# красивых универсальных библиотек мало, для других языков настоятельно рекомендую ccxt
    Ответ написан
    4 комментария
  • Как получить xpath у this элемента?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Перебираешь вверх до документа и составляешь путь:
    https://stackoverflow.com/questions/2420970/how-ca...

    Ну а вообще, так не делают. У тебя this и есть ссылка на элемент, просто передай его куда нужно. Если нужно именно по селектору этот элемент уметь находить, ну назначить этому this произвольный id и уже на него опирайся.
    Ответ написан
    Комментировать
  • Правда ли, что если изучить Фронтенд а потом начать изучать Бэкенд, ты почти забудешь Фронтенд?

    Adamos
    @Adamos
    Налицо банальное непонимание предмета обсуждения.
    Чтобы что-то изучить, нужно начитаться и напрактиковаться.
    Это даст знания и навыки.
    Что бы вы после этого ни делали - ни знания, ни навыки не потеряются.
    Но если вы начитались и вместо практики хватаетесь за что-то другое - у вас не произойдет процесса изучения, просто не закрепится прочитанное и вылетит из головы, неважно, учите вы что-то другое или в контру рубитесь.
    Ответ написан
    Комментировать
  • Как сделать узконаправленным ChatGPT api python?

    GavriKos
    @GavriKos
    Если апи этого не предоставляет - никак.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    На сайте sqlite https://www.sqlite.org/datatype3.html перечислено действительно 5 storage classes. Насколько я понимаю создатели решили что эти storage classes являются как-бы супер-типами для всех прочих типов данных.
    Прочие типы данных как-бы конкретизируют эти storage classes.

    Почему студия показывает только эти - чорт его знает. Но разве это вас ограничивает в написании своего ddl ?

    Вам еще повезло что вы не работаете с HBase например. Там вообще все типы данных - это byte_array и вот что хочешь то и делай. По сути разработчику самому предлагают вводить понятие типа данны и механики сериализации-десериализации.
    Ответ написан
    Комментировать
  • Наставник-разработчик отказался от junior-специалиста. Что делать?

    xez
    @xez
    TL Junior Roo
    Как вы считаете, что мне лучше делать в этой ситуации?

    1. Перестать верить в деда мороза и розовых единорогов.
    2. Работать дальше.
    3. Учиться, учиться и еще раз учиться.
    Ответ написан
    Комментировать
  • Как в строке JS заменить нужные символы на случайный аналог из заданного массива?

    XanXanXan
    @XanXanXan
    spoiler
    const charDict = {
      a: ['∀', '₳', 'Ä'],
      b: ['Ᏸ', 'β', '฿', 'ß'],
      c: ['ℭ', 'Ç', 'Ꮸ', '₡'],
      d: ['Ɗ', 'Ď', 'Đ'],
      e: ['£', 'Ē', 'ξ', 'Ê', 'È', '€', 'É', '∑', 'Ế', 'Ề', 'Ể', 'Ễ'],
      f: ['ℱ', '₣', 'ƒ', '∮', 'Ḟ', 'ჶ'],
      g: ['Ꮹ', 'Ꮆ', 'Ǥ', '₲'],
      h: ['ℍ', 'ℋ', 'ℌ', 'ዙ', 'Ĥ', 'Ħ'],
      i: ['ℐ', 'ℑ', 'Ï'],
      j: ['ჟ', 'Ĵ'],
      k: ['₭', 'Ꮶ', 'Ќ', 'Ķ', 'Ҝ', 'ﻸ'],
      l: ['ℒ', 'ℓ', 'Ŀ', '£', 'λ', '₤', 'Ł', 'Ꮭ', '£', 'Ꮑ'],
      m: ['ℳ', 'ʍ', 'Ḿ', '爪'],
      n: ['ℕ', 'η', 'Ñ', 'Ŋ', 'Ń', 'ℵ', '₦'],
      o: ['ტ', 'Ǿ', 'Θ', 'Ø', 'Ό', 'Ở', 'Ờ', 'Ớ', 'Ổ'],
      p: ['ℙ', '℘', 'þ', '尸', 'Ҏ', '₱'],
      q: ['ℚ', 'Q', 'Q'],
      r: ['ℝ', 'ℜ', 'ℛ', '℟', 'ჩ', 'Ꮢ', '尺'],
      s: ['Ꮥ', 'Ṧ', 'ى', '§', 'Ś', 'Ŝ', '₰', '∫', '$', 'ֆ'],
      t: ['₸', '†', 'T', 'Ţ', 'Ŧ', 'ィ', '干', 'Ṫ', 'テ', '₮'],
      u: ['∪', 'Ũ', '⋒', 'Ủ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Џ'],
      v: ['∨', '√', 'Ꮙ', 'Ṽ', '/', '℣'],
      w: ['₩', 'Ẃ', 'Ẁ', 'ώ', 'ω', 'Ŵ', 'Ꮤ', 'Ꮃ', 'ฬ', 'Ẅ', 'ѡ', 'Ꮚ', 'Ꮗ', 'ผ', 'ฝ', 'พ', 'ฟ'],
      x: ['χ', 'ჯ', 'Ẍ', 'ẍ', 'ᶍ'],
      y: ['ɣ', 'Ꭹ', 'Ꮍ', 'Ẏ', 'ẏ', 'ϒ', 'ɤ', '¥', 'り'],
      z: ['ℤ', 'ℨ', 'ჳ', '乙', 'Ẑ', 'ẑ', 'ɀ', 'Ꮓ']
    }
    function replaceChars(str) {
      return str.split('').map(char => {
        char = char.toLowerCase();
        return (char in charDict) ? charDict[char][Math.floor(Math.random() * charDict[char].length)] : char;
      }).join('');
    }
    Ответ написан
    Комментировать