Задать вопрос
  • Ошибка в запросе, в чём причина?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Такое ощущение, что код пропустили через какой-то markdown-редактор, который посчитал, что запись вида u.id это адрес сайта и автоматически заменил на соответствующий markdown-синтаксис ссылок. Такое может быть, например, при пересылке кода как обычного текста в мессенджерах.
    67bc7a1565357335276039.png
    Ну а малограмотный кодер вставил этот markdown-код не задумываясь.
    Так что причина - копипаста без знания синтаксиса конкретного диалекта SQL.
    Ответ написан
    1 комментарий
  • Стоит ли использовать Django для создания многофункционального сайта?

    vabka
    @vabka Куратор тега Веб-разработка
    Нет никакой причины, почему нельзя было бы использовать Django для сайта клиники
    Ответ написан
    Комментировать
  • Стоит ли использовать Django для создания многофункционального сайта?

    @Belvarm
    Java TeamLead, интеграционные решения
    Стоит использовать те фреймворки, которые вы знаете, а то будет мало пользы
    Ответ написан
    Комментировать
  • Как и от каких атак защитить свой сервер, находящийся на чужом гипервизоре?

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

    Невозможно.

    Чтобы войти, ему нужен логин/пароль, он их не знает.
    Чтобы их взломать, ему нужно, как минимум, сервер перезагрузить.

    Неверно. Ему не нужно их ломать. Ему достаточно поменять initramfs, добавив туда логгер - и от отправит ему введенный Вами самим ключ :)

    Вот неплохая статья на эту тему. Но даже предложенные в ней методы защиты не защитят от перестановки носителей в другой комп, если владелец хоста решит что овчинка стоит выделки.
    Ответ написан
    1 комментарий
  • 10к строк по базе размером 500кк?

    @galaxy
    SELECT * FROM base WHERE domain LIKE '%habr%' LIMIT 10000;


    проще всего так, наверно:

    CREATE EXTENSION pg_trgm;
    
    CREATE INDEX trgm_domain_base_idx ON base USING GIST (domain gist_trgm_ops);
    
    EXPLAIN ANALYZE SELECT * FROM base WHERE domain LIKE '%habr%' LIMIT 10000;


    https://www.postgresql.org/docs/current/pgtrgm.html
    Ответ написан
    Комментировать
  • 10к строк по базе размером 500кк?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Запрос
    SELECT * FROM base WHERE domain LIKE '%habr%' LIMIT 10000;


    Какой это нахрен поиск "по совпадениям"??? Это, блин, поиск по подстроке!!! причём в любом месте строки.

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

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Есть несколько соображений.
    Сображение первое, глубоко теоретическое. Логическая структура конкретного приложения - это вопрос специфичный именно для приложения. Думать о ней в терминах соответствия некой теоретической "архитектуре" (тем более - "чистой архитектуре") - это самоограничение, достойное только зеленых новичков. Настоящие программисты не используют чистую архитектуру. Кароче, как вы приложение напишете, такая у него архитектура и будет. Возможно, если ваше приложение будет в чем-то замечательным, то эта архитектура войдет в учебники по этой самой архитектуре, в качестве примера (может - положительного, но, скорее, отрицательного ;-) ). Но пока что вам нужно решать практические вопросы, и шаблоны т.н. "архитектуры" могут служить только в качестве подсказки, а решать придется вам, из чисто практических соображений.

    Соображение второе, практическое. Раз, как вы пишете "Domain содержит только сущности, Enum'ы", то выбросьте из головы слово Domain, оно вас только запутывает. Потому что намекает на DDD, а то, что у вас есть, в DDD обзывают "анемичной моделью", и сильно не любят. Т.е. сейчас, с нынешней структурой приложения, DDD - оно не про вас.

    Так что, по факту, у вас есть два слоя абстракций, описывающих функции классов и методов: UI и Application. И я подозреваю, что логика приложения - классы и методы, отнесенные к Application - использует в качестве средства доступа к БД EF напрямую. То есть - что там прямо в коде используются сущности под названием DbContext и DbSet.

    А это означает, если по жизни, что от EF вы в таком раскладе никуда впоследствии не денетесь. Хорошо это или плохо - решать вам. Однако о намерении прибить гвоздями свое приложение к EF вы не упоминали и, предполагаю, не думали. Если это так, то задумайтесь именно об этом. Не о замене БД - EF может работать поверх разных БД, так что к MS SQL вы, по факту, с EF привязаны не будете (ну, разве что, сами того очень захотите).

    А задуматься надо: EF - штука неоднозначная. Она, подобно любому средству ORM, полна абстракций, которые, так скажем, не совсем хорошо ложатся на логическую структуру реляционных БД, а потому в них есть заметные дыры, через которые эта структура будет проглядывать. В частности, это нередко касается вопросов производительности.

    Но если вы выберети жизнь EF и ни с чем другим, то о Repository и UoW можете больше не думать: EF будет для вас и тем, и другим.

    Кароче, выбирайте.
    Ответ написан
    7 комментариев
  • Есть ли такая архитектура?

    то уже нет смысла ни в UnitOfWork, ни в Repository. То есть можно избавиться от Infrastructure слоя, чтобы схема была уже такая: UI, Application, Domain.

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

    Просто в случае с UnitOfWork и Repository накладывают только лишнюю нагрузку, потому что это и так реализовано в EntityFramework.

    Тогда будет усложнено тестирование, так как ты не сможешь замокать EF.
    Лучше всю работу по построению запроса тоже вынести куда-то в инфраструктурный слой - тогда и UoW и "Repository" не придётся тащить в домен.
    Ответ написан
    Комментировать
  • Почему в Rust использую Tokio?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Rust currently provides only the bare essentials for writing async code. Importantly, executors, tasks, reactors, combinators, and low-level I/O futures and traits are not yet provided in the standard library. In the meantime, community-provided async ecosystems fill in these gaps.

    There is no asynchronous runtime in the standard library

    Из документации.
    Ответ написан
    Комментировать
  • Почему в Rust использую Tokio?

    @D3lphi
    Потому что она реализует то, чего нет в стандартной библиотеке - асинхронный рантайм. Если писать сетевое приложение без токио, то придется плодить по отдельному потоку на каждый сетевой коннекшен. (на самом деле, речь идет про любой i/o, к которому чтение/запись файлов тоже относится) Каждый из этих потоков большую часть времени будет заблокирован в ожидании завершения сететвого вызова (передачи или приема данных). Однако, операционная система при разблокировке этих тредов будет постоянно переключать контекст для каждого потока и тратить процессорное время.
    Асинхронный подход позволяет обойтись лишь сравнительно небольшим пулом потоков, на которые токио рантайм будет распределять таски (грин треды) и, таким образом, экономить процессорное время.
    Ответ написан
    9 комментариев
  • Почему это не работает?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тут есть два варианта, либо оно всё же присваивается, просто вы его не можете использовать так, как нужно, либо у вас условие if равно false. Больше вариантов не может быть

    UPD:
    Судя по логам, у вас выводится число 10, значит внутрь блока if программа заходит, значит всё должно работать. Вы лучше не 10 выводите в Debug.Log, а значение переменной textret
    Ответ написан
    Комментировать
  • Gitlab -> Docker -> другая машина. Можно ли автоматизировать?

    @Wexter
    заново собираю контейнер, пакую в tar.gz и заливаю на Линуксовую машину.

    Может, есть уже готовые решения?

    gitlab ci/cd + gitlab container registry
    Ответ написан
    1 комментарий
  • Как узнать общее количество посещений моего сайта?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    простой путь поставить счетчик от гугла.
    Другой вариант вставить скрипт который вычитывает все что можно из клиента формирует адрес, добавляет случайное згачение и запрашивает ваш сервер
    Ответ написан
    Комментировать
  • Swift. Как с помощью цикла найти min и max в массиве?

    briahas
    @briahas
    ObjC, Swift, Python
    Извините, но это - "школьная" программа. Тут не решают за других "домашку". Тут помогают понять то что не понятно.

    Покажите что вы делали и что у вас не получилось, и мы вам поможем понять почему не получилось.
    Ответ написан
    5 комментариев
  • Почему php не видит post?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что $_POST заполняется при использовании Content-Type: multipart/form-data. Вы используете application/json, значит данные надо считывать самостоятельно.
    $json = file_get_contents('php://input');
    $data = json_decode($json, true);
    Ответ написан
    2 комментария
  • Почему php не видит post?

    DevMan
    @DevMan
    потому что данных нет в $_POST.
    вопрос задавался 100500 раз и ответ на него легко находится.
    как пример – https://www.geeksforgeeks.org/how-to-receive-json-...
    Ответ написан
    3 комментария
  • Есть ли какой-то модуль в node js, который приобразует время из ms в минуты, часы?

    @caballero
    Программист
    moment.js
    Ответ написан
    Комментировать
  • Что выгоднее, один развёрнутый запрос к бд или пару лёгких запросов и php?

    demon416nds
    @demon416nds
    Разработчик на чем попало
    Это зависит от слишком большого количества факторов чтобы давать однозначный ответ. Опишите ваш случай подробнее.
    Ответ написан
    Комментировать
  • У меня вопрос по серверной части сайта. Как при регистрации человека на сайте он автоматически попадал в бд?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Что значит "автоматически"? Всю автоматизацию пишут разработчики.
    Разработчик фронтенда должен описать действия по событию добавления в избранное и генерировать соответствующий запрос к бэкэнду.
    Разработчик бэкенда должен описать добавление в базу данных при получении запроса.
    Ответ написан
    Комментировать