|
|
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Я занимаюсь разработкой небольшой erp под определенные нужды (не убийца 1С). Разработчик я не очень опытный поэтому хотел бы поинтересоваться у профессионалов: Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Возможно я что-то забыл упомянуть, надеюсь вы меня поправите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 17:00 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimelпростые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Сложно давать советы не зная ваших задач. Никто не запрещает комбинировать способы взаимодействия с базой. Нет единого рецепта. Все зависит от квалификации разработчиков и поставленных задач. Нужно писать на том, что хорошо знаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 19:29 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
SergueiKimelпростые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Сложно давать советы не зная ваших задач. Никто не запрещает комбинировать способы взаимодействия с базой. Нет единого рецепта. Все зависит от квалификации разработчиков и поставленных задач. Нужно писать на том, что хорошо знаешь. К сожалению не могу привести всех задач, потому, что это неправильно, выйдет, что свою работу я перекладываю на сообщество. Прочитал десяток статей и вижу в основном 3 мнения: 1) вся логика обработки данных на промежуточном сервере обрабатывается каким-либо языком программирования 2) тоже самое только в БД 3) комбинирование У каждого свои аргументы, тут сложно выбирать. Я всё же склоняюсь к тому, что пусть сложные запросы выполняет бд, так как там это налажено оптимизатором запросов, статистикой, индексами и повторять тоже самое нет никакого смысла. Но и заниматься фанатизмом в виде реализации процедуры под каждый чих тоже не нужно. Этим может заняться orm. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 20:03 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, Если логика будет неизменной - делайте все на стороне БД. Иначе лепите в приложении. Комбинировать не советую - дороже выйдет переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 23:01 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Злой БобрKimel, Если логика будет неизменной - делайте все на стороне БД. Иначе лепите в приложении. Комбинировать не советую - дороже выйдет переделывать. неизменная логика - это оксюморон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 00:33 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, логика в Бд - решения тридцатилетней давности. Разве что какой нибудь аудит там внутри можно на триггерах делать. Поверьте мне как разработчику тоже своей erp (убийцо 1C :) ) - в таких проектах логика должна быть сосредоточена в одном месте, условно называемом сервером приложений. Вообще большинство энтерпрайз решений так и построены - БД это плоское хранилище для того чтобы быстро положить и взять данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 00:39 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelЯ занимаюсь разработкой небольшой erp под определенные нужды (не убийца 1С). Разработчик я не очень опытный поэтому хотел бы поинтересоваться у профессионалов: Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Возможно я что-то забыл упомянуть, надеюсь вы меня поправите. РМД это сильно ограниченная модель. Поэтому были "придуманы" процедурные расширения (например TSQL, plsql), чтобы обойти ее ограничения. Выбирая перенос логики в БД вы привязываетесь к вендору СУБД. "Промежуточные" варианты не живучи, т.к. нужны специалисты которые хорошо знают и ЯП, и язык ХП конкретной СУБД. В конце, концов "остаться должен только один" и обычно это программист БД. Так что если остановитесь на БЛ в ХП, то сразу пишите REST-сервисы в БД. Лично я бы рекомендовал в СУБД хранить только данные. Причем без всяких ХП. Только голый SQL. А всю БЛ писать на удобном для вас ЯП. ORM так же бы не рекомендовал использовать (Точнее не пытатся ч\з ORM хранить объекты). Все равно придется писать слой, который будет перекладывать сущности в необходимые объекты. А хранение объектов в БД, приведет к тому, что придется писать ХП. И БЛ "размажется" м/у сервером приложений и БД. Что плохо скажется на сопровождаемости проекта. P.S. А так, решайте сами. Вы должны сами наступить на все грабли, чтобы понять, какие грабли для вас предпочтительнее. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 07:04 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballero, mad_nazgul, Я так понимаю, если я буду всю бд логику хранить в модели (включая взаимоотношения таблиц все эти каскадные удаления и прочее), то я всё равно столкнусь с тем, что допустим у меня уже сейчас в хранимой процедуре лежит запрос на 100 строк и не какой-то монстр в виде 50 джоинов, нет, нормальный запрос простые он с нарастающим итогом и другими плюшками. Я реализовал его с помощью процедурного языка (то есть сделал несколько элементарных селектов, а все остальные операции делала уже другая программа) и в виде запроса SQL и когда сравнил скорость выполнения то всё стало на свои места. Оптимизатор запросов в субд решает! И выходит, что даже если я буду подобные запросы хранить в модели в виде raw sql, то я всё равно получаю привязку к вендорам, так как нужно этот raw sql писать под каждую базу. Мне не понятно, как и где хранить сложные запросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 07:59 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimelcaballero, mad_nazgul, Я так понимаю, если я буду всю бд логику хранить в модели (включая взаимоотношения таблиц все эти каскадные удаления и прочее), то я всё равно столкнусь с тем, что допустим у меня уже сейчас в хранимой процедуре лежит запрос на 100 строк и не какой-то монстр в виде 50 джоинов, нет, нормальный запрос простые он с нарастающим итогом и другими плюшками. Для чего этот запрос? В обычном CRUD приложении это не нужно. Это либо нужно для "отчетов", либо для "аналитки". В первом случае лучше использовать построитель отчетов (для меня JasperReports). Во втором случае использовать OLAP (для меня Mordrian) KimelЯ реализовал его с помощью процедурного языка (то есть сделал несколько элементарных селектов, а все остальные операции делала уже другая программа) и в виде запроса SQL и когда сравнил скорость выполнения то всё стало на свои места. Оптимизатор запросов в субд решает! Если можно получить данные из SQL запроса, то лучше получить данные из SQL-запроса. Опять же повторю ХП-это костыль, т.к. РМД очень ограниченная модель. Можно использовать этот костыль, когда это оправдано. Но его использование лишает смысла "слоя-приложения". Т.е. проще будет сделать клиента (отображение), который будет напрямую работать с БД ч/з ХП. Так можно. Почему бы и нет. Но для меня не очень удобно. KimelИ выходит, что даже если я буду подобные запросы хранить в модели в виде raw sql, то я всё равно получаю привязку к вендорам, так как нужно этот raw sql писать под каждую базу. Зачем? Все современные SQL-БД как минимум поддерживают SQL-99. Более новые "фичи" надо смотреть по реализации. KimelМне не понятно, как и где хранить сложные запросы? Еще раз "сложные" запросы зависят от задачи. Обычно "сложные" запросы возникают либо, для "отчетов", либо для "аналитики". Для них есть специальные инструменты и фреймворки. P.S. Сделать свою "OLAP на коленке" можно, но не нужно, т.к. они уже сделаны :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 08:38 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Хорошо, я объясню зачем нужен этот запрос. Если кратко, то он реализует алгоритм FIFO то есть по количеству товара в заказе и позициям, ищет нужные партии с которых он спишет этот товар (само с собой на вход я ему даю весь заказ (например 150 позиций разных товаров, а на выход получаю >= 150 строк (потому, что если партия заканчиваться, то ищется следующая партия и так пока вся позиция не спишется))) которые нужно update . На процедурном языке реализация занимает намного больше строк чем на sql. То есть эта штука не отчет и не аналитика, а часть бизнес-логики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 08:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballeroПоверьте мне как разработчику тоже своей erp (убийцо 1C :) ) - в таких проектах логика должна быть сосредоточена в одном месте, условно называемом сервером приложений. Вообще большинство энтерпрайз решений так и построены - БД это плоское хранилище для того чтобы быстро положить и взять данные. Нет принципиальной разницы, логика на аппрервере или клиенте. Аппрервер это толстный клиент, кот. отдает записи тонкому клиенту. Глупо по сабжу ссылаться на энтерпрайз решения. Зачастую именно они - решения 30-й давности. "старики на стероидах" (с). Там логика вне сервсера - только ради кроссплатформенности и удлинения жизненного цикла. Тем более большинство энтерпрайза пришли еще с файл-сервера и в полной мере сохранили черты именно файл-сервера. Для обработки данных (парсинг картинок и тхт не обсуждаем) нет ничего лучше родного языка БД. Поэтому львиная доля б/л должна быть в БД, ИМХО. Правда жертвовать придется кроссплатформенностью. :( зы: как вспомню мегапортянки спагетти-кода C/AL или 1С - дурно становится. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 09:33 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторПравда жертвовать придется кроссплатформенностью Интересно, а "большой энтерпрайз" часто ездит между СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 09:41 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixавторПравда жертвовать придется кроссплатформенностью Интересно, а "большой энтерпрайз" часто ездит между СУБД?За 30 лет много разных БД поменялось. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:11 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixавторПравда жертвовать придется кроссплатформенностью Интересно, а "большой энтерпрайз" часто ездит между СУБД? Я думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью То есть если например я разрабатываю продукт для бизнеса, то было бы отлично, если мои клиенты (то есть бизнес) могли бы выбирать себе СУБД какую хотели. То есть дело не в переезжании, а в предоставлении выбора СУБД при разработке продукта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:12 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel,Я думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью Для небольших коллективов поддержание кратковременности по СУБД - банально дорого. И ненужно. Глубокое имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:43 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelЯ думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью То есть если например я разрабатываю продукт для бизнеса, то было бы отлично, если мои клиенты (то есть бизнес) могли бы выбирать себе СУБД какую хотели. То есть дело не в переезжании, а в предоставлении выбора СУБД при разработке продукта.Но предоставляя кросс/п. теряется оптимальность в работе с данными. Мягко говоря. Приведу простой пример на примере Навижена: Допустим Вам надо увеличить на единичку значение поля в тыще записей . Навижн делает (на толстом клиенте) : Ставит фильтр на таблицу (получить тыщу записей) Зачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... Трафик просто бешенный. Пример крайне примитивный, т.к. обычно нужно проделать подчитку еще с неск. таблиц (н-р отчет или обработка). Для миллиона записей процесс может затянуться на всю ночь. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
LSVKimelЯ думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью То есть если например я разрабатываю продукт для бизнеса, то было бы отлично, если мои клиенты (то есть бизнес) могли бы выбирать себе СУБД какую хотели. То есть дело не в переезжании, а в предоставлении выбора СУБД при разработке продукта.Но предоставляя кросс/п. теряется оптимальность в работе с данными. Мягко говоря. Приведу простой пример на примере Навижена: Допустим Вам надо увеличить на единичку значение поля в тыще записей . Навижн делает (на толстом клиенте) : Ставит фильтр на таблицу (получить тыщу записей) Зачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... Трафик просто бешенный. Пример крайне примитивный, т.к. обычно нужно проделать подчитку еще с неск. таблиц (н-р отчет или обработка). Для миллиона записей процесс может затянуться на всю ночь. :) Разве эту проблему куммулятивные запросы не решают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:03 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelРазве эту проблему куммулятивные запросы не решают?Что такое КЗ ? Сторонний запрос/ХП ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:34 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
LSV, Это когда запросы типа как вы сказали: авторЗачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... это накапливается в течении например 200мс, а потом идёт одним целым запросом, а не тысячей. Такое умеют делать многие orm, ну и postgre нативно такое делает (в конфиге настраиваться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:40 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulОпять же повторю ХП-это костыль ХП - это средство расширения функциональных возможностей СУБД, вплоть до наличия в БД встроенного сервера приложений (PL/SQL-машина в Oracle), а костыль - у вас из головы торчит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:56 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Ну это вопрос очень сложный. От многого зависит. Например, от общей архитектуры системы. Взять 1С -- у неё есть внутренний язык, бизнеслогика на нём, и внутрь БД (в виде голых процедур) это всё не запихать в принципе. Также плохо переносить внутрь БД БЛ, если предусматривается несколько возможных к использованию СУБД. Можно привести также доводы за БЛ в БД: просто писать, мощный язык для программирования, данные близко -- повышается производительность за счёт того, что нет раундтрипов клиент-БД-клиент. Но минусы -- сложность взаимодействия из БД с другими компонентами системы (если они есть) - бд в таком случае должна быть финальным тупиковым пассивным компонентом системы, в неё можно войти потоком управления, а выйти уже нельзя -- только отдать результаты работы. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Скрещивать ORM с Бл в БД будет достаточно трудно из-за кэшей ORM-а. Они будут все время тебе мешать -- надо будет завершать транзакции только для того, чтобы данные попали в БД. Я бы делать такое не стал. Либо всё в БД, включая CRUD (его код можно и нужно сгенерировать), либо ORM и БЛ на среднем слое. Но я сам не пробовал так, возможно, не всё так плохо как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:02 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelLSV, Это когда запросы типа как вы сказали: авторЗачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... это накапливается в течении например 200мс, а потом идёт одним целым запросом, а не тысячей. Такое умеют делать многие orm, ну и postgre нативно такое делает (в конфиге настраиваться)А в реале достаточно одного простого update. Без всей перечисленной лабуды. И трафик будет - меньше некуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:04 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballeroKimel, логика в Бд - решения тридцатилетней давности. Разве что какой нибудь аудит там внутри можно на триггерах делать. Это досужие домыслы. Логика в БД -- это надёжно, просто и мощно. И как следствие гибко. Если весь мир ударился в моду многозвенок (что, кстати, вовсе не исключает логику в БД), это ещё не значит, что это хорошо. Завтра будет мода ходить без штанов -- мне прикажете тоже штаны снимать ? Нет уж. caballeroПоверьте мне как разработчику тоже своей erp (убийцо 1C :) ) - в таких проектах логика должна быть сосредоточена в одном месте, условно называемом сервером приложений. Вообще большинство энтерпрайз решений так и построены - БД это плоское хранилище для того чтобы быстро положить и взять данные. Это вызвано тем, что им необходимо использовать разные СУБД, а это практически однозначно требует переноса БЛ из БД. Но такое требование не всегда существует, можно радостно жить на одной СУБД, и горя не знать. Oracle, MSSQL или Postgres -- выбираешь одно из них, и живёшь с ним всю жизнь. Как жену выбирают раз и на всю жизнь. Но надо естественно тщательно выбирать. С логикой вне БД также много проблем. Это сложный, мелкий код, потому что язык как правило тупой и немощный, типа Java, либо необходимость писать и поддерживать свой высокоуровневый 4gl язык. Из сложного и громоздкого кода следует его большая сложность поддерки и как следствие негибкость всей системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:10 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulKimelЯ занимаюсь разработкой небольшой erp под определенные нужды (не убийца 1С). Разработчик я не очень опытный поэтому хотел бы поинтересоваться у профессионалов: Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Возможно я что-то забыл упомянуть, надеюсь вы меня поправите. РМД это сильно ограниченная модель. Поэтому были "придуманы" процедурные расширения (например TSQL, plsql), чтобы обойти ее ограничения. Выбирая перенос логики в БД вы привязываетесь к вендору СУБД. "Промежуточные" варианты не живучи, т.к. нужны специалисты которые хорошо знают и ЯП, и язык ХП конкретной СУБД. В конце, концов "остаться должен только один" и обычно это программист БД. Так что если остановитесь на БЛ в ХП, то сразу пишите REST-сервисы в БД. Лично я бы рекомендовал в СУБД хранить только данные. Причем без всяких ХП. Только голый SQL. А всю БЛ писать на удобном для вас ЯП. ORM так же бы не рекомендовал использовать (Точнее не пытатся ч\з ORM хранить объекты). Все равно придется писать слой, который будет перекладывать сущности в необходимые объекты. А хранение объектов в БД, приведет к тому, что придется писать ХП. И БЛ "размажется" м/у сервером приложений и БД. Что плохо скажется на сопровождаемости проекта. P.S. А так, решайте сами. Вы должны сами наступить на все грабли, чтобы понять, какие грабли для вас предпочтительнее. :-) Ну дальше тоже пошли фантазии на вольную тему. ТС, читай сквозь пальцы, думай сам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:12 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelИ выходит, что даже если я буду подобные запросы хранить в модели в виде raw sql, то я всё равно получаю привязку к вендорам, так как нужно этот raw sql писать под каждую базу. Мне не понятно, как и где хранить сложные запросы? Ну решение хранить сложные запросы на среднем слое тоже вполне себе нормальное, ORM предоставляют возможности делать это в виде ресурсных файлов под каждую СУБД. Но я бы просто написал бы код на XXXSQL соотв. СУБД и клал бы его в скрипт инициализации БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:14 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39030460&tid=1540490]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 515ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...