“Fasulyelerin doğrulanması mikro hizmet mimarisi için çok kullanışlıdır”

Portakalkafa

Global Mod
Global Mod


  1. “Fasulyelerin doğrulanması mikro hizmet mimarisi için çok kullanışlıdır”

Java topluluğunda, Java spesifikasyonları (JSR) ve açık kaynak projeleri taleplerine olan bağlılığıyla gelişimi teşvik eden birçok ilginç insan var. Burada bazılarını sunmak ve onlarla projeleri hakkında konuşmak istiyorum. Bu kez JSR 380 – Bean'in Validation 2.0'dan Gunnar Morling ile konuştum.



Thorben Janssen: Merhaba, Gunnar, bize biraz bahset. Yazılım geliştirmeyi nasıl elde ettiniz ve bugün ne yapıyorsunuz?






Gunnar Morling



Gunnar Morling



Gunnar Morling: İlk programcı deneyimimi Windows 3.11 altında Turbo Pascal ile aldım. Çevrimiçi ticarette bilgisayar bilimi ve medya istasyonlarını inceledikten sonra, şimdi kış uykusu bağlamında çeşitli projeler üzerinde çalıştığım Red Hat üzerinde çalışıyorum. Uluslararası bir meslektaş ve topluluk üyeleri topluluğunda açık kaynaklı yazılımın geliştirilmesi her gün çok heyecan verici ve çeşitlidir.

Janssen: Java dünyasına seyahat etmezseniz özel olarak ne yaparsınız?

Morling:
Bilgisayarda çalışmak için bir tazminat olarak, temiz havada olmayı seviyorum, örneğin arkadaşlarla bir golf turu ile. Soğuk günler için geçen kış Arduino ile işçilik keşfettim.

Fasulye 2.0 doğrulaması için yeni JSR


JANSSEN: JSR 380 özelliklerinin avantajı – Beans 2.0'ın validasyonu. Beklenen değişikliklerden bahsetmeden önce, lütfen bize fasulyelerin doğrulanmasına kısa bir giriş yapın. Spesifikasyonun amacı nedir ve nerede kullanılır?

Morling:
Fasulyelerin doğrulanması, Java nesnelerinin doğrulanması için bir FI ve bir hedef tanımlar. Kısıtlamalar, aşağıdakiler gibi ek açıklamalar tarafından kullanılır. @Notnull,, @Min (10) VEYA @Patern (regexp = “[a-z]*”) ifade edildi.



Bir yandan, sadece API için doğrulamayı başlatabilirsiniz, diğer yandan, Bean'in doğrulaması, örneğin veritabanındaki bir varlık devam ederse, resmi bir maske gönderilir veya kalıntı istek işlenirse, otomatik kısıtlama testi gerçekleştiren JPA, JSF veya JAX-GRS gibi diğer birçok Java standardı ile entegre edilir. Önceden tanımlanmış kısıtlamalar gereksinimleri için yeterli değilse, projenin belirli ek açıklamalarını ve doğrulayıcılarınızı tanımlamak mümkündür.

Fasulye 1.1'in validasyonu, parametrelerin ve sonuçların sonuçlarının doğrulanması olduğundan. CDI veya Yay Çerçevesi gibi bir kap ile birlikte, bu, belirtilen yöntemlere uygun olarak çağrıldığında parametrenin otomatik olarak kontrol edilmesini ve geri dönüş değerlerini sağlar. Fasulyelerin validasyonu Java EE'nin bir parçasıdır, ancak örneğin, APUT'un zengin müşterilerdeki doğrulanması için Java uyarınca sorunsuz bir şekilde kullanılabilir.

Janssen: Sürüm 2.0 hangi değişiklikleri getirmeli ve JSR neden bu kadar geç başladı?

Morling:
Bean Validation 2.0 Odak noktası, Java 8 dilinin çeşitli yeni özelliklerinin kullanılması olacaktır:

  • Liste veya set olarak toplama türlerinin öğelerini doğrulamak için tanıtılan tür türlerinin kullanımı; Örneğin, Liste E-posta Bir listenin her öğesinin geçerli bir e -posta adresi olması gerektiğini ifade edin
    • Desteklemek java.util.optional ve JSR 310'dan yeni veri/saat veri türleri
    • Birkaç tane daha basit beyan @Model-uzakta bir mülk için @Repeatable[[[[[
    • Parametrelerin adları için yansıma için yeni arıları kullanarak yöntemin doğrulanması için en önemli hata mesajları
    • Belki de çok kompakt kısıtlamalar için lambda ifadelerinin kullanımı
Java 8 güncellemesine ek olarak, diğer kullanıcıların işlevsellik istekleriyle de yüzleşmeyi planlıyoruz. Bu, örneğin, bir modelde yazılmadan önce değiştirilmiş özelliklerin değerlerini doğrulamak için tek tek özellikler üzerindeki kısıtlamaların sırasına (şimdiye kadar SO -Constructed doğrulama grupları gereklidir) veya bir API ile geçerlidir. JSR 354 (“Para ve Para”) veya JavaFX gibi diğer teknolojiler ve standartlarla entegrasyon da gündemdedir. Buna ek olarak, gerekirse fasulye doğrulamasını hazırlamak için Java 9 ve yeni Java modülleri sistemini takip ediyoruz.

Tüm bunlarda, topluluğun deneyimine ve gereksinimlerine dayanıyoruz. Bu, API'daki olası iyileştirme seçenekleri hakkında yenilikler ve pratik geri bildirim önerilerinin çok hoş karşılandığı anlamına gelir.

Sorunun ikinci kısmı: Bean 1.1'in doğrulanmasının tamamlanmasından sonra, başlangıçta topluluğa o anda yenilikleri denemek ve günlük uygulamada yeterli bir deneyim kazanmak için zaman vermek istedik. Başından beri, birkaç yıl boyunca yeni sürüm üzerinde çalışmak yerine yönetilebilir miktarda değişiklik ile oldukça kompakt bir programı takip etmek de bizim fikrimizdi.

Java EE 8 ve MicroProfips ile Fasulye 2.0'ın doğrulanmasına nasıl uyum sağlar?


JANSSEN: Oracle bir süredir Java EE'ye olan ilgisini kaybetmiş gibi görünüyordu. Bununla birlikte, daha fazla gelişime olan ilgi yakın zamanda onaylanmış ve en kesin planlar Javaone'da açıklanmalıdır. Java EE'nin geleceğini nasıl görüyorsunuz ve fasulye doğrulama özellikleri hangi rolü oynuyor?

Morling:
Büyük ilgi ile son gelişmeleri not ettim ve Javaone'daki reklamlar konusunda çok hevesliyim.

İş uygulamaları için standart bir platform fikri benim için herhangi bir cazip kaybetmedi ve bence Java EE gelecekte bu platform olmaya devam edebilirse, kullanıcı topluluğunun çıkarlarını ciddiye alıyor ve bulut dağıtımları veya mikro hizmet mimarileri gibi gelişmelerle ilgili sorular için çözümler buluyor.

Bununla birlikte, çok sayıda şirketin Google veya Facebook gibi iskele ve küçültme iskele gereksinimlerine sahip olmadığı ve genellikle işlem veya talep/yanıt için basit talepler gibi kanıtlanmış ilkelerle çok iyi sunulmaya devam edeceği unutulmamalıdır.

Bean 2.0'ın validasyonu Java EE 8'in bir parçası olmalı ve tüm uygulama düzeylerindeki nesnelerin girişi ve doğrulanması için seçimi çözmeye devam etmelidir. Java-ee yığınının diğer teknolojileri ile yakın entegrasyon, cazibesine ve üniform bir “geliştirici deneyimine” katkıda bulunmalıdır.

JANSSEN: Bir diğer ilginç gelişme, çeşitli uygulama sunucularının tedarikçilerinin mikro hizmetler için ortak bir temel oluşturmak istedikleri mikroprofiller için girişimdir. Fasulyelerin validasyonu 1.0 mikropropile dahil edilmemeli, ancak sonraki sürümlerde olası bir bileşen olarak değiştirilir. Bir mikro hizmet mimarisinde fasulyelerin doğrulanmasının kullanımı hakkında ne düşünüyorsunuz? Ve fasulyenin doğrulanmasının gelecekte bir mikropro -filos olma olasılıklarını nasıl görüyorsunuz?

Morling:
Bence Bean'in doğrulaması mikro hizmet mimarisi için çok yararlı, örneğin farklı hizmetler arasındaki kalıntı istekleri doğrulamak için.

Birkaç mikro hizmet çok farklı teknolojik gereksinimlere sahip olabilir. Bu nedenle, gözlerimde, geliştiricilerin gerekli gereksinimleri seçebileceği CDI ile birbirine bağlı çeşitli teknolojilere sahip bir araç kutusu gibi bir mikro hizmet platformu tasarlamak istenecektir.

Tabii ki, fasulye doğrulanmasının gelecekteki mikropro -philos versiyonuna dahil edilmesini memnuniyetle karşılıyorum. Ancak o zamana kadar, öncelikle geliştiricilerin mikroprofiller kullanma biçimleriyle deneyim kazanabiliriz ve elbette 1.0 mikropro -philos ile çok iyi çalışmak için çalışacağız.

JANSSEN: Fasulyelerin doğrulanması hakkında daha fazla bilgi edinebilirsiniz ve daha fazla gelişmeye katılmak için hangi seçenekler var?

Morling:
Merkezi başlangıç noktası ana sayfamız yakın zamanda yeniden tasarlanan beanvalidation.org. Geçmişte ve özelliklerin geliştirilmesi hakkında tüm bilgiler vardır.

İşbirliği fırsatları farklıdır. Geri bildirimler ve öneriler posta listemize açıktır. Red Hat açık kaynak fikrini yaşar ve nefes alır, fasulye doğrulaması bir istisna değildir. Sonuç olarak, arıların kaynakları, spesifikasyonları, TCK (test uyumluluk kiti) ve referans uygulamanın ibernates doğrulayıcısı GitHub'da serbestçe kullanılabilir, çekme istekleri her zaman kabul edilir. Ayrıca JSR 380 için uzman grubuna üye olabilirsiniz, detaylar JSR ana sayfasında bulunabilir.

Başka ne?


Janssen: Başka hangi projeler izliyor?

Morling:
Red Hat'taki kış uykusuna ekibi içindeki fasulye ve hazırda bekletme validatörünün validasyonuna ek olarak, hazırda bekletme araştırmaları üzerinde çalışın (etki alanı modelleri/elasticsearch için tam metin aramalarının basit bir şekilde uygulanmasına izin verir) ve NEAQL mağazasında JPA varlıklarının kalıcılığını, Mongodb, neo4 veya Infinisp gibi sürdürmeye izin verir).

Ayrıca, bir modelin harici bir olaydaki dahili nesnelere eşlenmesi gibi, fasulyeden boccone'a alay etmek için bir kaynak kodu olan harita üzerinde çalışıyorum. “İkincil proje” için küçük bir fikre dayanarak, son yıllarda Maptict etrafında çok gurur duyduğum aktif bir kullanıcı ve geliştiriciler topluluğu geliştirdi.

Janssen: Kendinizi nerede bulabilirsin?

Morling:
Twitter gibi @GunnormorlingRelation.to/gunnar-borling ve gunnarmorling.de.

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


((()))
 
Üst