Задать вопрос
  • В чем практический смысл тестирования?


    Какие тесты нужно было сделать, чтобы предотвратить этот баг?

    Такие дефекты, обычно, отлавливаются при помощи ручного тестирования.

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

    Ещё можно попробовать скриншотное тестирование - может быть будет дешевле в плане человеческих ресурсов, но всё равно очень дорого в плане железных ресурсов и не гарантирует надёжность (скриншотные тесты известны своей нестабильностью), да и не очень популярны они в играх (ибо инструментов нет), и из-за обилия анимаций они будут очень сложны в поддержке.

    А так да - тут скорее архитектурная проблема и дизайнер не учёл, как должно работать переполнение строки в этом случае.


    Так в чем практический смысл тестирования? Где оно нужно, когда даже крупнейшие компании допускают явные баги на главном экране игры (а там про команды с миллионными бюджетами).

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

    Игры тут не самый лучший пример, тк их тестирование несколько отличается от тестирования обычного ПО своей количественной (очень много чего может сломаться) и качественной (много что сложно проверить) сложностью, а также количеством различных граничных значений.
    + в играх есть рандом, который может в неожиданных местах всё сломать.
    Ответ написан
    Комментировать
  • Не правильное время в Manjaro?

    В общем тут была ошибка в американском формате дат.
    Автор, видимо, написал 08/12/2022, держа в голове 8 декабря.
    Но в американском формате это получилось 12 августа
    Ответ написан
    2 комментария
  • Что использовать для отрисовки 3d графики на Rust?

    vabka
    @vabka Куратор тега Rust
    Самое модное и молодёжное - wgpu
    Умеет работать с Vulkan, Metal, OpenGL, DirectX, WebGL. На главной странице есть и примеры приложений

    Ещё, возможно, тебя заинтересует naga, как дополнение к wgpu - это либа для трансляции шейдеров.

    Ещё, возможно, тебя заинтересует bevy
    - это ECS-фреймворк для разработки игр и не только. В него встроена поддержка wgpu
    Ответ написан
    2 комментария
  • Не понимаю в чём ошибка в коде, как исправить?

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

    Обычно приватные поля пишут с нижним подчёркиванием, с маленькой буквы. (_context)
    С большой буквы, обычно, пишут публичные свойства.
    Если у вас в команде принято писать с нижним подчёркиванием и с большой буквы, то пишите так, как принято (_Context)
    Ответ написан
    Комментировать
  • Почему видео не включается на телефоне?

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

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

    Это значит, что у тебя нет модуля win32crypt
    Его нужно установить через pip
    Ответ написан
    Комментировать
  • Что это за скрипт?

    Буквально первая строчка в гугле

    Swap nodemon instead of node to run your code, and now your process will automatically restart when your code changes
    Ответ написан
  • Какие статьи почитать (или видео), чтобы разобраться полностью в теме про роутинг в .net?

    Ну варианта три:
    1. Конвенции
    2. Атрибуты
    3. MapGet / MapPost итд

    Это если не считать всякие сторонние роутеры типа F# Giraffe

    Атрибуты были и в .net framework.
    А от Convention based все уходят, тк:
    1. Не позволяет делать нормальный rest-style роутинг. Да и в принципе маршруты с ним получаются не очень красивые, и не очень предсказуемые.
    2. Легко может поломаться

    private static void MapEndpoint(

    Последнее - это частный случай 3го варианта. Ещё он есть в формате отдельной библиотеки - Carter
    Ответ написан
    2 комментария
  • Сортировка полей объекта?

    Можно указывать порядок свойств для сериализации при помощи атрибута JsonPropertyOrder.

    Ещё можно попробовать программно через https://learn.microsoft.com/en-us/dotnet/standard/...
    (вот примитивный пример, который не учитывает атрибуты)
    using System;
    using System.Text.Json;
    using System.Text.Json.Serialization;
    using System.Text.Json.Serialization.Metadata;
    
    var options = new JsonSerializerOptions
    {
        TypeInfoResolver = new DefaultJsonTypeInfoResolver
        {
            Modifiers = { AlphabeticalOrderModifier }
        },
        WriteIndented = true
    };
    
    var obj = new MyClassA { X = 42, B = new MyClassB { X = 69 } };
    var result = JsonSerializer.Serialize(obj, options);
    Console.WriteLine(result);
    
    static void AlphabeticalOrderModifier(JsonTypeInfo jsonTypeInfo)
    {
        if (jsonTypeInfo.Kind != JsonTypeInfoKind.Object) return;
        var properties = jsonTypeInfo.Type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty).OrderBy(x => x.Name);
        jsonTypeInfo.Properties.Clear();
        foreach (var property in properties)
        {
            var propertyInfo = jsonTypeInfo.CreateJsonPropertyInfo(property.PropertyType, property.Name);
            propertyInfo.Get = property.GetValue;
            propertyInfo.Set = property.SetValue;
            jsonTypeInfo.Properties.Add(propertyInfo);
    
        }
    }
    
    class MyClassA
    {
        public int X { get; set; }
        public MyClassB B { get; set; }
    }
    
    class MyClassB
    {
        public int X { get; set; }
    }


    Выводит такое (как раз всё в алфавитном порядке, не смотря на то, в каком порядке всё написано в классе):
    {
      "B": {
        "X": 69
      },
      "X": 42
    }
    Ответ написан
    8 комментариев
  • Как привести код в читаемый вид?

    Код у тебя обфусцирован.
    Можешь попробовать деобфусцировать при помощи каких-нибудь автоматических инструментов (гугли "deobfuscate JavaScript code")
    Возможно, придётся поиграться с настройками.
    Но не факт, что получится что-то очень читабельное.
    И абсолютно точно ты не получишь легкочитаемый исходный код - оригинальные названия переменных и функций ты точно не получишь
    Ответ написан
  • Как реализовывать коллизии в skia?

    skia отвечает только за отрисовку.
    Всё остальное ты должен реализовать сам.

    Как мысль: ты можешь запускать "симуляцию" движения этих фигур и периодически просить skia отрисовать кадр получившейся симуляции.
    Ответ написан
  • Random.Range(0, 2) не возвращает значение 2, что делать?

    Второй параметр Random.Range - это верхняя граница НЕ включительно.
    Так что тебе нужно просто передать туда 3, вместо 2, как сказал K0TlK
    Ответ написан
    Комментировать
  • На чем делать UI для Windows в 2022 году?

    MAUI - это масштабное обновления xamarin-а по сути. ИМХО без поддержки Linux его кроссплатформенность мало чего стоит.
    WPF - это нативная технология при этом с WPF тебе доступны всякие сторонние и родные контролы. В том числе самые новые от WinUI 3.
    UWP превратился в WinUI 3
    Avalonia - кроссплатформа. "Как WPF но лучше", но без поддержки контролов от WPF или WinUI, но есть много свободных вполне неплохих. Да и система стилей достаточно удобная

    Если тебе не нравится Winforms из-за внешнего вида стандартных контролов, то всегда можно использовать сторонние.

    На втором месте наверное AvaloniaUI смущает что на нем каких то больших проектов.

    Есть много разных проектов, в том числе крупных и коммерческих, и от именитых компаний.
    https://avaloniaui.net/Showcase

    Так как программа небольшая я склоняюсь все быстро сделать на Windows Forms, в 2022 году кто то стартует на нем новые проекты?

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

    В общем вот мой топ-чарт:
    1. Если дёшево и сердито - Winforms (остальное - если нужен нормальный дизайн)
    2. Если кроссплатформу - Avalonia
    3. Если нужно на телефоны - MAUI (хотя Avalonia уже можно заставить работать на Android)
    4. Если хочется в новый дизайн винды - WinUI 3
    Ответ написан
    6 комментариев
  • Чему изначально равен GET запрос?

    <form method ="GET">

    В чём смысл делать форму с GET? Это форма поиска?
    Пока мы не нажали на кнопку "отправить", чему равен каждый элемент
    глобального ассоциативного массива?

    Ничему не равен - его ещё просто не существует, тк скрипт запустится только тогда, когда этот GET запрос придёт на сервер. А запрос будет отправлен только после нажатия на кнопку.

    И грамотно ли я вывел значения GET запросов в цикле?

    Нет. Ты в цикле проходишься по обычному массиву, а синтаксис используешь такой, будто по ассоциативному.\
    А ещё у тебя отступов в коде нет, ни в html, ни в php - читать сложно.
    Правильнее будет так:
    $request = $_GET; 
           	   
    $keys = ["name1", "age1", "weight1"];
    
    foreach($keys as $key){
      if(isset($request[$key])) {
         echo $request[$key];
      }
    }

    Либо так:
    $request = $_GET; 
           	   
    foreach($request as $key=>$value){
         echo $key.'='.$value;
    }
    Ответ написан
    21 комментарий
  • Проектирование БД на sqlite3, как правильно спроектировать некоторые таблицы?

    Вопрос №1 нужно ли для каждой таблицы создавать дополнительные таблицы для связи многие ко многим. Потому что по сути над слябом/деталью может выполнятся несколько работ, каждая работа из таблицы works может быть выполнена над каждым слябом/деталью?

    Если по вашей предметной области такое возможно, то да.
    Если нет, то нет.

    Вопрос №2 могу ли я например сделать столбец id_slabs_works но он будет пустым например если столбец id_details_works будет заполнен и наоборот?

    В теории - конечно можешь.
    Но возникает встречный вопрос.
    Если слэб и деталь (кстати, в твоём случае это part, а не details) по факту одни и те же атрибуты, то может их имеет смысл обобщить и засунуть в одну таблицу?

    Вопрос №3 если мне нужно фиксировать когда сотрудник начал работу над деталью и когда закончил получается что нужно отдельная таблица?

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

    Поскольку если мы в таблице performance_work назначаем рабочим выполнение работ, получается что запись после уже внесения в таблицу нужно будет как бы перезаписывать , поскольку начало работы и ее окончание будут внесены позже чем назначение рабочему выполнение работ что как я понимаю не лучшее решение.

    Вполне нормальное решение.
    Рабочий начинает смену - в неё записывается время начала и статус "в работе".
    Рабочий завершает смену - в неё записывается время завершение и статус "завершена".

    Не думаю, что тебе следует заморачиваться с концепцией event sourcing.
    Ответ написан
    Комментировать
  • Как скопировать ascii?

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

    Если меня глаза не обманывают, то распиновка непосредственно на плате написана.
    А чтобы узнать, как подключить к колонкам - надо смотреть на то, откуда идут провода к аналоговому аудиовыходу.
    Ответ написан
    Комментировать