Re[11]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 09.02.21 19:40
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Цитирую
Автор: IncremenTop
Дата: 05.02.21
:

V>"IT>Как ты будешь писать юнит-тесты?"

"Молча подключишь ci/cd к автотестам на свои хранимки?"
Re[8]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 09.02.21 19:45
Оценка:
Здравствуйте, _ABC_, Вы писали:

_AB>Э-э-э... Угу. MS SQL Server + SSDT + SQL Server Unit Tests + Azure Devops. Делал самолично, проблем особых не обнаружил.

_AB>Инструменты есть.

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

_AB>В чём конкретно? В работе с данными не уступают.


Бизнес-логика — это тоже по сути работа с данными.

_AB>Ты тему своего топика видел вообще?


Видел. Это была затравка к архитекторам из ада.
Re[8]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 09.02.21 19:47
Оценка: :)
Здравствуйте, _ABC_, Вы писали:

_AB>А монструозных методов и функций, пытающихся решить все проблемы одним вызовом, ты не наблюдал разве?


Это отсекается на код-ревью, да и в принципе сейчас даже студия экспресс поддерживает парное кодирование.
Чтобы аналогичное сделать для кода на sql — уже надо извращаться.
Re[13]: Зачем реляционные БД...в небольших проектах?
От: Gt_  
Дата: 09.02.21 20:11
Оценка:
IT>Если ты не используешь миграции монги и валидаторы схемы, которые есть, а вместо этого предпочитаешь писать кучу if-в, так это ССЗБ.

и ради чего этот анонизм с миграциями ? транзакции тормозят, чуть сложнее запросы — сливает даже mysql, мягко говоря не чемпиону в плане разумности оптимизатора.


IT>https://speakerdeck.com/dotnetru/nikolai-molchanov-i-dmitrii-ielisieiev-bitva-sql-vs-documentdb?slide=79


IT>Но странно, что приходится доказывать даже такое, хотя даже исходя из структурных связей — монга должна быть быстрее.


достать по ключу, да, монга выиграет. там где нет бизнес логики имеет смысл, лайки считать форумы, но чем сложнее логика тем хуже перформит. в бигдате монги нет от слова совсем, а массивно параллельный postgres (greenplum) присутствует. потому в ентерпрайзе тучи массивно параллельных nosql баз, но не монга.

Gt_
Re[9]: Зачем реляционные БД...в небольших проектах?
От: _ABC_  
Дата: 09.02.21 20:16
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Сейчас налетят фанаты TDD с убийственным аргументом "это не юнит-тесты, так как они изменяют базу"

Ну да, ты прав.
Изменяют базу, которая создается с нуля специально под раунд тестирования.
С логической точки зрения мало чем отличается от оперативной памяти, но религиозное нарушение есть, конечно.
Re[9]: Зачем реляционные БД...в небольших проектах?
От: _ABC_  
Дата: 09.02.21 20:30
Оценка:
Здравствуйте, IncremenTop, Вы писали:

IT>Я в курсе аналогичного стека для постгре, думаю, что вполне есть аналогичные мучения и для других, но это все монструозно и уныло.

Э-э-э... Да вообще нет особой разницы с тестами другого кода, вроде как?

IT>Все это трудноподдерживаемо в принципе

В чём разница с автотестированием, допустим, проекта на .Net Core?

IT>(если, кстати, нет подписки azure, то, видимо, собственный костыль)

Я работаю со своим стеком, поэтому не особо смотрю, что там по сторонам.
Но, насколько помню, SSDT бесплатны, сам фреймворк юнит тестов идёт вместе с ним. Насколько помню, реализация идёт через стандартный mstest.
А уж как к конкретной реализации пайплайна привязать вызов mstest.exe — это пусть девопсы по месту решают.

IT>Бизнес-логика — это тоже по сути работа с данными.

А еще всё вместе по сути работа с ноликами и единичками.

IT>Видел. Это была затравка к архитекторам из ада.

Т.е., заголовок твоей темы не соответствует содержанию твоей головы?
Ты бы так сразу и сказал, что хочешь обсудить кашу в своей голове, я бы время не тратил.
Re[9]: Зачем реляционные БД...в небольших проектах?
От: _ABC_  
Дата: 09.02.21 20:32
Оценка: +2
Здравствуйте, IncremenTop, Вы писали:

IT>Это отсекается на код-ревью, да и в принципе сейчас даже студия экспресс поддерживает парное кодирование.

И что мешает делать код-ревью для SQL?

IT>Чтобы аналогичное сделать для кода на sql — уже надо извращаться.

Почему? Работа идет в той же самой студии, в том же самом гите, можно создавать точно так же пул реквесты, запросы на код ревью и т.д. В чём разница-то?
Re[14]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 09.02.21 20:39
Оценка:
Здравствуйте, Gt_, Вы писали:

Gt_>и ради чего этот анонизм с миграциями ? транзакции тормозят, чуть сложнее запросы — сливает даже mysql, мягко говоря не чемпиону в плане разумности оптимизатора.


Ты точно смотрел ссылку, говоря про тормоза?

Gt_>достать по ключу, да, монга выиграет. там где нет бизнес логики имеет смысл, лайки считать форумы, но чем сложнее логика тем хуже перформит. в бигдате монги нет от слова совсем, а массивно параллельный postgres (greenplum) присутствует. потому в ентерпрайзе тучи массивно параллельных nosql баз, но не монга.


Миллионы мух не могут ошибаться, да.

Хотя я не писал хранимки в монге, так что может быть с точки зрения ХП ты и прав.
Re[13]: Зачем реляционные БД...в небольших проектах?
От: TG  
Дата: 10.02.21 04:29
Оценка:
Здравствуйте, Gt_, Вы писали:

S>>Нет, не больше. В РБД я поменяю схему, и буду вынужден 1 (один) раз подумать над тем, как трансформировать существующие данные в новую схему. Накат миграционных скриптов можно протестировать, отпрофилировать, и сделать частью инсталлятора новой версии кода.

Gt_>у рдбмс как раз не меняется схема таблиц, добавляется новая табличка сборник со ссылками на книги. ничего никуда мигрировать не надо.

А как тогда узнать в какой сборник попадает конкретная книга? Фулскан таблички со сборниками?
Re[3]: Зачем реляционные БД...в небольших проектах?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 10.02.21 05:32
Оценка:
Здравствуйте, IncremenTop, Вы писали:

IT>За распределенный монолит надо увольнять из профессии, а тут еще хуже — распределенный монолит с хранимками. Франкенштейн собственной персоной.


Та картинка у меня не загрузилась, так что могу лишь предположить, что речь про набор микросервисов, обращающихся к одной и той же базе данных.
Такое получается вполне естественным образом как промежуточный этап на пути перехода от монолита к микросервисам. Т.е. может вы просто поймали это на том этапе, когда API уже разнесли по разным сервисам, но доступ к данным у разных сервисов пока ещё частично пересекается.
С уважением, Artem Korneev.
Re[7]: Зачем реляционные БД...в небольших проектах?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 10.02.21 06:16
Оценка:
Здравствуйте, IncremenTop, Вы писали:

IT>Молча подключишь ci/cd к автотестам на свои хранимки?


Можно. Ну или гонять это с in-memory вариантами баз. Смотря что именно тестируем.

IT>Сложность в том, что диалекты SQL уступают любому современному языку на бэке, даже б-мерзкому джаваскрипту.


На практике никогда не видел чтоб это было проблемой. Все эти переезды с одного движка SQL на другой обычно чисто теоретические, чаще бывает, что какую базу выбрали в самом начале проекта, на той базе проект и живёт всю оставшуюся жизнь.
В тех редких случаях, когда переезд всё-таки случается, код работы с базой можно просмотреть и переписать. Да, это занимает какое-то время, но это сравнительно простая задача. И да, это должны делать люди, хорошо разбирающиеся в SQL'е, даже если там и нет хранимых процедур. Обычно куда больше трудностей с продумыванием самого процесса миграции, чем с диалектами SQL'я.

IT>В том, что все трудно тестируемо,


Да нормально там всё тестируется.

IT>еще тяжелее это сопровождать — любой pgAdmin уступает даже старому jdeveloper-у.


У SQL всё нормально с инструментарием.

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

_AB>>В том, что конкретно ты не знаешь sql?

IT>В коде хранимок не он, а его диалект. Причем логика в процедурном стиле.

Это всегда диалект. И это не проблема само по себе.
Но, повторюсь, без большой необходимости я б хранимые процедуры в проект не тащил бы.
С уважением, Artem Korneev.
Re[14]: Зачем реляционные БД...в небольших проектах?
От: Gt_  
Дата: 10.02.21 07:33
Оценка:
S>>>Нет, не больше. В РБД я поменяю схему, и буду вынужден 1 (один) раз подумать над тем, как трансформировать существующие данные в новую схему. Накат миграционных скриптов можно протестировать, отпрофилировать, и сделать частью инсталлятора новой версии кода.
Gt_>>у рдбмс как раз не меняется схема таблиц, добавляется новая табличка сборник со ссылками на книги. ничего никуда мигрировать не надо.

TG>А как тогда узнать в какой сборник попадает конкретная книга? Фулскан таблички со сборниками?


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

Gt_
Отредактировано 10.02.2021 7:35 Gt_ . Предыдущая версия .
Re[15]: Зачем реляционные БД...в небольших проектах?
От: fmiracle  
Дата: 10.02.21 07:35
Оценка: +4
Здравствуйте, IncremenTop, Вы писали:

IT>Хотя я не писал хранимки в монге, так что может быть с точки зрения ХП ты и прав.


У тебя какая-то зацикленность на хранимках. Масса проектов пишется где все общение с РСУБД главным образом идет через запросы из кода. А хранимок нет вообще или отдельные узкие места, где они дают серьезный эффект по производительности.
Re[15]: Зачем реляционные БД...в небольших проектах?
От: Gt_  
Дата: 10.02.21 07:43
Оценка:
Gt_>>и ради чего этот анонизм с миграциями ? транзакции тормозят, чуть сложнее запросы — сливает даже mysql, мягко говоря не чемпиону в плане разумности оптимизатора.

IT>Ты точно смотрел ссылку, говоря про тормоза?


открыл но я не воспринимаю технический текст на русском, как я понял там два тормоза не видевших ничего сложнее блога.
попробуй реализовать бизнес логику сложнее лайков в вебе и поймешь почему монги нет в ентерпрайзе.
Re[16]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 10.02.21 08:39
Оценка:
Здравствуйте, Gt_, Вы писали:

Gt_>открыл но я не воспринимаю технический текст на русском, как я понял там два тормоза не видевших ничего сложнее блога.


А я плохо воспринимаю балобольство без аргументов от человека, который не смог даже загуглить, кем являются докладчики.
Re[17]: Зачем реляционные БД...в небольших проектах?
От: mogadanez Чехия  
Дата: 10.02.21 10:01
Оценка: +1 -1
Здравствуйте, IncremenTop, Вы писали:

IT>А я плохо воспринимаю балобольство без аргументов от человека, который не смог даже загуглить, кем являются докладчики.


первый хреново гуглится https://i.imgur.com/utvSlI6.png

сайт второго не впечатлил
https://elisdn.ru/blog/140/php-frameworks-for-enterprise
"Фреймворки и инструменты PHP для Enterprise" — серьезный уровень, да...
Re[17]: Зачем реляционные БД...в небольших проектах?
От: Gt_  
Дата: 10.02.21 10:26
Оценка: -1
Gt_>>открыл но я не воспринимаю технический текст на русском, как я понял там два тормоза не видевших ничего сложнее блога.

IT>А я плохо воспринимаю балобольство без аргументов от человека, который не смог даже загуглить, кем являются докладчики.


серьезные спецы
https://elisdn.ru/portfolio
https://career.habr.com/kroniak

но дело не в опыте, а в сравнении на табличке блога с комментами ...
Re[18]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 10.02.21 10:46
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>первый хреново гуглится https://i.imgur.com/utvSlI6.png


Один из JetBrains занимается rnd по БД.
Второй работал в питерском альфабанке техлидом или техдиром.


M>"Фреймворки и инструменты PHP для Enterprise" — серьезный уровень, да...


Это не он. Серьезный у тебя уровень анализа — даже на лицо взглянуть не в состоянии.
Отредактировано 10.02.2021 11:07 IncremenTop . Предыдущая версия .
Re[18]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 10.02.21 10:48
Оценка: -1
Здравствуйте, Gt_, Вы писали:

Gt_>серьезные спецы

Gt_>https://elisdn.ru/portfolio
Gt_>https://career.habr.com/kroniak

Серьезный у тебя анализ на основе профиля на хабре и однофамильца.

Да, один из альфы, другой из джетбрейнс. А ты у нас кто будешь?

Gt_>но дело не в опыте, а в сравнении на табличке блога с комментами ...


У тебя есть другой пример? Или только однофамильцы?
Отредактировано 10.02.2021 10:55 IncremenTop . Предыдущая версия .
Re[16]: Зачем реляционные БД...в небольших проектах?
От: IncremenTop  
Дата: 10.02.21 10:51
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>У тебя какая-то зацикленность на хранимках. Масса проектов пишется где все общение с РСУБД главным образом идет через запросы из кода. А хранимок нет вообще или отдельные узкие места, где они дают серьезный эффект по производительности.


Почему-то вангую, что лютая доля проектов с хранимками, причем хранимками всемогуторами.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.