Задать вопрос
  • Какие есть самые распространённые причины появления багов?

    "самой распространённой причины" не существует. Она будет сильно зависеть от конкретного продукта и процессов разработки.

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

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

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

    4. Регресс. Разработчик нормально реализовал спецификацию, но тестировщик проверил только новую фичу и не стал проверять регресс - в итоге новая фича работает, а какая-то старая - сломалась, из-за того что её задели при разработке.

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

    6. Во время разработки у заказчика поменялись планы. Старая спецификация больше не отвечает новым требованиям. Нужны доработки.

    Чтобы минимизировать вышеперечисленное, нужно:
    1. Плотное общение между разработчиком, аналитиком, и QA.
    2. QA должен начинать тестирование ещё на этапе спецификации
    3. Разработчик должен сообщать аналитику о всех случаях, когда он не может что-то реализовать или о каких-то пробелах.
    4. Разработчик должен сообщать QA о возможном регрессе в других фичах.
    5. Должны быть автотесты, чтобы уменьшить нагрузку на QA и чтобы минимизировать шанс на регресс
    6. Тестирование должно обязательно производиться на том оборудовании и в том окружении, на котором система будет потом работать.
    7. Чем чаще релизы - тем лучше.
    Ответ написан
    1 комментарий
  • Предоставляет ли Google Authenticator информацию сайтам?

    Google authenticator ничего не сообщает сайтам, тк он просто реализует алгоритм/стандарт TOTP.
    https://ru.m.wikipedia.org/wiki/Time-based_One-tim...

    Если сильно не доверяешь Гуглу - ты можешь воспользоваться другим генератором кодов (Яндекс ключ, ms authenticator, authy), или вообще можешь для интереса попробовать написать свой скрипт, который по ключу будет генерировать такие же коды.
    Ответ написан
    2 комментария
  • Какие последствия создания и использования стороннего клиента для сервиса такси?

    Разница в том что есть пользовательское соглашение, которое ты принимаешь в момент регистрации и установки.

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

    Если тебя интересует непосредственно разработка всяких проксей, vpn, и прошивок для сетевого оборудования, то это:
    1. Сетевое программирование
    2. Системное программирование
    Ответ написан
    1 комментарий
  • Хорошие ли видеокарты от таких брендов как asus, hp, msi и ТД?

    nvidia и amd не производят свои видеокарты - они производят только чипы.
    Затем эти чипы поставляются вендорам: (asus, msi, gigabyte, palit, и ещё куча других), которые на их основе уже соберут видеокарту.

    Различия будут в качестве сборки, охлаждения, питания, размере, и, иногда, в чипах памяти.
    У каких-то видеокарт будет разгон с завода.
    А ещё в дизайне и количестве разъёмов для подключения мониторов.
    Из этого будет складываться цена.

    Например вот первые попавшиеся:
    MSI GeForce GTX 1660 SUPER VENTUS XS OC 6GB
    Palit GeForce GTX 1660 SUPER StormX 6GB

    Они обе построены на одном и том же чипе (TU116-300-A1)
    У меня почему-то вариант от Palit стоит немного дороже, хотя у варианта от MSI очевидно более мощное охлаждение и есть разгон с завода. В этом плане Palit выигрывает только в меньшем размере.
    Ответ написан
    3 комментария
  • К чему готовиться работая преподом в колледже?

    4 дня работаешь на нормальной работе, 1 день преподаёшь.
    Преподавание - это 90% педагогики и 10% собственно программирования.
    Прогрессировать, очевидно, будешь только в умении доносить какие-то знания до людей сильно глупее тебя (ну или хотябы в умении не сходить с ума от того что на паре студенты ничего не делают)
    Ответ написан
    4 комментария
  • Может ли маркетплейс получить мои ФИО при оплате картой?

    Когда ты создашь достаточно большой минус со своим мультиаккаунтом, то wb просто обращается в полицию и тебя мгновенно находят через запрос в банк "а кто этот платёж сделал"

    Так что лучше либо не пользоваться wb, либо делать нормальные возвраты, либо не делать возвраты.
    Ответ написан
  • Как лучше возвращать ошибку API?

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

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

    Тут надо детально смотреть, как именно происходит работа с данными, и кто и как имеет к ним доступ - и уже на основе этого строить всю защиту.
    Какие-то вещи просто не нужны из принципа, что у тебя просто нечего этим защищать (СЗСВ, СДЗ)
    Какие-то можно компенсировать регламентами и доступами (САНЗ, САВЗ, СДЗ)

    Так что тут выбора два:
    1. Внимательно читать стандарты, сам текст закона, всякие регламенты и разъяснения от РКН итд.
    2. Обратиться к какой-нибудь компании, которая на этом специализируется.

    "Хостинг по 152 ФЗ" - это вершина айсберга, которая гарантирует только две вещи:
    1. Ограничение физического доступа к серверам
    2. Удаление данных, когда вы перестанете этими серверами пользоваться
    Ответ написан
    Комментировать
  • WebView2 + costura?

    Costura собирает только managed код в себя.
    WebView2 - это уже unmanaged.

    Переходи на dotnet 6 - там можно включить неуправляемые библиотеки так, чтобы они распаковывались при запуске.

    PS: single file для десктопных приложений переоценён. Обновления, например, гораздо легче накатывать, когда у тебя много файлов, тк те файлы, которые не изменились, можно будет не передавать при обновлении
    Ответ написан
    2 комментария
  • Как отправить на GitLab все комиты начиная с первого, а не только последний?

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

    Кажется, что данные не зашифрованные, а сжатые, тк там есть ещё поле compression и указан, видимо, исходный размер данных.
    Число 2 означает, какой алгоритм шифрования использовался (видимо).

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

    А вот если оно реально зашифровано, то никак не расшифровать - никакой из современных надёжных алгоритмов за адекватное время расшифровать нельзя.

    PS: если бы не было скринов, то ответ был бы просто "нельзя", так как хэш абсолютно ничего тебе бы не сказал о том, как данные зашифрованы)
    Ответ написан
    Комментировать
  • Как правильно использовать тип unknown?

    Варианта четыре:
    1. Кастануть в any
    2. Кастануть в конкретный тип
    3. Использовать narrowing: Сделать проверки, что typeof item === "object" и что у него есть нужные свойства.
    4. Если заранее знаешь, что у тебя item - это какой-то тип из нескольких, то вместо unknown можно сделать union

    Вот ещё пример:
    https://www.typescriptlang.org/play?target=9#code/...
    Ответ написан
    Комментировать
  • Что значит второй PK в модели БД?

    Либо ограничение, либо индекс - собственно это и есть сам первичный ключ.

    А то что около колонок - это просто подсказка о том, что эта колонка является PK.
    Ответ написан
    Комментировать
  • Как правильно хранить изображения в SQL и как правильно работать с ними в WPF проекте?

    Идеальное решение без лишних рассуждений

    Картинки - в S3, а перед S3 поставить CDN, чтобы сильно S3 не нагружать.
    В центральную базу данных на сервере - только идентификаторы картинок.

    Клиент (на WPF) будет обращаться к какому-то приложению, которое написано на ASP NET Core, а оно, в свою очередь, будет идти в центральную БД за всякой инфой.

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



    Да, единственный хороший вариант хранить картинки в базе - это не хранить картинки в базе, а хранить лишь пути или идентификаторы картинок.

    Главный минус картинок в ФС - это то что они будут привязаны к одному серверу. Лучше хранить картинки в другой системе (S3 или CDN) и хранить в базе их идентификаторы, чтобы потом клиент мог сам их скачать, если это необходимо. Так раздача картинок не будет привязана к основному серверу.

    А клиент пусть их кэширует также у себя на диске.

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

    Если ты хочешь, чтобы разные пользователи имели доступ к единой базе модов, то действительно надо сделать какой-то сервер.

    Ну и клиент на WPF не должен напрямую подключаться к MS SQL.
    MS SQL должен находится где-то на сервере и спрятан за каким-то другим web-сервером (который будет написан с использованием ASP NET Core например), который будет уже отвечать за всякую логику.
    Если тебе нужна локальная база данных на клиенте (для кэша например), то лучше использовать sqlite.
    Ответ написан
    2 комментария
  • Есть ли в JETBRAINS умный full-line completion, как в VS?

    Есть.
    https://plugins.jetbrains.com/plugin/22282-ai-assistant
    И
    https://plugins.jetbrains.com/plugin/17718-github-...

    Да и tabnine я бы не сказал, что сильно кривой - зато он в оффлайне работает.
    Предлагает кривое дополнение не райдер, а табнайн - его тоже можно настроить и запретить автокомплит с синтаксическими ошибками.
    Настройки открываются, если набрать в редакторе tabnine::config
    + У тебя Starter версия, а у неё ограничения на умность есть.

    PS: я бы лучше на эти ИИ-заполнялки сильно не опирался, тк они сами по себе достаточно тормозные (и жрут кучу ресурсов, если оффлайн) - это раз. Те, которые в интернет лезут - они в интернет лезут (и без гарантий, что твой код не сливается), что даже без слива кода делает тебя привязанным к интернету и тратит трафик (неожиданно и важно, если вдруг с телефона выходишь).
    Ответ написан
    5 комментариев
  • При скачивании Visual Studio Code выдает ошибку, что делать?

    1. Это уже при установке, а не при скачивании
    2. Это не ошибка, а предупреждение
    3. Прочитай - там буквально всё написано, и причины, и что делать.
    Ответ написан
  • Софт для проверки б/у компьютера перед покупкой?

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

    Стресс-тест видеокарты, обычно, проводят минут 15, пока температура не стабилизируется.

    А так occd или Aida должно хватить.
    + Визуальный контроль, что ту же видеокарту не прогревали.
    (Ну и желательно все инструменты на live usb поставить, чтобы защититься от любых вмешательств а ОС
    Ответ написан
    Комментировать
  • Где найти DC-PD преобразователь?

    Что-то типа этого видимо:
    https://youtu.be/t7HMglWVs2U
    Ответ написан
    Комментировать
  • Можно ли использовать микросервисы в таком случае?

    Кажется, вам нужны не микросервисы, а просто небольшой рефакторинг
    Ответ написан
    Комментировать