Java iş dünyasında Spring Framework bilmek neden önemlidir? İlle de şart mıdır? alt text

soruldu: 23 Nis '12, 07:04

mimaraslan's gravatar image

mimaraslan
2.2k6810794
cevap kabul oranı: 25%

değiştirildi: 27 Nis '12, 07:21


Spring framework bilmek zorunlu degil bence, Spring ile yapilan bircok seyi baska frameworklerle yada direk java EE 6 kullanarak da yapabilirsiniz.

Artik Java EE 6 ile frameworkler cagi kapaniyor ve AddOns cagi basliyor denilebilir Java EE dunyasinda. Artik Full Stack frameworkler yerine Java EE 6 + gerekli olan lib / ozellikler ekleniyor. Ornegin bir JSF 2.x projesi yazacaksaniz Stateful, Stateless Beans, JPA kullanarak bircok seyi kolayca yazabilirsiniz (Spring deki bircok standart olmayan kodlama /annotation'lardan kurtularak!). Eger Security islerini kendiniz kodlamak istemiyorsaniz JBoss Seam Security, Spring Security yada Apache Shiro gibi secenekleri projenize ekleyebilirsiniz.

Java EE 6 oncesinde Spring veya JBoss Seam'in en onemli ozelligi Dependency Injection(DI - bagimliliklarin enjekte edilmesi) islerini ve daha bircok EE kodlamalari kolaylatirmasiydi. Bu ozellikler artik Java EE 6 icinde var. (Bakiniz DI - Context and Dependency Injection CDI vb. diger java EE 6 yeniliklerine)

Ayrica projenizdeki ihtiyaclara gore bircok kucuk eklemelerle standart java EE 6 yi kullanabilirsiniz.

Neden Spring bu kadar meshur o zaman ? J2EE zamaninda (EJB 3.0 oncesinde) standart j2ee ile enterprise projeleri yazmak cok problemliydi. Spring bu noktada bircok soruna kendi kodlamalariyla degisik cozumler sundugu ve performansli calistigi icin (ozellikle ejb container gerektirmeyen web server'lara deploy yapilabildigi icin) butun dunyada cok populerlesti.

JBoss Seam 2.x versiyonu ile bu sorunlara ejb 3.0 i kullanmaya baslayarak cozumler sunmaya basladi. JBoss Seam, Spring'e gore daha cok Java EE standartlarina uygun cozumler uretti (bu cozumlerin cogu zaten Java EE 6 icine spesifikasyonlara eklendi bakiniz DI - CDI vb. diger java EE 6 yeniliklerine)

Direk standart Java EE 6 kodlayarak ozellikle EJB'lerde interface yazma zorunlulugu da olmadan projelerinizi yazabilirsiniz.

Java dunyasindaki genel yaygin gorus su: Eski ve varolan projelerde hangi framework varsa devam ettirilmesi, yeni yazilacak projelerde ise Java EE 6 standartlarinin kullanilmasi yonunde. Tabi ki her firmanin tercihleri ve yogurt yeyisi farkli bu konuda :)

permanent link

cevaplandı: 25 Nis '12, 06:03

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

11

2 yıllık profesyonel java tecrübem içinde genelde core java ve jsp yazdım. İşsizler diyarına yeni katılmış biri olarak. Artık Türkiye'deki piyasada Spring Framework'unu çoğu danışmanlık ve telekomünikasyon şirketi zorunlu kılmaya çalışıyor. Girdiğim 10'a yakın mülakat var ve girmediğim telefonla görüştüklerimde bir o kadar vardır. Genelde Spring, Hibernate yada JSF konusunda tecrübe arıyorlar. Yoğunluk olarak Spring üzerinde bir yoğunlaşma var. Bu yüzden 3 gündür, mimariye ve kavramlara hakim olmaya çalışıyorum, pek zorlamıyor fakat genelde bulduğum örnek ve yazılar hep Eclipse üzerinde uygulanmış bende NetBeans üzerinde bunların üstesinden gelmeye çalışıyorum. Hibernate ve JSF'yi beraber kullanmaya mimariyi kafamda oturttuğum gibi uygulamaya dökme çabasındayım.

Bir Java developer olarak sorunun ikinci kısmı için eğer orta derece ve üstü şirketlerde çalışmak istiyorsanız evet artık bu şart hale geldi.

Spring ile ilgili Türkçe döküman eksikliği tavan yaptığınıda araştırmalarımla görmüş ve kabullenmişte oldum. Öğrendiklerimi, okuduklarımı ve araştırdıklarımı yazıp, paylaşmak bu konuda benden sonrakilere yapacağım en güzel iyilik olsa gerek.

Bir buçuk yıl olmuş bu yazıyı yazalı, bu süreç içerisinde çalıştığım bir şirkette JSF,EJB, SOAP, REST gibi envayi çeşit JEE teknolojileri ile çalıştım ve 2 tane kurumsal uygulama ayağa kaldırdım. Spring içimde hep ukte olacak derken şuanki şirketimde JSF,Primefaces (Back Office uygulamalarda), kullanıcıya açık tarafta ise Spring, Spring MVC, Scalate, JUnit, Mockito vb. teknolojilerle haşır neşirim. Muadili olan bu teknolojilerin gördüğüm ve tecrübe ettiğim farkı ise, şu soruda belirttim.

<- Yorum linki ->

permanent link

cevaplandı: 23 Nis '12, 07:19

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

değiştirildi: 23 Ağu '13, 15:34

Cevaplarda da belirtildiği gibi Spring, J2EE ye mükemmel bir alternatif olduğu için ve bir çok şeyi kolaylaştırdığı için popüler olmuştur. Fakat özellikle son versiyonuyla (6) birlikte JEE artık oldukça olgun ve Spring ile boy ölçüşecek duruma gelmiştir. Kısa sürede büyük ilgi toplamasıyla beraber bir çok şirket JEE6 denemeye başlamıştır ve bu sayede de kendini kanıtlamış bir duruma gelmiştir. Yani bir çok şirket artık ya Spring ya da JEE6 tecrübesi isteyecektir. Benim tavsiyem her iki konu hakkında da bilgi sahibi olmanız ve mümkün olduğunca kendi kendinize öğrenmeye çalışmanız. Spring hakkında ücretsiz bir video eğitim çalışmam var ve çok basit şekilde Spring anlatmaya çalışıyorum. Zaman buldukça eklemeye devam edeceğim. www.barisdere.com sitesine bakabilirsiniz.

permanent link

cevaplandı: 17 Ağu '12, 04:40

BarisDere's gravatar image

BarisDere
4612
cevap kabul oranı: 0%

Kurumsal proje = java SE + enterprise teknolojiler Kurumsal projelerde java teknolojileri standart sağladığı ve maliyeti düşürüp hızı artırdığı için tercih sebepleridir. Örneğin maven-spring-hibernate en çok tercih edilenlerdir. Ayrıca jpa-ejb3 tercihi de giderek artmaktadır. Dolayısıyla yazılımcıların bunları bilme zorunluluğu doğmuştur.

permanent link

cevaplandı: 25 Nis '12, 04:14

kam's gravatar image

kam
1.3k82032
cevap kabul oranı: 16%

Play Framework, Ruby on rails, vs.. gibi springe göre hamallığı çok daha az olan onlarca yeni nesil mvc framework varken neden hala bu kadar diretiliyor peki bu platformlar? 1 senedir spring ile geliştirilen bir projenin içerisindeyim, ondan önce play framework (1.2.x java) ile geliştirdiğim aynı projenin spring te tekrar oluşturulmasına şahit oldum (malesef soruda sorulan ile aynı muhabbet, proje bitmeden outsource edilen firma değiştirildi ve yeni firma spring framework te diretti), play framework te yaptığım aynı işin spring te yapılması için nereden baksanız 2-3 katı süre ve kod gerekiyor.. üstüne bir de play frameworkteki gibi yazdığınız anda uygulamayı çalıştırıp test etmek gibi bir lüksünüz yok, en ufak bir değişiklikte baştan compile et, çalıştır, vs.. (bu bile kodu geçtim üretkenlik açısından işleri çko yavaşlatıyor) Açıkçası spring konusunda bilgim benim kendi uğraştığım bölge kadar, ben java ile play framework sayesinde tanıştım, ve springle 1 senedir uğraştıktan sonra bundan sonraki java hayatımda da play framework te kalmaya devam etmeyi planlıyorum :)

permanent link

cevaplandı: 24 Ağu '13, 18:15

dreampowder's gravatar image

dreampowder
3.3k112849
cevap kabul oranı: 23%

@dreampowder Spring veya diger Java Framework'leri icin degil de genel olarak sunu sormak gerekli bence: Java web projeleri gelistirmede ne kadar produktif? Java'da gunlerce ugrastigimiz seylerin Python, Ruby gibi dinamik dillerde 5 dakikada oldugunu gormek beni dusunduruyor! Java Enterprise alaninda guclu ve Telekomunikation veya Banking projelerine uygun olabilir fakat kucuk ve orta ölcekli web projelerinde produktif degil, bu gercek.

(26 Ağu '13, 03:40) CemIkta ♦ CemIkta's gravatar image

@Cemilkta Haklısınız, aslında java diye diretmek te ne kadar dığru onun da düşünülmesi gerekiyor. Ama hadi javaya senelerini vermiş bir insan, yeni bir dil öğrenmek için belki vakti yok, ya da bu birikimini bir kenara bırakıp yeni bir dil öğrenmeyi gözü yemiyor diyelim.. En azından sizin de dediğiniz gibi çok daha dinamik ve rahat çalışabileceği birçok yeni framework yada yöntem var artık. Bir de ben bu "çok büyük projeler" den tam olarak ne kastedildiğini gerçekten bilmiyorum, mesela banking projelerinde neden daha uygundur? Kullanılan kütüphanelerden dolayı mı? Yoksa başka birşey mi?

(26 Ağu '13, 04:18) dreampowder dreampowder's gravatar image
1

Java Banking gibi yogun transaction gerektiren, daginik calisabilen projelerde bircok gelismis arac gerec setine sahip. Ayni seyleri Python, Ruby dunyasi araclariyla kiyaslarsaniz Java dunyasinda arac gerec setinin cok lux oldugu gorulur.

Fakat dinamik dilleri ogrenmek Java bilen programcilar icin gercekten cok kolay. Java bilen birisi Python'u 1 gunde ogrenebilir. Dinamik dillerin ogrenim araligi java,c,c++ gibi dillere gore daha kisa.

(26 Ağu '13, 05:16) CemIkta ♦ CemIkta's gravatar image

Teşekkürler, şimdi anladım :), ben daha çok scala veya ruby yolundan ilerlemeyi planlıyorum, bakalım neler olacak :)

(26 Ağu '13, 16:41) dreampowder dreampowder's gravatar image

Spring bilmeyen kişilerin dev projeleri kodlaması çok zor. Kodlasa bile bakımını nasıl yapacak? Spring bakımı da çok kolaylaştırıyor.

permanent link

cevaplandı: 25 Nis '12, 04:18

nerminson's gravatar image

nerminson
5214915
cevap kabul oranı: 3%

Nereye is basvurusu yaptimsa Spring var mi dediler. Olmayinca olmuyor is vermiyorlar.

permanent link

cevaplandı: 25 Nis '12, 09:14

betulcamsiler's gravatar image

betulcamsiler
160139
cevap kabul oranı: 0%

Spring çok dev bir çatı üzerinde yıllarca çalışmak lazım.

permanent link

cevaplandı: 27 Ağu '12, 13:04

handanakbudak06's gravatar image

handanakbudak06
5512
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×128
×18

Soruldu: 23 Nis '12, 07:04

Görüntüleme: 10,626 kez

Son güncelleme: 26 Ağu '13, 16:41

powered by BitNami OSQA