LINUX.ORG.RU

Написал тут свой велосипед. Стоит ли делать его отдельным opensource проектом?

 ,


0

1

Собственно $subj.

В рамках проекта, по которому сроки фактически не ограничены, написал свой велосипед. Представляет из себя простенький ORM для Cassandra DB поверх datastax драйвера. Теперь сижу и думаю - имеет ли смысл его слегка причесать, убрать зависимости от спринга, благо их там не много, и выложить отдельным проектом куда-нибудь на гитхаб? Будет ли кому-то надо?

★★★★

Будет ли кому-то надо?

Выложи и узнаешь.

fraxinum
()

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

megabaks ★★★★
()

Не выкладывай.

Deleted
()

Выкладывай.

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

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

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

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

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

То есть ты реализовал универсальный CRUD-фреймворк для ORM. Хотелось бы пример использования (какой код придётся писать, чтобы задействовать твой фреймворк?).

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

Ну, не универсальный, я же говорю - он только для кассандры, использует datastax драйвер для нее. Код для работы с этой штукой очень похож на spring data repository. Т.е. под впечатлением от их spring-data-mongo оно и делалось. Для использования достаточно пронаследоваться от обьекта и определить типы сущности и ключа, после чего мы получаем рабочий репозиторий, умеющий crud + методы для создания/обновления таблицы в базе.

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

@Repository
public class TripRepository extends SpringConfiguredCassandraRepository<Trip, UUID> {
}
Nagwal ★★★★
() автор топика
Ответ на: комментарий от vada

Ты мне можешь назвать хоть один инструмент для reverse и forward генерации схемы для cassandra db? С одновременной генерацией явовских классов под эту-же схему. Иначе - не нужно.

Nagwal ★★★★
() автор топика

Норм че, асинхронщина есть? А как организованы первичные ключи и order by по ним?

Какие спец фичи есть (счетчики, lightweight transactions)?

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

Я не знаю что такое cassandra db. Множество CASE систем умеют работать с БД через ODBC. Умеют как генерировать SQL для построении базы, так и из структуры существующей базы генерить бины. Я работал с Together (это теперь собственность борланда), все умеет.

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

в проекте довольно часто меняется модель данных

Выкладывай. Как-то приходилось мучаться над подобным.

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

Норм че, асинхронщина есть?

Асинхронщины пока нет, но планируется.

А как организованы первичные ключи и order by по ним?

Первичный ключ метится в сущности аннотацией @Id, compound keys метятся аннотацией @Compound. Есть запросы вида E get(K id) и List<E> find(K id, Object... compound). Первый кидает исключение, если находит больше одного объекта по Id, второй может искать как с использованием compound ключей, так и без.

Какие спец фичи есть (счетчики, lightweight transactions)?

Пока нет, но счетчики точно будут, lightweight transactions тоже наверное добавить не сложно будет.

Она ALTERы генерит?

Если вообще не находит таблицы, то create table. Если находит, то пробегается по всей метадате и для не найденых колонок генерит alter table add, а для найденных с не совпадающим типом данных в зависимости от настроек либо плюется в лог сообщениями, либо пару drop - create.

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

Ключевое слово SQL. Кассандра это nosql решение, поэтому все эти генерилки в случае ее использования бесполезны. У нее вообще не реляционная модель данных. Плюс я не встречал еще ни одной генерилки, которая могла бы из одной модели одновременно генерить и sql и допустим jpa бины под него, если уж мы говорим про классические базы данных.

Nagwal ★★★★
() автор топика

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

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

Ну, нормальные люди пишут не только opensource. Это первое. А во вторых репозиторий на гитхабе есть, просто он закрытый. Вопрос в том, что я, как автор кода, при этом не подписывавший никаких nda - могу вытащить кусок в отдельный проект.

Nagwal ★★★★
() автор топика

убрать зависимости от спринга

Чтобы можно было использовать твой код с Guice, к примеру?

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

Ну, нормальные люди пишут не только opensource

Это неправда. Остальное - отмазки.

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

Ну, чтобы ее можно было использовать везде, не таща за собой кучи зависимостей ненужных. В guice, ejb да и вообще где угодно.

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