Size: a a a

2020 November 16

PD

Pavel Dotsenko in pro.elixir
Всем привет.
Недавно написал модуль для удобной работы с базами данных.
Если кто-то посмотрит, прошу оставить коментарии и возражения по поводу использования и документации
https://hex.pm/packages/crud
источник

РП

Радж Полиновский... in pro.elixir
Pavel Dotsenko
Всем привет.
Недавно написал модуль для удобной работы с базами данных.
Если кто-то посмотрит, прошу оставить коментарии и возражения по поводу использования и документации
https://hex.pm/packages/crud
А  с какими базами он работает?
источник

PD

Pavel Dotsenko in pro.elixir
С любой. По сути это надстройка над Ecto.Repo для упрощения работы. Фишка в том, что данный модуль помогает избежать повторного кода работы с базой в моделях.

Пример использования:
MyProject.CRUD.get(MyModule, key: value)
источник

I

Ilya in pro.elixir
каждую неделю рекламу толкает, смотрите на него)
источник

PD

Pavel Dotsenko in pro.elixir
)))
источник

PD

Pavel Dotsenko in pro.elixir
Документация тут:
https://github.com/PavelDotsenko/CRUD
источник

SM

Sergei Maximov in pro.elixir
Pavel Dotsenko
Всем привет.
Недавно написал модуль для удобной работы с базами данных.
Если кто-то посмотрит, прошу оставить коментарии и возражения по поводу использования и документации
https://hex.pm/packages/crud
ИМХО, выглядит как очень тонкая обёртка над Экто-репой с сомнительными преимуществами (без обид)

1. Пустая документация на hexdocs.
2. Неконсистентное наименование. Проект называется CRUD, что наверно подразумевает Create-Read-Update-Delete. Можно было бы использовать это именование для действий с БД, но создание записи в БД называется add, а не create; почему тогда удаление не subtract?.
3. У схемы на самом деле может быть больше одной функции для создания ченжсета, и эта функция может называться не changeset.
4. У get_few очень непонятное название. Мне пришлось лезть в исходники, чтобы понять, что оно должно делать (т.к. доков по сути нет). Выглядит оно как очень специфическая функция для определённого юзкейза (offset-пагинация), либо не хватает ей кастомизируемости для этого конкретного юзкейза. Ну то есть мы сможем с помощью неё сделать пагинацию, но только в том случае, если нас интересует сортировка по ID.
5. В отличие от Query/Repo Экто, отсутствует "компонуемость" (composability). Для примера: метод get репозитория может принимать как модуль схемы, так и query.
6. "Latest release v1.0.5 on 2020-11-14" — вместо того, чтобы пихать эту информацию в README, стоит делать релизы в самом гитхабе (см. git tag).

Для себя я преимуществ над встоенными средствами Ecto не вижу, скорее недостатки.
источник

AN

Alexey Novoselov in pro.elixir
не сочтите за грубость, но я заипался в проекте вычищать спагетти говнище, когда вместо запроса к базе тут же внутри функции и обработки результата вызывается функция из друго модуля с каким-то параметром, в которой вызывается еще одна функция для обработки этого параметра и делается запрос по результату этого вызова... а параметр по всему проекту всегда передается один и тот же. Да и вызываются эта функция из одного и того же места. Давайте возведем этот говнопаттерн в абсолют: Сделаем отдельную либу для однострочечных функций-оберток над экто!
источник

PD

Pavel Dotsenko in pro.elixir
Ок, приму к сведенью
источник

AN

Alexey Novoselov in pro.elixir
Pavel Dotsenko
Ок, приму к сведенью
сори, это крик души, возможно ваша либа вырастет во что-то большее
источник

PD

Pavel Dotsenko in pro.elixir
Alexey Novoselov
сори, это крик души, возможно ваша либа вырастет во что-то большее
В процессе. То что есть уже используем на рабочем проекте. Но со временем буду дополнять и переделывать
источник

VS

Vladimir Sekisov in pro.elixir
слишком просто, чтобы было полезно,
хоть какую бы макрологию
всунуть для работы с changeset, где повторямого
кода обычно дофига,
запросы не по ключу
и пр.
источник

PD

Pavel Dotsenko in pro.elixir
Нужно подольше посидеть над документацией))) А то с виду и вправду ничего не понятно
источник

VS

Vladimir Sekisov in pro.elixir
все понятно, но я хотел быть
вежливым
источник

PD

Pavel Dotsenko in pro.elixir
Я расчитывал что вообще говна на вентилятор набросают, а тут еще хорошо встретили
источник

VS

Vladimir Sekisov in pro.elixir
вот тут гражданин  делает примерно то же самое,
но чуть-чуть более правильно:
https://hex.pm/packages/ecto_resource
источник

D

Disi in pro.elixir
Pavel Dotsenko
Я расчитывал что вообще говна на вентилятор набросают, а тут еще хорошо встретили
Желательно подумать что-то для смены названия. CURD может запутать так как не понятно к какой области относится больше, к контроллерам или моделям. Да и тут все стремятся сделать лучше для сообщества, у библиотеки есть хорошая идея (при том что подходит не всем), но и выглядеть она должна соответствующе :)
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
Ненавижу обучающие видео, презираю их аудиторию, вне зависимости от языка
Есть люди, которые проще воспринимают текст
Есть люди, которые проще воспринимают голос
Есть люди, которые проще воспринимают схемы
Это называется VARK. И поэтому в презентациях есть и схемы, и текст, и рассказ
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Есть люди, которые проще воспринимают текст
Есть люди, которые проще воспринимают голос
Есть люди, которые проще воспринимают схемы
Это называется VARK. И поэтому в презентациях есть и схемы, и текст, и рассказ
мне в общем безразличны чьи-то проблемы с восприятием текста - эффективность поиска информации в среднем ценнее
источник

LL

Lama Lover in pro.elixir
Pavel Dotsenko
Всем привет.
Недавно написал модуль для удобной работы с базами данных.
Если кто-то посмотрит, прошу оставить коментарии и возражения по поводу использования и документации
https://hex.pm/packages/crud
Интересный набор хэлперов. Только он как-то не сильно что-либо упрощает, все эти вещи обычно легко самим в Repo дописать.
Но затея хорошая, я бы подумал о развитии этой либы в какой-нибудь более уникальный флоу работы с БД
источник