“Bean Validation, mikro hizmet mimarileri için çok kullanışlıdır”

Portakalkafa

Global Mod
Global Mod


  1. “Bean Validation, mikro hizmet mimarileri için çok kullanışlıdır”

Java topluluğunda, Java Özellik İsteklerine (JSR) ve açık kaynak projelerine katılımları yoluyla geliştirmeyi yönlendiren birçok ilginç kişi vardır. Bazılarını burada yavaş yavaş tanıtmak ve kendileriyle projelerinden bahsetmek istiyorum. Bu sefer Gunnar Morling ile yakın zamanda duyurulan JSR 380 – Bean Validation 2.0 hakkında konuştum.


Thorben Janssen: Merhaba Gunnar, bize biraz kendinden bahset. Yazılım geliştirmeye nasıl başladınız ve bugün ne yapıyorsunuz?





Günnar Morling



Günnar Morling



Günnar Morling: Turbo Pascal ile Windows 3.11 altında ilk programlama deneyimimi kazandım. Diğer şeylerin yanı sıra medya bilişimi okuduktan ve çevrimiçi perakende sektöründe çalıştıktan sonra, şimdi Hibernate bağlamında çeşitli projeler üzerinde çalıştığım Red Hat için çalışıyorum. Meslektaşlardan ve topluluk üyelerinden oluşan uluslararası bir toplulukta açık kaynak yazılım geliştirmek her gün çok heyecan verici ve çeşitlidir.

Janssen: Java dünyasında olmadığınızda özel olarak ne yaparsınız?

mırıltı:
Bilgisayar çalışmasını dengelemek için, örneğin arkadaşlarla bir tur golf oynamak için dışarıda olmayı seviyorum. Geçen kış soğuk günlerde Arduino’yu kurcalarken buldum kendimi.

Bean Validation 2.0 için Yeni JSR


Janssen: Siz JSR 380 – Bean Validation 2.0 için spesifikasyon liderisiniz. Planlanan değişikliklerden bahsetmeden önce, fasulye doğrulamaya kısa bir giriş yapabilir misiniz? Spesifikasyonun amacı nedir ve nerede kullanılır?

mırıltı:
Bean Validation, Java nesnelerini doğrulamak için bir API ve metamodel tanımlar. Kısıtlamalar benzer ek açıklamalar kullanılarak tanımlanır @Geçersiz değil, @Dak(10) VEYA @Pattern(normal ifade=”[a-z]*”) ifade etti.


Bir yandan, doğrulamayı API aracılığıyla kendiniz tetikleyebilirsiniz, diğer yandan, fasulye doğrulaması aynı zamanda JPA, JSF veya JAX-RS gibi diğer birçok Java standardı ile entegre edilmiştir; veritabanında bir varlık kalır, bir form şablonu gönderilir veya bir REST isteği işlenir. Önceden tanımlanmış kısıtlamalar ihtiyaçlarınız için yeterli değilse, projeye özel kısıtlama doğrulayıcıları ve açıklamaları tanımlayabilirsiniz.

Bean Validation 1.1’den bu yana, yöntem parametrelerinin ve sonuçlarının doğrulanması da vardır. CDI veya Spring Framework gibi bir kapsayıcı ile birlikte bu, ilgili açıklamalı yöntemleri çağırırken parametrelerin ve dönüş değerlerinin otomatik olarak kontrol edilmesini sağlar. Bean Validation, Java EE’nin bir parçasıdır, ancak Java SE’de de sorunsuz bir şekilde kullanılabilir, örneğin zengin istemcilerde girdi doğrulaması için.

Janssen: Sürüm 2.0 ne gibi değişiklikler yapmalı ve JSR neden bu kadar geç başladı?

mırıltı:
Bean Validation 2.0, Java 8’in birkaç yeni dil özelliğini kullanmaya odaklanacaktır:

  • Liste veya Küme gibi koleksiyon türlerinin öğelerini doğrulamak için yeni tanıtılan tür ek açıklamalarını kullanma; örneğin, kullanabilirsiniz E-postaları listele listedeki her öğenin geçerli bir e-posta adresi olması gerektiğini açıkça belirtin
    • desteği java.util.İsteğe Bağlı ve JSR 310’dan yeni tarih/saat veri türleri
    • birkaçının en basit ifadesi @Model-Bir özellik üzerindeki kısıtlamalar @Tekrarlanabilir[[[[
    • parametre adları için yeni Reflection API kullanılarak yöntem doğrulama için daha açıklayıcı hata mesajları
    • muhtemelen çok kompakt satır içi kısıtlamalar için lambda ifadelerinin kullanılması
Java 8’e yükseltmeye ek olarak, kullanıcılardan gelen diğer özellik isteklerini de karşılamayı planlıyoruz. Bu, örneğin, bireysel özellikler üzerindeki sıralama kısıtlamaları (önceden doğrulama grupları olarak adlandırılıyordu) veya değiştirilen özellik değerlerini bir modele yazılmadan önce doğrulamak için bir API için geçerlidir. JSR 354 (“Para Birimi ve Para”) veya JavaFX gibi diğer teknolojiler ve standartlarla entegrasyon da olağandır. Java 9 ve yeni Java modül sistemi üzerinde devam eden çalışmaları da takip ederek gerekirse Bean Validation hazırlıyoruz.

Bütün bunlarda, topluluğun deneyimleri ve ihtiyaçları bize güçlü bir şekilde rehberlik ediyor. Bu, yeniliklere yönelik önerilerin ve API’deki olası iyileştirmeler hakkında pratik geri bildirimlerin memnuniyetle karşılanacağı anlamına gelir.

Sorunun ikinci kısmıyla ilgili olarak: Bean Validation 1.1’in tamamlanmasının ardından, ilk olarak topluluğa o sırada yeni olan şeyleri denemesi ve günlük uygulamada ilgili deneyimleri toplaması için zaman vermek istedik. Yeni sürüm üzerinde birkaç yıl çalışmak yerine yönetilebilir miktarda değişiklik içeren oldukça kompakt bir programla gitmek en başından beri bizim fikrimizdi.

Bean Validation 2.0, Java EE 8 ve MicroProfiles’e nasıl uyuyor?


Janssen: Oracle, bir süredir Java EE’ye olan ilgisini kaybetmiş gibi görünüyordu. Ancak son zamanlarda, daha fazla geliştirmeye olan ilgi yeniden doğrulandı ve daha ayrıntılı planlar JavaOne’da duyurulacak. Java EE’nin geleceğini nasıl görüyorsunuz ve Bean Validation özelliğinin bunda oynadığı rol nedir?

mırıltı:
En son gelişmeleri büyük bir ilgiyle takip ediyorum ve JavaOne’daki duyuruları sabırsızlıkla bekliyorum.

İş uygulamaları için standartlaştırılmış bir platform fikri benim için cazibesinden hiçbir şey kaybetmedi ve ilgili herkesin yakın bir şekilde birlikte çalışması ve kullanıcı topluluğunun çıkarlarını ciddiye alması durumunda Java EE’nin gelecekte bu platform olmaya devam edebileceğini düşünüyorum. ve bulut dağıtımları veya mikro hizmet mimarileri gibi Find geliştirmeleriyle ilgili sorunlara çözüm bulun.

Bununla birlikte, birçok şirketin Google veya Facebook gibi niceliksel yapılara ve ölçeklenebilirlik gereksinimlerine sahip olmadığı ve genellikle işlemsellik veya basit istek/yanıt modelleri gibi kanıtlanmış ilkelerle çok iyi hizmet vermeye devam edeceği unutulmamalıdır.

Bean Validation 2.0’ın Java EE 8’in bir parçası olması ve tüm uygulama katmanlarında girdileri ve nesneleri doğrulamak için tercih edilen çözüm olmaya devam etmesi bekleniyor. Java EE yığınındaki diğer teknolojilerle sıkı entegrasyon, çekiciliğine ve sorunsuz bir “geliştirme deneyimine” katkıda bulunmalıdır.

Janssen: Bir başka ilginç gelişme de, farklı uygulama sunucularının sağlayıcılarının mikro hizmetler için ortak bir temel oluşturmak istediği MicroProfile girişimi. Bean Validation’ın MicroProfile 1.0’a dahil edilmesi beklenmiyor, ancak sonraki sürümlerde olası bir bileşen olarak değiştiriliyor. Bir mikro hizmet mimarisinde fasulye doğrulamasını kullanma konusunda ne düşünüyorsunuz? Bean Validation spesifikasyonunun gelecekte MicroProfile’ın bir parçası olma şansını nasıl görüyorsunuz?

mırıltı:
Fasulye doğrulamasının, farklı hizmetler genelinde REST isteklerini doğrulamak gibi mikro hizmet mimarileri için çok yararlı olduğunu düşünüyorum.

Farklı mikro hizmetlerin çok farklı teknoloji gereksinimleri olabilir. Bu nedenle, bence, MicroProfile gibi bir mikro hizmet platformunun, geliştiricilerin kendi ihtiyaçlarına göre gerekli olanları seçebilecekleri – CDI aracılığıyla birbirine bağlı – farklı teknolojilere sahip bir araç kutusu olarak tasarlanması arzu edilir.

Tabii ki, fasulye doğrulamasının MicroProfile’ın gelecekteki bir sürümüne dahil edilmesini gerçekten takdir ediyorum. Ancak o zamana kadar, öncelikle geliştiricilerin MicroProfile’ı nasıl kullandıkları konusunda deneyim kazanabiliriz ve tabii ki fasulye doğrulama ve referans uygulamasının da MicroProfile 1.0 ile birlikte çok iyi çalışmasını sağlamak için çalışacağız.

Janssen: Bean’lerin doğrulanması hakkında daha fazla bilgiyi nerede bulabilirsiniz ve daha fazla geliştirmeye dahil olmak için hangi fırsatlar var?

mırıltı:
Merkezi iletişim noktası, yeniden tasarlanan beanvalidation.org ana sayfamızdır. Orada, spesifikasyonun geçmiş revizyonu ve şu anda çalışan revizyonu hakkında tüm bilgileri bulacaksınız.

Katılmak için birçok fırsat var. E-posta listemize yorum ve önerilerinizi bekliyoruz. Red Hat açık kaynak yaşıyor ve nefes alıyor ve elbette Bean Validation da bir istisna değil. Sonuç olarak, API kaynakları, belirtim, Test Uyumluluk Kiti (TCK) ve Hibernate Validator referans uygulaması GitHub’da ücretsiz olarak mevcuttur ve çekme istekleri her zaman memnuniyetle karşılanır. JSR 380 Uzman Grubuna da üye olabilirsiniz, detaylar için JSR ana sayfasına bakınız.

Başka ne?


Janssen: Başka hangi projeler üzerinde çalışıyorsunuz?

mırıltı:
Red Hat Hibernate ekibinde, Bean Validation ve Hibernate Validators’ın yanı sıra Hibernate Search (Lucene/Elasticsearch aracılığıyla etki alanı modelleri için tam metin aramalarının kolayca uygulanmasına izin verir) ve Hibernate OGM (JPA varlıklarının NoSQL arşivlerinde kalıcı olmasına izin verir) üzerinde çalışıyorum. MongoDB, Neo4j veya Infinispan gibi).

Ayrıca, boş zamanlarımda, bir dahili nesne modelini harici bir modele eşlerken ortaya çıkanlar gibi, fasulyeden fasulyeye eşlemeler için bir kaynak kod üreteci olan MapStruct üzerinde çalışıyorum. Küçük bir fikirden bir “yan projeye” kadar, son yıllarda MapStruct etrafında aktif bir kullanıcı ve geliştirici topluluğu gelişti ve bundan gurur duyuyorum.

Janssen: Seni nerede bulabilirim?

mırıltı:
beğen diye twit atıyorum @gunnarmorlingAyrıca in.relation.to/gunnar-morling ve gunnarmorling.de adreslerinde blog yazıyorum.

Janssen: Röportaj için teşekkürler ve JSR 380 ve diğer projelerinizle devam eden başarınız.


()




Haberin Sonu



 
Üst