Rx menyiratkan Ekstensi Reaktif (yaitu RxJava) sebagai ketergantungan. Saya akan merekomendasikan mengubah nama proyek ini menjadi "hibernasi-reaktif" atau serupa untuk menghilangkan kebingungan di muka.
@emmanuelbernard WDYT?
Ya, itu selalu nama kode.
Kalau begitu sebaiknya kita mengubahnya dengan cepat, karena itu sedang dalam proses untuk memantapkan menjadi nama asli!
Saya telah menugaskan itu kepada saya. Saya akan melakukannya pada akhir minggu, kecuali ada yang keberatan.
Saya akan melakukannya di akhir minggu
Tapi apa yang akan Anda ubah?
hibernate-reactive
kedengarannya tidak terlalu buruk
>
+1 untuk hibernasi-reaktif
Pada hari Rabu, 1 April 2020 pukul 07.45 DavideD [email protected] menulis:
hibernate-reactive
kedengarannya tidak terlalu buruk>
—
Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/hibernate/hibernate-rx/issues/77#issuecomment-607292426 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AADJJTIRGWQNUSN7FC3WCSLRKNHRJANCNFSM4LX6AEVQ
.
Tidak apa-apa tapi saya tidak ingin mengetik ReactiveSession
seribu kali....
Saya suka HibernateRX
: menjadi "reaktif" adalah sebuah konsep, itu bukan merek dagang dari RxJava.
Tidak apa-apa tapi saya tidak ingin mengetik ReactiveSession seribu kali.
Jenis? Keyboard Anda tidak memiliki tombol spasi? :)
Agar adil, saya tidak terlalu suka menggunakan awalan dalam nama kelas. Apakah itu cukup untuk memiliki dalam paket? Atau terlalu membingungkan saat bekerja dengan ORM?
Mungkin kita bisa menggunakan R
sebagai awalan?
Berikut ringkasan opsi yang dapat saya pikirkan (jangan ragu untuk menyarankan sesuatu yang berbeda):
org.hibernate.rx.RxSession
(saat ini)org.hibernate.rx.Session
org.hibernate.reactive.ReactiveSession
org.hibernate.reactive.Session
org.hibernate.reactive.RSession
org.hibernate.rx.RSession
Ada saran lain?
Saya tidak memiliki preferensi yang kuat. Saya pikir Reactive membuat namanya lebih mudah dibaca dan tidak terlalu panjang. Perhatikan bahwa Ini tidak memerlukan awalan karena untuk beberapa implementasi atau kelas yang memperluas kelas super, itu bisa berupa:
class AbstracRxtEntityPersister extends RxEntityPersister
class AbstracReactivetEntityPersister extends ReactiveEntityPersister
Ini tidak terlalu konsisten dalam proyek sekarang. Terkadang kelas menggunakan
RxAbstractEntityPersister
Saya pikir saya akan menggunakan opsi 3: org.hibernate.reactive.ReactiveSession
Tetapi saya akan menunggu untuk mendengar apakah ada saran yang lebih baik atau pendapat yang kuat menentangnya.
Saya akan memilih 3
juga, tapi mungkin @vietj punya pendapat juga?
Ya, saya mencoba untuk menemukan pilihan yang lebih baik, tapi terus terang saya kosong dan saya setuju dengan kalian: sepertinya tidak ada yang lebih baik dari ReactiveSession
.
Saya benci kurangnya alias tipe di Jawa. Satu-satunya peretasan yang dapat saya pikirkan adalah memiliki Reactive.Session
, Reactive.Query
, dll, sebagai antarmuka bagian dalam dari beberapa tipe Reactive
, memungkinkan Anda menggunakan impor statis jika Anda mau. Itu pendekatan yang masuk akal, tetapi yang belum pernah saya lihat digunakan orang lain di Jawa.
Saya suka opsi 2 dan 4:
- org.hibernate.rx.Session
- org.hibernate.reactive.Session
Biarkan nama paket menyampaikan bahwa kelasnya "reaktif". Jika kita harus menambahkan Rx/Reactive sebagai awalan ke semua kelas maka itu membuat kelas tampak seperti warga kelas dua.
Kelemahan utama yang saya lihat menggunakan nama kelas yang sama dengan rekan non-reaktif adalah jika kita mengharapkan pengguna untuk menggunakan kedua kelas di kelas yang sama (sehingga membutuhkan nama kelas yang sepenuhnya memenuhi syarat di mana pun jenis diekspresikan), tetapi AFAIK yang seharusnya tidak terjadi?
Saya suka opsi 2 dan 4:
- org.hibernate.rx.Session
- org.hibernate.reactive.Session
FTR Saya juga setuju dengan itu, namun, saya akan mencatat bahwa itu meningkatkan risiko kesalahan saat mengimpor otomatis.
Mengingat bahwa kami pada akhirnya hampir pasti memiliki beberapa jenis sesi reaktif, saya ingin mengusulkan yang berikut:
MutinySession
untuk PemberontakanStagedSession
atau sesuatu seperti itu untuk CompletionStage
WDYT?
Apakah ini satu-satunya API yang menghadap pengguna yang mengekspos rasa tipe reaktif?
Apakah ini satu-satunya API yang menghadap pengguna yang mengekspos rasa tipe reaktif?
Di antara API "utama" pertimbangkan juga yang setara dengan Query
.
Sebagai catatan, saya percaya "Rx" memiliki nada yang bagus untuk itu, dan itu sama sekali bukan _owned_ oleh proyek RxJava - seperti yang saya sebutkan di atas - jadi saya ingin menyimpan nama itu karena yang lain tidak terdengar benar.
Pada struktur kontrak
Saya tidak suka kelebihan antarmuka Session
, seperti yang ditunjukkan Gavin, ini menyebabkan kesalahan penyelesaian otomatis dan kelebihan kognitif bagi orang-orang.
Jadi +1 untuk salah satu dari pola berikut:
MutinySession
, RxJava2Session
, JDKReactiveSession
(untuk CompletionStage dan Flow)SessionMutiny
, SessionRxJava2
dllPola alternatif adalah reactiveSession.forMutiny().[...]
, reactiveSession.forJDK().[...]
tetapi itu akan membuat mimpi buruk ketergantungan yang paling mungkin terjadi. reactiveSession.unwrap(MutinySession.class)
tampaknya tidak membawa nilai.
Beberapa poin tambahan:
CompletionStage
adalah Flow itu sebabnya saya menyebutnya JDKReactiveSession
RxJavaXSession
kemungkinan besar akan "kelebihan beban" misalnya fetchAsSingle()
dllSaya membayangkan Query
juga akan memiliki rekanan Reaktif. BTW terpikir oleh saya bahwa parameter kueri harus menerima tipe langsung dan pembungkus reaktif misalnya Uni<String>
Pada namanya, saya kira Hibernate ORM Reactive baik-baik saja hibernate-orm-reactive
tetapi @FroMage bagaimana dengan "Panache Rx" apakah ia melakukan transformasi serupa?
@emmanuelbernard perhatikan bahwa cara saat ini untuk mendapatkan Session
dan SessionFactory
adalah:
RxSessionFactory sessionFactory = emf.unwrap(RxSessionFactory.class);
RxSession session = sessionFactory.openRxSession();
Saya cukup senang dengan pola ini.
JDKReactiveSession
Ugh. Itu terlihat mengerikan untuk sesuatu yang mungkin sering kita lihat dalam kode.
Saya membayangkan
Query
juga akan memiliki rekanan Reaktif.
Ya, itu sudah ada dan saat ini disebut RxQuery
. Tapi itu tidak melakukan apa-apa untuk saat ini.
Sejujurnya, saya semakin menyukai opsi berikut:
//I want to try out Mutiny
Mutiny.SessionFactory sessionFactory = emf.unwrap(Mutiny.SessionFactory.class);
Mutiny.Session session = sessionFactory.openReactiveSession();
Mutiny.Query = session.createQuery(hql);
atau:
//I want to try it out with CompletionStage
Stage.SessionFactory sessionFactory = emf.unwrap(Stage.SessionFactory.class);
Stage.Session session = sessionFactory.openReactiveSession();
Stage.Query = session.createQuery(hql);
Dan kemudian, setelah saya tahu pasti saya menggunakan Mutiny
, saya bisa menulis:
import static org.hibernate.reactive.mutiny.Mutiny.*;
...
SessionFactory sessionFactory = emf.unwrap(SessionFactory.class);
Session session = sessionFactory.openReactiveSession();
Query = session.createQuery(hql);
Saya pikir kelas luar secara substansial mengurangi masalah kecelakaan impor otomatis. (Meskipun itu memang memiliki kelemahan lain.)
itu terlihat brilian @gavinking
@gavinking Saya sangat suka proposal terakhir Anda.
Saya pikir kelas luar secara substansial meringankan masalah kecelakaan impor otomatis. (Meskipun itu memang memiliki kelemahan lain.)
Sebagai contoh?
@DavideD salah satu kelemahannya adalah IDE biasanya tidak secara otomatis menambahkan impor statis. (Meskipun Anda dapat mengonfigurasinya untuk melakukannya.)
@emmanuelbernard perhatikan bahwa cara saat ini untuk mendapatkan
Session
danSessionFactory
adalah:RxSessionFactory sessionFactory = emf.unwrap(RxSessionFactory.class); RxSession session = sessionFactory.openRxSession();
Saya cukup senang dengan pola ini.
JDKReactiveSession
Ugh. Itu terlihat mengerikan untuk sesuatu yang mungkin sering kita lihat dalam kode.
Dari sebagian besar umpan balik yang saya kumpulkan, orang membenci CompletionStage
dan memilih RxJava atau teman. Jadi versi itu akan menjadi pilihan orang miskin itu.
Dari sebagian besar umpan balik yang saya kumpulkan, orang membenci CompletionStage dan memilih RxJava atau teman. Jadi versi itu akan menjadi pilihan orang miskin itu.
Apakah Anda mencoba untuk memastikan itu tidak memiliki kesempatan untuk digunakan? :-D
Dari sebagian besar umpan balik yang saya kumpulkan, orang membenci
CompletionStage
dan memilih RxJava atau teman. Jadi versi itu akan menjadi pilihan orang miskin itu.
Tentu, aku juga membencinya.
IDE biasanya tidak secara otomatis menambahkan impor statis
Itu poin yang cukup kuat untuk menentangnya, bahwa Anda tidak dapat menulis Session
dan mendapatkan proposal IDE untuk mengimpor static Mutiny.Session
, jadi Anda selalu harus mengetiknya dengan awalan Mutiny.Session
. Dan semua dokumen harus menyertakan impor juga, yang membuatnya sulit untuk disalin/ditempel.
Pada namanya, saya kira Hibernate ORM Reactive baik-baik saja hibernate-orm-reactive tapi @FroMage bagaimana dengan "Panache Rx" apakah itu melewati transformasi yang sama?
Ya. Itu selalu menjadi nama kode.
Itu poin yang cukup kuat untuk menentangnya, bahwa Anda tidak dapat menulis Sesi dan mendapatkan proposal IDE untuk diimpor
Saya tidak merasa itu kuat: mereka masih dapat menulis Mutiny.SessionFactory
, seperti yang mungkin harus kita patuhi dalam dokumentasi (jadi kita tidak perlu memasukkan impor, meskipun mungkin kita selalu harus sebagai aturan umum) .
@FroMage tidak terlalu buruk. Di intelliJ pergi ke Settings > Code Style > Java > Imports . Di Eclipse ada yang serupa.
Untuk apa nilainya, Pemberontakan harus dianggap sebagai API default menurut saya. Sisanya bisa termasuk dalam beberapa paket compat
. Bahkan versi CompletionStage/Flow
:-)
Pembaruan: Mengingat dokumen Pemberontakan, apakah masuk akal untuk memanggang dalam compat? Cukup mengandalkan Mutiny untuk itu, dan berikan (agak kecil) beban pada pengembang untuk melakukan konversi jika mereka perlu mengonversi dari satu ke yang lain.
Clement menambahkan trampolin ke Mutiny, mungkin menjadi argumen pendukung lain untuk menjadikan Mutiny default untuk Reactive Hibernate.
Diskusi ini berkembang di milis hibernate-dev. Kita semua tampaknya cenderung untuk pergi dengan Hibernate Reactive
... ok?
Akan lebih baik untuk membalas di milis.
Pengingat, untuk mendaftar lihat:
Secara khusus ini adalah utas besar yang berkaitan dengan masalah ini (antara lain):
Hibernasi Reaktif, oke?
:sampanye:
Secara khusus ini adalah utas besar yang berkaitan dengan masalah ini (antara lain):
Utas besar apa, ada satu email;)
Secara pribadi saya masih lebih menyukai HibernateRX -- saya setuju dengan Sanne bahwa RxJava tidak memiliki "Rx" dan IMO HibernateRX adalah nama yang menarik. Hibernate Reactive tampaknya lebih seperti deskripsi daripada nama. Hanya $0,02 saya dan saya tidak ingin mengacaukan utas milis dengan ini.
Secara pribadi saya masih lebih menyukai HibernateRX -- saya setuju dengan Sanne bahwa RxJava tidak memiliki "Rx" dan IMO HibernateRX adalah nama yang menarik. Hibernate Reactive tampaknya lebih seperti deskripsi daripada nama. Hanya $0,02 saya dan saya tidak ingin mengacaukan utas milis dengan ini.
Masalahnya @aguibert adalah apa arti x dalam nama Hibernate Rx Anda?
Ekstensi Reaktif adalah sesuatu yang spesifik https://en.m.wikipedia.org/wiki/Reactive_extensions
benar, saya akan berpikir Hibernate Rx hanya akan berdiri untuk "Ekstensi Reaktif Hibernate". Ekstensi Reaktif adalah sesuatu yang spesifik, tetapi mengacu pada konsep, bukan produk atau proyek tertentu. IMO yang kami lakukan di sini masih sesuai dengan konsep itu.
Karena sepertinya kita sedekat mungkin dengan konsensus seperti yang akan kita dapatkan dengan nama "Hibernate Reactive", saya juga setuju dengan nama itu.
Saya akan menutup ini karena tidak ada pemberontakan sebagai konsekuensi dari email Emmanuel di milis :)
Hibernate Reactive
itu! Sekali lagi terima kasih @murphye dan semuanya
Diikuti oleh #111
Komentar yang paling membantu
Sejujurnya, saya semakin menyukai opsi berikut:
atau:
Dan kemudian, setelah saya tahu pasti saya menggunakan
Mutiny
, saya bisa menulis:Saya pikir kelas luar secara substansial mengurangi masalah kecelakaan impor otomatis. (Meskipun itu memang memiliki kelemahan lain.)