LINUX.ORG.RU

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

 ,


0

4

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

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

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

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

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

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

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

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

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

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

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

Я не постоянно присутствую - захожу раз в 2-4 недели. И вижу, какое тут разложение…

10 лет назад на ЛОРе были баталии, словесный мордобой. Веселуха. И очень мало было всяких вендовозов и прочих ламеров. А сейчас прямо грустно смотреть: прямо филиал винфака!

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

Я впервые слышу от тебя эти сочетания букв. Не пользуются вообще.

Спектры, снимки, таблицы и т.п. хранятся в FITS-формате. Он сильно устарел, но пока ничего адекватного на смену не придумали.

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

P.S. Если что хочешь спросить - заходи ко мне в ЖЖшку и в «личке» спрашивай, или где-нибудь под моим постом пиши вопрос.

Или на e-mail пиши: у нас на сайте обсерватории узнаешь.

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

Приятно, что ты еще отсюда не убежала. Адептов С не так много осталось, к сожалению. Всякие жабоскриптчики и питонисты массой давят (хотя толку от них ниже плинтуса).

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

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

Не поверите… Но, слава богу, мои не на Госзнаке печатают, да и нал здесь уже практически не в ходу лет N-дцать как.

LTE у местного провайдера

LTE как технология - не отечественная разработка. Подозреваю что речь о билинге.

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

Так вот откуда столько гонора! Угу, всё потихоньку становится на свои места. Заявка сильная конечно, но не козырная. Не хотел, но спрошу: и давно вы свой первый миллион (не фантиков конечно) заработали? И, как там - «а почему ты такой бедный если такой умный»?

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

А вот это - пять! Вы настолько сильно уверены в своей недостижимой элитарности что это вызывает только сочувственную улыбку. Это пройдёт, может быть…

а если вы не можете освоить многопоточность

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

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

Какие ещё могут быть аргументы если вы отрицаете столь очевидную вещь что писать многопоток сложнЕЕ чем однопоток? Это настолько же очевидно как «управлять самолётом сложнее чем велосипедом».

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

Приятно, что ты еще отсюда не убежала.

Серьёзно? Мадам тут потихонькурезво травит ядами, да ищет как бы человечинки пожрать.

Адептов С не так много осталось, к сожалению

Может быть, но она-то тут при чём? Не знает она Cи, одни понты бесконечные.

anonymous
()

вообще говоря СУБД как сущность (библиотеки/сервисы/серверы/облака) она от убогости технологических средств и их «невыразительности».

В недостижимом предельном идеале, приклад должен работать со всеми возможными данными как со своими родными локальными. И в максимально ясном виде.

Идеал не достигнут, потому RDBMS, гиперкубы, map-reduce. Каждый из них неплох и офигенен, но неидеален.

Все живём к конкретном мире, потому про идеал можно потрепаться, но сермяжно писать «SELECT FROM...» и не это не напрягает

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

Все живём к конкретном мире, потому про идеал можно потрепаться, но сермяжно писать «SELECT FROM…» и не это не напрягает

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

anonymous
()

и про SQL-ы с табличными СУБД: они конечно продвинули идеи реляционной модели данных в практичный мир, но они-же их и закопали.

давным-давно, при зелёной траве, была довольно зверская и обоснованная критика SQL и реляционных СУБД, именно от идеологов RDB.

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

Она говорит про C, она ни разу ни в одном предметном разговоре не смогла выдать ничего конкретного на C. Так что ее компетенции пока что существуют только в ее голове.

anonymous
()

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

Проверки практикой нет до такой степени, что Leetcode контест по сравнению с их деятельностью - это максимально утилитарный и прикладной проект с тестированием, отладкой и сроками выполнения. А «сферически литкодер в вакууме» - готовый и натасканный к реальной работе специалист. Между типичным преподом и реальностью простирается бездна. Даже если эта реальность решение синтетических задач на время. Не говоря уже о проектировании приложений для конечного пользователя. Таких приложений которые готовы покупать заказчики.

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

У них нет сроков. У них нет реальных проектов. Они вообще (!) не в курсе современных реалий разработки. Для них до сих пор системы контроля версий - новинка. От этого умозрительного теоретизирования и бездны свободного времени начинается борьба с Python и SQL.

Ведь торопиться не надо, писать что-то тоже, надо с умным видом рисовать что-то на доске и талыдыдчить в это нечто указкой. И умозрительно заключать: «Надо быстро - значит надо чтоб компилировалось. Python не компилируется - значит медленно. Python не надо.» Критерии цены разработки, легкости тестирования и отладки в расчёт не берутся. Эти сущности вне их мира.

Работающие приложение никто и никогда не спросит. Спросят бумагу «научную» и точное посещение лекций.

P.S.

@liksys, @rtxtxtrx, в наших спорах я как-то был за «академическое» образование, пока не пообщался 3 минуты с преподавателем с многолетним стажем.

Это мрак. Полное отсутствие какой бы то ни было осведомленности о реальном положении дел. Типичное презрение к Python (а зачем он нужен?) и подростковых фольклор образца ранних 2000ых о «архитекторах» которые не пишут код.

Полное ощущение «машины времени». То, о чем говорил @liksys - пыльные «лабораторные» под Windows 2000 с точно таким же представлением о процессе создания программного обеспечения.

P.P.S.

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

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

Грязный балаган за деньги родителей.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 7)
Ответ на: комментарий от bugfixer

Какие ещё могут быть аргументы если вы отрицаете столь очевидную вещь что писать многопоток сложнЕЕ чем однопоток?

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

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

monk ★★★★★
()