LINUX.ORG.RU

Его крокейшество о вредности СУБД, если архитектурно она для программ, а не живого человека

 ,


0

4

Давно уже что-то про Столярова Croco ничего не было =) А тут он повод недавно дал, расписав почему считает недопустимым использовать СУБД в архитектуре при проектировании софта. То есть, если для каких-то программ нужно хранение данных, его надо индивидуально под программу делать, а не подключать базы данных.

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

http://www.stolyarov.info/guestbook#cmt97

==============

Я придерживаюсь принципа несколько более узкого: недопустимо создание, распространение и использовние программ, для работы которых требуется СУБД.

Причины можно назвать, например, такие:

  1. СУБД — это лишняя внешняя зависимость, при том что вообще любые внешние зависимости суть хамство в отношении пользователей и мейнтейнеров;
  2. СУБД требует трудозатрат на установку, настройку и дальнейшее администрирование;
  3. СУБД способна упасть (и да, падает намного чаще, чем, скажем, тот же апач — вообще пока мои сайты жили на «традиционной» CMSке, именно СУБД была причиной всех случаев downtime моих сайтов, за исключением одного, когда на сервере физически осыпался жёсткий диск);
  4. СУБД требует от пользователя постоянно обновлять навыки, которые, возможно, больше ни для чего не нужны;
  5. СУБД хранит информацию пользователя в неочевидном для него виде; этим грешат не только СУБД, конечно, но СУБД мало того что хранят всё в бинарных файлах, которые без самой СУБД даже думать нечего разобрать, они ещё и вводят дополнительный слой хаотизации в виде схемы БД, провоцируя разработчиков софта на внедрение «решений», единственное «описание» которых остаётся в голове у автора;
  6. СУБД требует изрядных вычислительных мощностей и крадёт (а вовсе не повышает, как почему-то многие уверены) производительность.

Я, заметим, не рискну утверждать, что СУБД как сущность вообще никогда не может ни для чего применяться. Тут вопрос в том, кто на ком стоял: если главной целью является база данных как таковая, то есть вот имеется какой-то значительный объём разнородной, но при этом взаимосвязанной информации и стоит задача обеспечить его хранение и в нём поиск, причём никто заранее не знает, какие именно задачи будут решаться на этом массиве информации, какие именно поисковые запросы будут делаться и вот это вот всё, то да, СУБД вполне может оказаться адекватным решением, и даже для работы с ней могут создаваться вспомогательные программки. Это, конечно, не оправдывает существования языка SQL, который в любых его проявлениях представляет собой надругательство над здравым смыслом, но в целом СУБД как вид софта существовать, наверное, всё-таки может — но лишь в случаях, когда либо вообще нет никаких программ кроме неё самой, либо программы делаются для неё, а не она сама поддерживается для работы какой-то программы.

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

Когда же пишется некая программа, предполагающая применение для конкретных задач (а программы иначе, собственно, и не пишутся), и данные возникают исходя из этих задач, а не наоборот, то за саму идею задействования внешней СУБД нужно убивать на месте. Сугубо из санитарных соображений.

★★★★★
Ответ на: комментарий от hobbit

А как себя ведут с организацией процессов актуальные в 2025 году веб-сервера? На каждое соединение отдельный процесс создают?

Обычный сайт, средней руки, поднятый на nginx или Apache, как себя ведёт?

Вроде, nginx автор написал именно чтобы не создавать процесс на каждое подключение, как Апач. Хотя с тех пор что-то могло измениться.

olegd ★★★
()
Ответ на: комментарий от olegd

Кассовые аппараты с фискальной лентой или электронным аналогом там есть.

Скорее всего здесь ещё важно, какой статус при регистрации предприятия был выбран (точно не знаю).

anonymous
()
Ответ на: комментарий от Iron_Bug

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

По поводу лишних людей и лишней работы… В той же Индии всюду ручной труд. Едешь по дорогам, и видишь: дороги строятся вручную. Нагоняются сотни людей, и они работают кайлами, кирками, кувалдами, лопатами. Точно так же, почти без техники ставятся ЛЭП. Облепляют, как муравьи, и вручную ставят.

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

Chiffchaff
()
Ответ на: комментарий от olegd

ассовые аппараты с фискальной лентой или электронным аналогом там есть. Скорее всего, есть и бухгалтерия.

Последние года с закондательством по предоставлении обязательной отчётности и данных необходимых для аудита не знакомился.

Неужели для общепита нужен такой скрупулёзный бух учёт?

anonymous
()
Ответ на: комментарий от Iron_Bug

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

Имхо, когда он общался со студентами, перлов было меньше. Крыша едет от одиночества.

Либо я не замечал обсуждения тех перлов.

olegd ★★★
()
Ответ на: комментарий от anonymous

Неужели для общепита нужен такой скрупулёзный бух учёт?

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

olegd ★★★
()
Ответ на: комментарий от frunobulax

Вроде бы обратное читал - если до late-20s не манифестировала, то скорее всего пронесло. У пенсионеров тама деменция всяческая да альцгеймер)

Читал примерно то же. Шизофрения обычно до 30, а за 45 начинается – не помню точный термин, созвучно с паранойей и похоже на неё по симптомам. Настолько распространено, что не привлекает особого внимания врачей.

olegd ★★★
()
Ответ на: комментарий от olegd

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

Про туалеты, то шутка была.
Вопрос об учёте о котором @monk вопрос сформулировал по эффективности использования SQL для получения аналитики.

anonymous
()
Ответ на: комментарий от Chiffchaff

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

Электронная копия на внешнем носителе, подписанная ЭП, гораздо лучше. Особенно относительно «поменять задним числом». Сколько раз бумаги задним числом правили, не счесть. А подписанное ЭП без владельца ЭП уже никак не поменять.

monk ★★★★★
()
Ответ на: комментарий от monk

Так там и написано, что к затратам мясо можно принять только после его оплаты. А для этого надо знать, какая партия оплачена, а какая нет.

Там русским языком написано, что оплачены поставленное сырье и материалы - принял в составе расходов по УСН (д-р) и неважна ни партия, ни израсходовали ли это мясо на котлету, ни продали ли эту котлету, ни хранение этой продукции.

https://normativ.kontur.ru/document?moduleId=8&documentId=252198

Читай буквы «независимо от факта их списания в производство», поэтому твои «На котлету ушло 100 грамм мяса» совершенно не важны.

One ★★★★★
()
Последнее исправление: One (всего исправлений: 2)
Ответ на: комментарий от monk

Прекращай фантазировать, со сферическим конем в вакууме, мало что требования при реализации готовых блюд и товарной продукции отличаются настолько сильно, что ситуация смешения возможна лишь в «бистро у Ашота» (привет Меркурию), так и даже для таких фантазеров есть раздел метода оценки/учета покупных товаров, категорически исключающий твой онанизм с «100 грамм в котлету».

One ★★★★★
()
Последнее исправление: One (всего исправлений: 2)
Ответ на: комментарий от monk

Интересно взглянуть на документ согласно которого бухгалтер вводит данные об произведенной операции.
ИМХО как эти повара успевают строчить эти документы?
Им же готовить нужно?

anonymous
()
Ответ на: комментарий от anonymous

Вопрос об учёте о котором @monk вопрос сформулировал по эффективности использования SQL для получения аналитики.

Если ты владеешь одной передвижной туалетной будкой, тебе аналитика не нужна. Если у тебя сеть туалетов, это уже серьёзное предприятие, и аналитика пригодится.

olegd ★★★
()
Ответ на: комментарий от olegd

Если ты владеешь одной передвижной туалетной будкой, тебе аналитика не нужна. Если у тебя сеть туалетов, это уже серьёзное предприятие, и аналитика пригодится.

Let it be.
А по эффективности SQL для получения аналитики?

anonymous
()
Ответ на: комментарий от rtxtxtrx

https://habr.com/ru/news/934612/

Во-первых, закрыли. Во-вторых, это была организация из 1 человека, который этим занимался с конца Перестройки. Это было неосновным его занятием, основное – по профилю биофака.

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

olegd ★★★
()
Ответ на: комментарий от anonymous

А по эффективности SQL для получения аналитики?

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

Думаю, сгодилась бы и не-SQL база. И даже парсер текста. Но парсер надо писать, а SQLite и PostgreSQL уже есть готовые, и надо только договориться, как втискивать логи в их рамки. Что для кого-то «прокрустово ложе», помогло нам систематизировать и классифицировать записи в логах.

olegd ★★★
()
Ответ на: комментарий от eao197

Я его знаю только по поводу бреда в адрес C++

У него ещё есть «многопоточность не нужна»:

http://stolyarov.info/guestbook/archive/6/#comment-6182

http://stolyarov.info/guestbook/archive/10/#cmt627

А также «комитет C++ — международные террористы, их нужно расстрелять или утопить в бочках с дерьмом» (ссылку сейчас не найду).

shdown
()

нехочу тебе клоуна, или столярову ставить, базы данных когда не надо - ненадо использовать, а надо так используй, sqllite сейчас почти везде исползуется, понятно она не внешняя, но если надо нескольким процессам или программам иметь дело с данными, то внешняя самое то. Вашь тезис это синоним не надо пользоватся файловой системой, читайте на прямую блочные устройства. И да, мои выводы-практика и проекты на базах данных ключь-значение или noSql при переводе на pgsql и sqllite резко в производительности выигрывают, замечание: эти проекты дилетантами написаны и причина в неопытности авторов частично кроется, но всёравно традиционная база данных исправляет ситуацию с неопытностью.

s-warus ★★★★
()
Ответ на: комментарий от monk

Спасибо!

Мало что знаю о цикле производства в общепите.
Если склад и кладовщик есть, тогда понятно приблизительно откуда у бухгалтера данные об операциях …

anonymous
()
Ответ на: комментарий от olegd

Хотя бы увидеть грамотное опровержение тезисов компетентными людьми.

На работу устроишься — сам поймёшь. А нет — так и не надо. Столяров ведь абсолютно прав, только это правота сферического академического коня в вакууме. Есть тенюра, есть гранты — пили своё уникальное изделие до старости, чем уникальнее, тем удобнее публикации делать. Аспиранты, если что, парни неглупые, подтянутся, разберутся. Время есть. К продуктовой разработке это, конечно, не имеет никакого отношения. Да и Бог с ней.

ugoday ★★★★★
()
Ответ на: комментарий от shdown

У него ещё есть «многопоточность не нужна»:

Точнее сказать, он для многопоточности видит только один вариант ее использования: для GUI. В остальных случаях или достаточно процессов или правильно будет программировать не многопоточность, а машину состояний.

В принципе, может и прав даже. Корректно реализовать многопоточность непросто, лажают тут часто.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от s-warus

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

Между прочим, в некоторых случаях так и поступают, убирая весь оверхед работы с файловой системой. В частности, как раз в СУБД. Давным-давно имел дело с Oracle - там есть опция развертывания на раздел диска.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

для браузерного sqlite отдельное блочное устройство? и да заметь это делается если на данном сервере и диске ничего другого нет, а если нужно делить диск с кем то ещё, без fs не обойтись.

s-warus ★★★★
()
Ответ на: комментарий от praseodim

если нужен запредельный - настоящий rt, то одна задача один микроконтроллер, ос начинает мешать, или что ещё лучше механический диффрегулятор.

s-warus ★★★★
()
Последнее исправление: s-warus (всего исправлений: 1)
Ответ на: комментарий от Qui-Gon

Тут расшифромали какой-то древний склад чуть ли не глиняных табличек и вместо древнего знания открыли кучу доносов, бухгалтерских по сути записей и долговых расписок….

а ты удивлён? я нет. я изучала древние языки, чтобы «понять мудрость древних». и тут-то и оказалось, что никакой «мудрости» там особо и не было. в основном, культ огнепоклонничества с его странными заморочками, своды тогдашних законов, практических советов, как разводить каких-нибудь коз, и прочих бытовых советов. но я не отчаиваюсь и учу латынь. на латынь перевели много философских трудо и там точно есть что-то кроме огнепоклонничества и коз.

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от monk

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

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

так что меня больше интересуют переводы древних греческих философов от Цицерона и прочее такое.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

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

Компьютер же сводит. Лучше, когда детализация есть и компьютер её может просуммировать, чем когда её нет и ни себестоимости ни, часто, даже остатков не получить (потому что агрегировали в «на складе товара на 1545645 рублей»).

это было бы безумием. хотя кладовщик, конечно, сделает у себя записи.

Так безумием или сделает записи?

monk ★★★★★
()
Ответ на: комментарий от Iron_Bug

а ты посиди, позаводи эти проводки сам. и быстро поймёшь, в чём суть. ты просто теоретик, который ничего не понимает в бухгалтерии.

Так их компьютер формирует же. В своей организации я их и завожу, но у меня услуги, материального учёта практически нет.

monk ★★★★★
()

Тред полностью не читал, но ммм… Есть такая штука как файловая система… Которая де-факто тоже является СУБД. Причем этих файловых систем видов выше крыши. А на некоторых машинах даже в пределах одной системы их полно…

За использование этого тоже убивать нужно?

saibogo ★★★★
()
Ответ на: комментарий от Iron_Bug

И не только Александрийскую. Просто она самая известная. Ее кстати тоже не за один раз уничтожили. Вообще если представить, то от античности до нас дошли какие-то ошметки книг.

И не только от античности. Среди историков в общем-то известно, что у славян была докириллическая письменность, но мейнстримно-официально принято считать, что ее принесли Кирилл с Мефодием, а до них это были неграмотные чуть ли не полузвери и точка. Есть рассказы, что в 1980-х годах на острове Рюген в балтийском море были обнаружены в большом количестве деревянные таблички со славянской докириллической письменностью и они были уничтожены.

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от monk

В своей организации я их и завожу, но у меня услуги, материального учёта практически нет.

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от saibogo

Там же перечислены недостатки СУБД. Если вдруг программа захочет таскать с собой свою файловую систему, тогда будет относится.

Если где-то СУБД часть ОС, то программам можно её использовать, так как перечисленных недостатков нет.

monk ★★★★★
()
Ответ на: комментарий от Iron_Bug

Я обслуживаю 1С в разных организациях. В том числе в кондитерском производстве и общепите, где как раз вот такой микро-учёт (1С:УПП на производстве и 1С:Общепит в общепите). Никто никуда от своих начальников не сбежал.

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

В другой организации (торговой) детализация по ячейкам на складе и заказам. И отражение производством наклеивания логотипа (списали логотип и товар, оприходовали товар с логотипом).

monk ★★★★★
()