Всем привет.
Недавно написал модуль для удобной работы с базами данных.
Если кто-то посмотрит, прошу оставить коментарии и возражения по поводу использования и документации
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 не вижу, скорее недостатки.