Pull to refresh
0
0

Веб-разработчик

Send message

Спасибо за подробный ответ. Стало сильно понятнее теперь :)

После прочтения сразу в голове возник вопрос: а зачем, собственно, был весь этот алгоритм, если вы и сами признаёте, что кастомный id решил бы эту задачу лучше? Почему не было использовано это решение?

Почему вообще MongoDB в таком необычном сценарии оказалась? Если работа с большими коллекциями, то не рассматривались ли альтернативы?

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

Как я уже писал выше, с SQL знаком весьма поверхностно, но два разных условия выборки на лицо.

да, но в Вашем примере не хватает одной детали. В "облагороженном" куске кода было такое условие: WHERE section_item_history.product_id IS NOT NULL, — а потом за пределами WITH должно было стоять ещё одно, но уже с конкретным параметром product_id. Так что, для корректности пример должен быть в духе:


select t1.id as x, t2.id as y, t3.id as z 
from c as t1, c as t2, c as t3
where t1.id < 10 and t2.id < 10 and t3.id < 10;

with t as (
    select t1.id as x, t2.id as y, t3.id as z 
    from c as t1, c as t2, c as t3
    where x is not null and y is not null and z is not null)
select * from t
where x < 10 and y < 10 and z < 10;

Хм, а дробить это сразу а функции можно или это сильно будет сказываться на производительности? Просто мне всё-таки хочется понять, почему Вы сказали, что практики "чистого кода" не сильно применимы к SQL(ну, да, это вообще не ЯП, но всё-таки).

Согласен, но всё-таки, если параметр WHERE стоит за пределами выражения, это должно наводить на мысль..)

По первому же примеру: ман не главное, ведь даже при чтении функции очевидно, что она проводит тупо выборку нужного формата и возвращает её, это логически приводит к тому, что все остальные условия будут работать уже с полученной выборкой.


Взяли результат из сложной функции -> фильтранули его -> "ай-яй-яй, всё сломалось, но мы же ничего не меняли в логике!". Бинго! Вы вынесли одно из условий в следующий этап обработки.


ИМХО, тут скорее на лицо проблема построения логических цепочек. Т.к. даже для меня, человека весьма далёкого от подобных сложных запросов и не знающего о функциях и их работе в SQL, очевидно, что тут получается сначала огромный результат по всем продуктам(!) и только потом он изменяется.

Не могли бы Вы более полно раскрыть свою мысль, почему оргомное чсв и звездность?

Мне кажется вы что-то не так прочитали.


СУБД — это серверное приложение, тогда как хеш-таблица является библиотекой, т.е. СУБД — это хеш-таблица плюс кое-что еще. И это кое-что еще включает в себя как минимум саму по себе серверную обвязку.

Если добавить ещё брутфорс по фоткам, видео и дополнительно прогнать это не только по сообществам, но и по друзьям с открытыми страницами… Покрытие избранного станет выше)

"со всех сумм денежных средств, полученных иностранными компаниями в результате оказания ими электронных услуг физическим лицам"

Но если использование некоммерческое, то откуда берётся эта "сумма"? ЯННП

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

Т.е. если по закону наши данные окажутся в опасности, то ущемления наших прав и свобод тут нет?


Пусть лучше ущемляют неофициально, но не лишают средств защиты.

На тему простой строки templateUrl. Поиск замену в строках и комментариях можно подключить галочкой, если что)

Надо понимать важный момент. В основе докера изначально лежит технология LXC, что подразумевает необходимость линукса и, соответственно, для разных ОС будут и разные, несовместимые образы. В основе докера для винды лежит технология hyper-v и некоторое кол-во костылей для получений специфичных особенностей ядра линукса.

Мне кажется вы несколько путаете их цели. Докер для виртуализации конкретных приложений, Ansible — для первичной установки и настройки того, что должно быть вне контейнеров.

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

За ссылку спасибо, аргументация хорошая. Убеждает.

Про то как V8 оптмизирует код почитайте. Ваш бенчмарк совершенно некорректен.

Information

Rating
Does not participate
Registered
Activity