Задать вопрос
  • Какую базу данных лучше использовать для чата?

    Да в общем то любая реляционная вполне справится с этим. Только тебе нужно будет данные из классов на таблички переложить.

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

    Кажется, тут сразу три независимые вещи, которые часто хранят раздельно:

    1. Собственно настройки
    Их удобнее всего хранить в appsettings.json, который можно спокойно закоммитить в репозиторий.
    В коде можно получить к ним доступ через IConfiguration или IOptions

    2. Секреты (пароли, токены, итд)

    Строку подключения в общем то решил захардкодить.

    Остается имя админа и пароль + почта.

    Их лучше в репозитории не хранить.
    Благо IConfiguration можно наслаивать и прокидывать секреты через переменные окружения, например, или использовать какой-нибудь Vault или keyring.
    Уже упомянутый диспетчер секретов можно использовать только для разработки, но не для прода.

    3. Фича-флаги.

    Дальше динамическая смена настроек как то:
    OAUTH авторизация, которую выключать и включать можно.

    Их часто хранят в базе данных, да. Есть также несколько уже готовых решению для удобного управления фича флагами.
    Гуглить feature flags.
    https://learn.microsoft.com/en-us/azure/azure-app-...

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

    В дотнете для работы с такими конфигами есть интерфейс IOptionsMonitor
    Ответ написан
    1 комментарий
  • Можно ли вкладывать пакеты Dot1Q в PPPoE?

    Видимо можно:
    https://www.cisco.com/c/en/us/td/docs/ios/bbdsl/co...

    В принципе логично, ведь они ортогональны:
    PPPoE - надстройка над Ethernet
    802.1q - дополнительные тэги внутри Ethernet
    Ответ написан
    Комментировать
  • О чем на самом деле идет речь в single-responsibility principle?

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

    Представим себе такой псевдокод:
    конфиг = прочитать_конфиг_из_файла()
    соединение = открыть_соединение_с_бд(конфиг.строка_подключения)
    соединение.сохранить(данные)
    соединение.закрыть()


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

    С другой стороны, если у нас контекст - это просто небольшой скрипт, который делает бэкапы и он полностью самостоятелен, но нарушения нет - попытка разделить этот "скрипт" приведёт только к усложнению всего.

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

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

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

    Вроде нормально
    Ответ написан
    Комментировать
  • Как с React сделать запрос grpc?

    https://github.com/grpc/grpc-web
    Но нужно ещё специальный прокси на сервере поднимать, тк в браузере нет нормального способа сериализовывать protobuf и нет гарантии, что будет использоваться http/2
    Ответ написан
  • Как объявить тип, который является коллекцией значений разных типов, которые можно конвертировать в другие типы ❌️с помощью trait-а Into❌️?

    vabka
    @vabka Куратор тега Rust
    В твоём случае тебе нужно завести новый trait, который будет брать ссылку на оригинальный объект, в отличие от Into. Потом ты сможешь сделать blanket implementation наподобие
    impl<T: Clone + Into<JsValue>> MyIntoJsValue for T {
        fn into_jsvalue(&self) -> JsValue{
            self.clone().into()   
        }
    }
    Ответ написан
    4 комментария
  • Как создать свою доменную зону?

    Если устроит вариант, что оно будет работать только в сети предприятия - просто нужно поднять свой DNS-сервер в этой сети и настроить устройства в этой сети чтобы они обращались к этому серверу.
    Ответ написан
    4 комментария
  • Не работает php на reg.ru, как исправить?

    Кавычку забыл
    Ответ написан
    Комментировать
  • С какими последствиями прекращения поддержки смартфона вы сталкивались?

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

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

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

    МП - лучше брать на B-чипсете. + у тебя идёт переплата за размер. Лучше возьми mATX или ATX

    Видео - лучше помощнее взять.

    ОЗУ - лучше возьми другой бренд. Самсунг, Кингстон, hynix, итд - разница будет в цене не такая большая, но зато точно с качеством проблем не будет.
    И бери парный комплект, а не одну планку.
    Ответ написан
    1 комментарий
  • Что делать, если нету выбора языка в android studio?

    Сделай с no activity.
    Всё равно потом свою активити добавлять будешь
    Ответ написан
    Комментировать
  • Как правильно добавлять поддомены?

    www - это и есть поддомен. Если он тебе нужен - оставляй.
    В hosts ничего писать не нужно.

    А основной домен у тебя перестал работать видимо из-за того что ты убрал A для основного домена.
    Ответ написан
    Комментировать
  • Откуда взялась ассоциативная функция from?

    vabka
    @vabka Куратор тега Rust
    В wasm-bindgen::JsValue Нету impl From for JsValue

    Всё там есть https://docs.rs/virtual-dom-rs/latest/virtual_dom_...
    impl From<Element> for JsValue
    + есть целый ряд blanket impl

    Не работает. Работает только с &element

    Потому что ты реализовал трейт для &element, а не для element.
    Сам же в начале написал, что
    Тут тоже подвоха нет. get_element_by_id() возвращает Option<Element>, а не Option<&Element>

    Вот такое уже работает:
    https://play.rust-lang.org/?version=stable&mode=de...

    Но эти поганые макросы наносят уроны документации, и не видно какие именно есть поля и функции у JsValue.

    Макросы на это влиять не должны. VS Code с rust-analyzer и intellij rust умеют показывать все impl для структуры, в том числе blanket impl и те impl которые возникли в результате вызова макроса.
    Ответ написан
    1 комментарий
  • Как включить отладку по мобильной сети?

    Нет, такой возможности нет.

    Или, может быть можно как то обойти это?

    Взять точку доступа, поднять внутри сети этой точки доступа vpn. С помощью этого vpn объединить сети компьютера, с которого будет идти отладка и телефона.
    Дальше как будто по wifi отладка.
    Ответ написан
  • Можно ли просмотреть репосты записи в Telegram?

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

    В обоих случаях тебе нужно будет прочитать всю историю из соответствующих аккаунтов.
    Сам Telegram предоставляет только количественную статистику.
    Ответ написан
    3 комментария
  • Редактор мебели где можно работать с электроникой?

    Я такое во Fusion 360 делал - это не очень-то мебельный редактор, но все нужные функции там есть.
    Всякие стандартные детали типа болтов и шурупов можно найти во встроенном каталоге.
    Простые детали типа самой столешницы - нарисовать самостоятельно
    Произвольные профили - через моделирование листовых деталей.
    Разница по материалам будет только в BOM, но если очень хочется - можно красивый материал для рендера сделать.
    Если хочется впихнуть какую-то кастомную электронику - есть интеграция с Eagle и можно импортировать модели из других редакторов.

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

    Со всякими розетками и зарядками - аналогично.

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

    Всё то же самое +/- можно сделать в любом CAD, даже в компасе.

    Если никогда раньше в таких не работал - база изучается за пару вечеров по видосам на yt или по встроенной справке.
    Ответ написан
    1 комментарий
  • Какую ответственность несет провайдер в случае взлома?

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

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

    UPD: Если будут рассматривать иск о принесённом ущербе, то тут два варианта:
    1. Провайдер тебе выплатит компенсацию, а потом сам пойдёт и обратится в суд на своего вендора
    2. К ответу привлекут этого вендора, а провайдер будет лишь как свидетель.

    UPD2: думал что речь об общении юридических лиц друг с другом, а тут оказывается просто терминал какой-то не такой провайдер домой поставил...
    Ответ написан