LINUX.ORG.RU

Python/Nodejs кастомизируемый скаффолдинг для MongoDB

 , , ,


0

2

Уже долгое время являюсь сторонником NoSQL баз даных и использую их везде. Часто использую flask-admin для скаффолдинга админки. Как всегда, в случае таких «комбайнов», пока все работает по задуманым разработчиками кейсам - проблем не возникает, но как только нужно сделать шаг в сторону - боль начинает усиливаться и достигает апогея «а не переписать ли все это нахер заново».

Вопрос такой, что может быть я что-то пропустил и есть какие-то убер инструменты более современные или «нативные» (в контексте DBMS), хипстерские, вообщем любые разработки по теме.

Кто что посоветует?

Это проблема NoSQL. Ты не проектируешь систему и в итоге она приходит в состояние хаоса. Я лично обрадовался всяким монгам и диванам, но когда увидел куда завело я в шоке. В новых проектах стараюсь использовать постгрес. Если приспичит влеплю json поле. Но лучше 7 раз отмерить и 1 раз отрезать. NOSQL дают волю раззвиздяйскому отношению.

dem ★★
()

… есть какие-то убер инструменты …

Нет. Совсем. Чтоб сделать CRUD чуть по сложнее, из нескольких мелких внутренних объектов, нужны транзакции для обеспечения целостности данных, чего в нереляционных базах данных нет и из за чего они такие шустрые. А делать Scaffolding «один объект - одна запись» - легко, скучно и совсем не интересно.

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

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

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

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

Нет, ни фига. Совсем не для этого их придумали. Этот «эффект» им тупо не нужен, потому что нереляционная база, в общем, никак не является потомком, заменой или аналогом реляционной. Она просто некоторые задачи (работу с кучей самостоятельных документов и ихними индексами) решает намного лучше, потому что не заморачивается насчет некоторых обязанностей реляционной базы. А вот если хочется сложных CRUD’ов и связей - добро пожаловать в реляционность.

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

А вот если хочется сложных CRUD’ов и связей - добро пожаловать в реляционность.

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

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

Да все админки, вообще-то. Ни одной не видел, чтоб на нереляционной базе было сделано. Разве что некоторые компоненты, например, документы для поиска в elasticsearch. Лучше подскажи, где ты это добро на нереляционной базе видел?

anonymous
()

Интересная тема с одной стороны…

Самое главное использовать БД не более чем сторедж и с настороже быть со всякими ООП-поделки из БД ))

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

Остаются генераторы?

anonymous
()

mongodb

А теперь расскажи, почему она, а не клон dbm.

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

Тот случай, когда исключение подтверждает правило. :-P Да, типа, транзакции есть, но «In most cases, multi-document transaction incurs a greater performance cost over single document writes, and the availability of multi-document transactions should not be a replacement for effective schema design. For many scenarios, the denormalized data model (embedded documents and arrays) will continue to be optimal for your data and use cases. That is, for many scenarios, modeling your data appropriately will minimize the need for multi-document transactions.» да и специальных условий там куча, например «At any given time, you can have at most one open transaction for a session».

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

И куда завело? С MongoDB всю валидацию можно вынести в базу (JSON-схема), а бекенд будет тупо прокладкой между базой и браузером. Легковесное API получается с минимумом логики

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

И вы много за свою жизнь видели монги с схемами? Если в опенсорс еще вошкаются с такими вещами (потому, что надо все сделать правильо, а иначе стыдно), то в энтерпрайзе главное сделать быстро и сейчас. Вы читали что внутри у Оракла? Вот и тут.

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

Вы читали что внутри у Оракла?

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

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

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

Обратите внимание на то, что на том же хабре в последний год стало много постов про психическое здоровье. Лично я ушел с работы когда увидел захардкоженые токены к отправке СМС и к амазону. Мне коллега сказал - а чего тебе? Подумаешь? Тебе заплатили - сделал и забыл. А второй рассказал историю (кстати сам с этим столкнулся). У них создали CI тесты. И в тестах был откат денег клиента. Тоесть клиент в месяц заплатил 50$ и тест ему 50$ вернул. При каждом коммите тесты отрабатывали. Некоторые клиенты получили от фирмы до 2500$ в месяц благодаря тестам и длилось это год. В моей фирме при абонплате 30$ нектороые клиенты получали СМС на 100$ (всякие острова в тихом океане).

А главное никто не берет на себя ответственность. Низший уровень НИКОГДА не скажет руководитель - я обделался. Улыбаемся и машем.

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

Лично я ушел с работы когда увидел захардкоженые токены к отправке СМС и к амазону.

м-да …

У них создали CI тесты. И в тестах был откат денег клиента. Тоесть клиент в месяц заплатил 50$ и тест ему 50$ вернул. При каждом коммите тесты отрабатывали. Некоторые клиенты получили от фирмы до 2500$ в месяц благодаря тестам и длилось это год. В моей фирме при абонплате 30$ нектороые клиенты получали СМС на 100$ (всякие острова в тихом океане).

оригинальная бизнес-модель однако

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

Скажем так. Я в своем проекте ее сам на уровне сервера приложений делал. Но смысл в том, что «легче забить».

dem ★★
()

Посоветую вам изучить русский язык. Он полезнее, чем NoSQL базы.

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

Чейта я судо ненавижу. Я вообще тем кто под рутом работают бью по рукам

dem ★★
()

надо будет admin-bro глянуть, вроде что-то интерестное
нормальный пример админки для nosql я уже приводил - это flask-admin, который имеет адаптеры для pymongo, mongoengine, но интерфейс есть простой маппер к базе и работать с ним следует соблюдая логику приложения, а не через удобные человеческие формы - только отдельные сущности

trashymichael ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.