• 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
    Для правильного вопроса надо знать половину ответа
    Что значит "автоматически"? Всю автоматизацию пишут разработчики.
    Разработчик фронтенда должен описать действия по событию добавления в избранное и генерировать соответствующий запрос к бэкэнду.
    Разработчик бэкенда должен описать добавление в базу данных при получении запроса.
    Ответ написан
    Комментировать
  • Как спрятать закрытый ключ в приложении?

    SagePtr
    @SagePtr
    Еда - это святое
    Закрытый ключ из кода приложения можно будет выцепить всегда, вопрос только в том, насколько злоумышленник заморочится этим.
    Если вам действительно необходимо шифровать настройки приложения, я бы рассмотрел вариант с мастер-паролем и запросом его у пользователя при запуске приложения.
    Ответ написан
  • На каком языке программирования написаны сайты в TOR’e?

    planc
    @planc

    на каком языке программирования пишут сайты в Торе

    на любом

    почему все сайты такие простые!

    нет менеджеров, которые говорят, что нам нужны дельфины рыгающие радугой
    Ответ написан
    3 комментария
  • На каком языке программирования написаны сайты в TOR’e?

    @rPman
    Сайт в tor это обычный сайт, ничем не отличающийся от обычного интернета, запускается с использованием тех же программ типа ngnix/apache/php/... да там только http (так как шифрование на канальном уровне и некому выпустить сертификат для onion)

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

    Если что, в тор есть полноценные зеркала сайтов, даже facebook - facebookcorewwwi.onion со всеми скриптами и аналитикой.
    Ответ написан
    1 комментарий
  • Какое "О" большое у методов выборки из базы данных?

    Эти методы ни в Ларавел, ни в Ноде не обходят никакие поля, всю работу делает СУБД. Как конкретно она это делает зависит от СУБД и от схемы данных.
    Ответ написан
    Комментировать
  • Проверка на наличие пользователя в базе данных. В чем ошибка?

    @galaxy
    Ошибки, блин, проверяйте (mysqli_error).

    $sql = mysqli_query($connection, "UPDATE `users` SET '{$userInfo['first_name']}', '{$userInfo['last_name']}', '{$userInfo['photo_big']}'");

    Почитайте на досуге что-нибудь про SQL. Синтаксис UPDATE такой:
    UPDATE
       col1 = value1,
       col2 = value2,
       ...
     WHERE
       colN = valueN
       ...


    "INSERT INTO `users` (`id`, `vk_link`, `first_name`, `last_name`, `avatar`, `joined`, `group_user`) VALUES (NULL, '{$userInfo['screen_name']}', '{$userInfo['first_name']}', '{$userInfo['last_name']}', '{$userInfo['photo_big']}', CURRENT_TIMESTAMP, NULL)")

    id, небось, AUTOINCREMENT? Не надо ее в таком случае включать в INSERT

    ... WHERE vk_link='{$userInfo['screen_name']}'
    По тонкому льду ходите
    Ответ написан
    Комментировать