Java ile Nesne-Merkezli Programlama
Transkript
Java ile Nesne-Merkezli Programlama
rg rk .o tu va .ja w Akın Kaldıroğlu w w Java ile Nesne Merkezli Programlama www.javaturk.org Şubat 2014 rg Küçük Bir Konu rk .o Ø Bu dosya ve beraberindeki tüm, dosya, kod, vb. eği=m malzemelerinin tüm w w .ja va tu hakkı Akın Kaldıroğlu’na aiDr. Ø Bu eği=m malzemelerini kişisel bilgilenme ve gelişiminiz amacıyla kullanabilirsiniz ve isteyenleri hHp://www.javaturk.org adresine yönlendirip, bu malzemelerin en güncel hallerini almalarını sağlayabilirsiniz. Ø Yukarıda bahsedilen amaç dışında, bu malzemelerin, =cari olsun/olmasın herhangi bir şekilde, toplu bir eği=m faaliye=nde kullanılması, bu amaca yönelik olsun/olmasın basılması, dağıQlması, gerçek ya da sanal ortamlarda yayınlanması yasakQr. Böyle bir ih=yaç halinde lüRen benimle ile=şime geçin. Ø Bu eği=m malzemelerine katkıda bulunmak ya da eleş=rilerinizi bana iletmek isterseniz çok sevinirim. Ø Bol eğlenceli ve Java’lı günler dilerim. Akın Kaldıroğlu w [email protected] www.javaturk.org 2 rg Java’nın Kısa Tarihi rk .o Ø 1991 yılında Sun, kapalı kapılar ardında ve Patrick tu Naughton, Mike Sheridan ve James Gosling önderliğindeki küçük bir takımla bir proje başla\. va Ø 13 kişiden oluşan ve “Green Team” (Yeşil Takım) adı verilen w .ja bu grubun amacı ITC dünyasında geleceği tahmin edip ona yönelik AR-‐GE yapmakQ. w Ø Ve bu takım da geleceğin, kişisel ve ev elektronik w cihazlarında olduğunu öngörüp bu alana yöneldi. www.javaturk.org 3 rg *7 rk .o Ø 18 aylık hummalı bir çalışmadan sonra w w w .ja va tu 1992 yazında “*7”, “Star Seven” isimli ve dokunmalı ekrana sahip bir kontrol cihazı geliş=rdirler. Ø Bu cihaz TV, video oynaQcısı ve müzik se= gibi pek çok ev cihazını kontrol edebiliyordu. Ø Cihazın bu yeteneği, plaRormdan bağımsız bir dile sahip olmasından kaynaklanıyordu. Ø James Gosling bu dile “Oak” adını vermiş=. www.javaturk.org 4 rg Java ve Internet rk .o Ø Bu proje pek çok kablolu TV şirke=ne teklif tu edildi ama zamanının ilerisinde olduğundan kabul görmedi. va Ø Ama takımın ileri gelenleri o sırada, w .ja geliş=rdikleri altyapının Internet’e çok uygun olduğunu farkeDler. w Ø Ve hemen yönlerini değiş=rip, ismi daha w sonra resmi olarak HotJava olan Java-‐ tabanlı bir tarayıcı geliş=rdiler: WebRunner www.javaturk.org 5 rg İç Giyim Olarak Oak w w w .ja va tu rk .o Ø Gosling explains: "We had already been developing the kind of `underwear' to make content available at the same @me the Web was being developed. Even though the Web had been around for 20 years or so, with FTP and telnet, it was difficult to use. Then Mosaic came out in 1993 as an easy-‐to-‐use front end to the Web, and that revolu@onized people's percep@ons. The Internet was being transformed into exactly the network that we had been trying to convince the cable companies they ought to be building. All the stuff we had wanted to do, in generali@es, fit perfectly with the way applica@ons were wriTen, delivered, and used on the Internet. It was just an incredible accident. And it was patently obvious that the Internet and Java were a match made in heaven. So that's what we did." www.javaturk.org 6 rg Oak’tan Java’ya rk .o Ø Oak ismi bu sırada Java olarak değiş=rildi, tu Ø Ve 23 Mayıs 1995’te Java resmi olarak piyasaya sunuldu. va Ø Ve o tarihlerde ne Java’yı geliş=renlerin ne de bir w .ja başkasının tahmin edemeyeceği yoğunlukta bir ilgiyle karşılaşQ. w Ø 2010 yılında Oracle’ın Sun’ı saQn almasıyla da Java el w değiş=rmiş oldu. www.javaturk.org 7 rg Java Nedir? rk .o Ø Sun, 1995’te Java’yı sunarken yayınladığı ve “Java’nın tu babası” James Gosling’in kaleme aldığı bir yazıda Java’yı şöyle tanıQyordu: Ø Java: Basit, nesne-‐merkezli, ağlarda yetenekli, yorumlanan, .ja va sağlam, güvenli, mimari olarak tarafsız, taşınabilir, yüksek performanslı/başarımlı, çok kanallı, dinamik bir dil. w Ø Java: A simple, object-‐oriented, network-‐savvy, interpreted, w w robust, secure, architecture neutral, portable, high-‐ performance, mulHthreaded, dynamic language. www.javaturk.org 8 rg Java BasiDr I tu rk .o Ø Java’nın o kadar da basit değildir aslında, Ø Java, ataları olan C ve C++ dillerinden daha basiDr. yapıları içermez: .ja Ø Pointer aritme=ği, va Ø Çünkü bu dillerde olan ve karmaşıklık ge=ren özellikleri ve Ø Programcıya bağımlı bellek yöne=mi (memory management), w Ø İşlemci çoklu kullanımı (operator overloading), w w Ø PlaRorm bağımlı yapılar. Ø Java soyut dolayısıyla daha yüksek seviyeli bir dildir. www.javaturk.org 9 rg Java BasiDr II .ja va tu rk .o Ø Java bu dillere göre aşağıdaki avantajlara da sahip=r: Ø Standartlar üzerine kurulmuş olmak, Ø PlaRorma bağlı olmayan yapılara (örneğin basit veri yapıları) sahip olmak, Ø Daha derli-‐toplu geliş=rme ortamlarına sahip olmak, Ø Temel dil dışında da kurumsal ve gömülü uygulama yapılarına sahip olmak Örneğin generic yapıları w Ø w w Ø Daha küçük ve sade bir dil ile daha güçlü olmayı tercih eder, Ø Ama özellikle 5.0 sürümüyle başlayan eklemelerle Java bayağı büyüdü. www.javaturk.org 10 rk .o Ø Java nesne-‐merkezli bir dildir. rg Java Nesne Merkezlidir I Ø Nesne-‐merkezli diller, daha çok aşina olunan prosedürel/ va tu yordamsal dillerden çok farklıdırlar. Ø Yordamsal dillerde en önemli kavram/soyutlama yordam/ w w .ja prosedür/fonksiyondur ve bu yapılar, bir problemi alt problemlere bölüp, her birini adım adım (step-‐wise decomposi=on) tanımlamakta kullanılır. Ø Fakat nesne-‐merkezli diller tamamen nesne kavramı w üzerine otururlar. www.javaturk.org 11 rg Nesne Nedir? rk .o Ø Nesne, insan zihninin kendisine yöneldiği, özellik ve tu davranışlara sahip, fiziksel olan ya da olmayan herhangi bir olgudur. Ø Yazılımda her =p nesne için, verisi ile davranışını bir paket Sınıf = Veri + Davranış w w .ja va haline ge=rip sarmalayan (encapsulaHon) ve adına genelde sınıf (class) denen şablonlar oluşturulur. Ø Nesneler, şablonlardan yani sınıflardan üre=lmiş çalışma w zamanı yapılarıdır. www.javaturk.org 12 rg Nesne ve Varlıklar/Olgular rk .o Ø Nesnelerin çoğu zaman gerçek dünyadaki varlıkları ya da w w w .ja va tu olguları ifade eDkleri düşünüldüğünde, nesnelerin özellikleri gerçek varlıkların/olguların özelliklerine, davranışları ise varlıkların/olguların birbirleriyle olan ile=şimine karşılık geldiği söylenebilir. www.javaturk.org 13 rk .o Ø Herşey bir nesnedir. rg Alan Key’in 5 Kuralı tu Ø Program, birbirlerine mesaj (message) göndererek ne va yapmalarını belirten nesnelerden oluşur. .ja Ø Her nesne diğer nesnelerden (associa=on/composi=on) w oluşur ve hayzada yer kaplar. w w Ø Her nesnenin bir =pi (type) vardır. Ø Aynı =pten olan nesneler aynı mesajları alabilirler. www.javaturk.org 14 rg Java Nesne Merkezlidir II rk .o Ø Java’da basit veri =pleri hariç herşey, bütün =pler, bir tu nesnedir. Ø Çok güçlü kapsülleme (encapsulaHon) ve bilgi saklama .ja va (informaHon hiding) mekanizmaları vardır. Ø Arayüz (interface) ile gerçekleşHrme (implementaHon) w w w arasında çok açık bir ayrım vardır. www.javaturk.org 15 rg Java Ağlarda Yeteneklidir rk .o Ø Tarihi olarak Java’nın ve Web devriminin doğumu aynı tu döneme rast gelmiş=r. Ø Bu yüzden Java, ağ ve ilgili yapılar akılda tutularak .ja va tasarlanmış ilk dildir. w w w Ø Java ile bilgisayar için değil ağ için yazılım geliş=rirsiniz. Ø HTTP ve HTTPs gibi en yaygın Web protokolleri Ø Web Servisleri Ø Uzak nesneler (remote objects) Ø Ve Telnet, FTP vs. gibi diğer bütün protokoller www.javaturk.org 16 rg Java Yorumlanır rk .o Ø PlaRormdan bağımsız olabilmesi için Java kaynak kodları doğrudan makina koduna derlenmez, va dosyaları) derlenir. tu Ø Java kaynak kodları (.java dosyaları), Java bytecodeuna (.class Ø Bytecode, JVM’in komutlarıdır ve çalışma zamanında (run-‐ w .ja =me) JVM tarayndan yorumlanır. w Ø JVM (Java Virtual Machine ya da Java Sanal Makinası), w donanım ve işle=m sistemi üzerinde çalışan sanal bir plaRormdur. www.javaturk.org 17 rg Java Yorumlanır rk .o Ø Aslında Java hem derlenen (compiled) hem de yorumlanan (interpreted) bir dildir. tu Ø Java kaynak kodları (.java dosyaları) Java bytecodelarına .ja va (.class dosyaları) derlenir. Ø Bytecodelar çalışma zamanında (run-‐=me) JVM tarayndan yorumlanır. w Ø Dolayısıyla Java’da kod yazarken, nihai çalışma ortamını w bilmeniz gerekmez. w Ø Taşınabilir (portable) www.javaturk.org 18 rg rk .o tu va .ja w w w www.javaturk.org 19 rg Bytecode Nedir? rk .o Ø Bytecode, JVM’in makina dilidir, Ø Bir byte uzunluğunda olduğu için böyle adlandırılmışQr. tu Ø Bytecode, herhangi bir işlemciye özel değildir ya da bir va başka deyişle tamamen ve sadece JVM’e özeldir, .ja Ø Bytecodelar, JVM tarayndan çalışma zamanında (run-‐=me) plaRorma özel komutlara çevrilir: w w Ø Yorumlama w Ø Bu şekilde Java’nın plaRormdan bağımsız ya da taşınabilir olması sağlanır. www.javaturk.org 20 rg JVM rk .o Ø JVM (Java Virtual Machine ya da Java Sanal Makinası), tu donanım ve işle=m sistemi üzerinde çalışan sanal bir plaRormdur. .ja va Ø Hemen her plaRorm için en az bir JVM mevcuHur. Ø Derlenmiş Java kodlarıyla plaRorm arasında bir katman w w w oluşturur ve aynı bytecodeların farklı plaRormlarda değişmeden, aynı şekilde çalışmasını sağlar. www.javaturk.org 21 rg rk .o tu va .ja w w w www.javaturk.org 22 rg rk .o tu va .ja w w w www.javaturk.org 23 rg rk .o public class Selam{ public String selamSoyle(String isim){ return "Selam " + isim + " :)"; } tu } va public class SelamTest { w } w w .ja public static void main(String[] args) { Selam selam = new Selam(); String cevap = selam.selamSoyle("Ali"); System.out.println(cevap); } www.javaturk.org 24 rg Java Taşınabilirdir rk .o Ø Java tanımlı standartlar ve şartnameler (specificaHons) üzerine kurulmuştur. Ø Bu açıdan Java’da gerçekleş=rmeye (implementa=on) bağlı Örneğin int veri =pi her yerde 32 biDr. va Ø tu hiçbir noktanın olmaması amaçlanmışQr. .ja Ø Ayrıca, Java dili ve JVM, plaRormlarla alakalı sadece en w w w genel ön kabullere sahip=r. Ø Bu durum Java’nın plaWorm bağımsızığı ve taşınabilirliğinin sağlayıcısıdır ve Java programcısına üzerinde çalışQğı ortamdan bağımsız davranma gücünü verir. www.javaturk.org 25 rg WORA rk .o Ø Başından bu yana bir kere yaz her yerde çalışPr (Write tu Once, Run Anywhere, WORA) Java’nın taşınabilirlik konusundaki hedefidir. va Ø Tabi olarak bu prensibin geçerli olması için programcı da .ja herhangi bir plaRorma özel kod yazmamalıdır. w Ø Java’yı uzunca süredir uygulayanlar, bir kere yaz her yerde w w test et ☺ (Write Once, Test Anywhere, WOTA) prensibinin daha doğru olduğu üzerinde hemfikirdirler. www.javaturk.org 26 rg Java Sağlamdır rk .o Ø Sağlamlık (robustness) çalışma zamanı güvenirliği olarak tu tanımlanır. Ø Java, dayanıklı (reliable) ve sağlam yazılımlar üretmek için tasarlanmışQr. va Ø Java güçlü bir =p sistemine sahip=r dolayısıyla hem derleme w w w .ja zamanında hem de çalışma zamanında =p uyumu ve çevrimi (cast) kontrol edilir, Ø Sıra dışı durumları ele almak için mekanizma oluşturulmuştur (excep=on handling), Ø Bellek yöne=mi otoma=k=r, programcıya bırakılmamışQr. Ø Ve daha pek çok derleme/çalışma zamanı kontrollerini içerir. www.javaturk.org 27 rg Java Güvenlidir rk .o Ø Java’nın ağ ortamlarında kullanılmak için tasarlanmış va tu olduğu belir=lmiş=. Ø Bu yüzden Java, ağ ortamlarında bulunmanın ge=rdiği tehlikelere karşı koyacak şekilde yapılandırılmışQr. Ø Yabancı makinlardaki nesnelerin, yerel makinadaki nesnelere ve işle=m sistemine erişimi kontrol alQndadır. .ja Ø Java’nın ilk yıllarında duyulan güvenlik açıklarına arQk pek w rastlanılmamaktadır. Ø Java’daki güvenlik API’ları sayesinde şifrelemeden w w (encryp=on) sayısal imzalara (digital signatures) kadar her türlü güvenlik kodu yazılabilir. www.javaturk.org 28 rg Java Mimari Olarak Tarafsızdır rk .o Ø Java, birbirlerinden farklı, pek çok değişik plaRormun va tu bulunduğu ağ üzerinde çalışmak için tasarlandığından, herhangi bir plaRormu varsaymaz, plaRormlardaki ortak özellikler dışında herhangi bir ön kabulü yoktur. Ø Bu durum Java’nın sanal bir makina üzerinde çalışması ve w w .ja hiçbir plaRorma varsaymayan bir şekilde, standartlar üzerine inşa edilmesinin bir sonucudur. w Ø Java bytecode da herhangi bir plaRorma bağımlı değildir. www.javaturk.org 29 rg Java Yüksek Başarımlıdır I rk .o Ø Bu özelliği tabiki açıklanmaya muhtaçQr. Ø Nesne-‐merkezli diller, =p hiyerarşileri ve polimorfizm gibi tu özelliklerinden dolayı zaten çalışma zamanında çok iş yaparlar. va Ø Java, taşınabilir ve mimari olarak tarafsız olmak için sanal w .ja makina gibi bir ara katman üzerinde çalışmayı tercih etmiş=r, Ø Ayrıca Java sağlam bir çalışma zamanı kurgulamak için çalışma zamanında daha pek çok kontroller sahip=r. w Ø Bu ve benzeri durumların Java’yı tabii olarak çalışma w zamanında daha yavaş kılabilmektedir. www.javaturk.org 30 rg Java Yüksek Başarımlıdır II rk .o Ø Java’nın çalışma zamanı performansını ar\rmak için çok mesafe katedilmiş=r. Ø Etkin derleyici (Op=mizing compiler) va tu Ø Etkin JIT ve benzeri teknolojiler Ø Java’cılar da performanslı kod yazmak için hem hız hem de w w w .ja bellek tüke=mi açısından, diğer dilleri kullananlara göre daha bilgili olmalıdırlar. www.javaturk.org 31 rg Java Yüksek Başarımlıdır III rk .o Ø Ama unutulmamalıdır ki projeler daha çok ih=yaçların tu yanlış kavranması vs. gibi sebeplerden başarısız olmaktadır, performanstan değil. va Ø Ayrıca performans ve ölçeklenebilirlik (scalability) genel w w w .ja olarak mimarinin bir özelliğidir ve mimariler bu konulardaki hedefler gözönüne alınarak tasarlanmalıdır. www.javaturk.org 32 rg Java Çok Kanallıdır rk .o Ø Kanal (thread), bir işlem/süreç (process) içinde oluşturulan va tu küçük bir işlem/süreç=r (lightweight process). Ø Aynı işlem içinde çalışan farklı kontrol akışlarına kanal denir. Ø Kanallar aynı işlem içinde çalışQklarından, birçok işi aynı anda ve daha hızlı ve etkin olarak yerine ge=rebilirler. .ja Ø Böylece daha yetenekli ve hızlı cevap veren yazılımlar w geliş=rilebilir. Ø CPU ve plaRormların çok hızlı hale gelmesi, dillerdeki çok w w kanallı özellikleri kullanmamızı gerek=rmektedir. www.javaturk.org 33 rg Java Dinamik=r rk .o Ø .class dosyalarındaki Java =plerinin daha program tu derlenirken hazır olmaları şart değildir, =pler JVM’e çalışma zamanında her hangi bir anda yüklenebilir. Ø Dolayısıyla pek çok dilde var olan derleme zamanındaki .ja va sta=k bağlanQ kurma (sta=c linking) genel olarak Java’da yoktur. w Ø Bu da ağ üzerinde çalışan ve derleme sırasında erişilmesi w w mümkün olmayıp, çalışma zamanında ulaşılan nesnelerin dinamik olarak JVM’e yüklenebilmesini sağlar. www.javaturk.org 34 rg Java’nın Sahibi Kimdir? rk .o Ø Excel’in sahibinin Microso| olması anlamında Java’nın tu sahibi yoktur. Ø 2010 yılına kadar Java’nın orijinal geliş=ricisi olan Sun, .ja va Java’nın sahibi ve lisanslayıcısıydı. Ø 2010 yılında Oracle Sun’ı saQn alarak, Java’nın sahibi ve w w w lisanslayıcısı oldu. www.javaturk.org 35 rg Java’yi Kim Geliş=rmektedir? tarayndan geliş=rilmektedir. rk .o Ø Java, JCP (Java Community Process, hHp://www.jcp.org ) Ø JCP, kişi ve kuruluşların serbestçe kaQlabildiği ve kararların oy va tu çoğunluğu ile verildiği milletlerarası bir ortamdır. Ø Çok farklı bilgi ve tecrübeye sahip binlerce kişi ve kurum JCP w .ja çaQsın alQnda Java’nın gidişaQnı belirlerler. w Ø Her ne kadar Oracle (eskiden Sun), JCP’de çok etkin olsa ve w bu yüzden eleş=rilse de Java’nın geleceği çok daha demokra=k yollarla belirlendiği söylenebilir. www.javaturk.org 36 rg JSR I rk .o Ø JCP’nin üyeleri yeni bir Java teknolojisini Java Specifica=on tu Request (JSR) mekanizması ile teklif edebilirler. va Ø Her JSR’ın bir yürütücü heye= ve teknik bir lideri vardır. .ja Ø JSR’lar, içinde halka açık incelemenin de (public review) w w w bulunduğu bir dizi sa~adan geçip demokra=k bir oylama ile sonuçlandırılırlar. www.javaturk.org 37 rg JSR II va tu rk .o Ø Kabul edilen her JSR aşağıdaki üç şeyi üretmek zorundadır: Ø API’ı da içeren bir şartname (specifica=on) Ø Bir referans gerçekleme (reference implementa=on) Ø Teknoloji uyumluluk pake= (technology compa=bility kit) Ø Dolayısıyla her Java teknolojisi gerçekleş=rmesi, bu açık ve w .ja üzerinde mutabakat oluşmuş tarifname ve API’lar üzerine bina edilirler. w Ø İsteyen her kişi ve kurum da bu tarifnameler üzerine ürün w geliş=rip, bedava ya da ücre=yle lisanslayabilir. www.javaturk.org 38 rg Özgür Yazılım rk .o Ø Java’nın bu açık ve standartlara dayalı yapısı özgür tu yazılımların gelişmesine de yardımcı olmaktadır. Ø Java bugün açık kaynak kodlu (open source) yazılım .ja va felsefesine gönül verenlerin en fazla kullandıkları dil haline gelmiş=r. w Ø Bu sayede hemen her Java teknolojisinin =cari olmayan, w w açık kaynak kodlu gerçekleş=rmesi mevcuHur. www.javaturk.org 39 rg Java’nın Tipleri üç farklı =pini oluşturmuştur: rk .o Ø Sun, tek bir =pin yeterli olmayacağını düşünerek, Java’nın Ø Standart Java (Standard Edi=on, SE) tu Ø Mikro Java (Micro Edi=on, ME) va Ø Kurumsal Java (Enterprise Edi=on, EE) w w w .ja Ø Şu anda Ø Java SE’nin 7. sürümü vardır, 8.si 2014’e planlanmışQr Ø Java EE’nin 7. sürümü May 2013’da çıkmışQr, Ø Java ME’nin 3.3 sürümü vardır. Ø hHp://en.wikipedia.org/wiki/Java_version_history www.javaturk.org 40 rk .o tu .ja va Ø Java Ø Bir programlama dilidir, Ø Bir geliş=rme ortamıdır, Ø Bir uygulama ortamıdır, Ø Bir kurulum ortamıdır. rg Java Derken Neyi Kastediyoruz? Ø Bu anlamda Java, klasik programlama dillerinden farklı w w w olarak, çok geniş ama yeknesak bir yazılım geliş=rme eko-‐ sistemi sunar. www.javaturk.org 41 rk .o Ø Java’ya rg Java’ya Nasıl Başlarım? tu hHp://www.oracle.com/technetwork/java/index.html (eskiden hHp://java.sun.com ) adresine gidip JDK’in en son sürümünü indirip makinanıza kurarak başlayabilirsiniz. va Ø JDK’i kurduğunuz yerdeki bin klasörünü path’e koyup, w .ja komut saQrı (CMD, terminal, etc.) javac ile kodunuzu derleyip, java ile de çalışQrabilirsiniz. Ø İsterseniz Netbeans (hHp://www.netbeans.org) ya da w w Eclipse (hHp://www.eclipse.org), IntelliJIDEA ( hHp://www.jetbrains.com/idea/) gibi geliş=rme ortamlarını da kullanabilirsiniz. www.javaturk.org 42 rg Java’nın TabiaQ ve Zorlukları I rk .o Ø Java nesne-‐merkezlidir, dolayısıyla arQk prosedürel değil nesne merkezli düşünmeniz gereklidir. tu Ø Java, sürükle-‐bırak merkezli programlama yaklaşımından .ja va ziyade, C/C++ geleneğine daha uygun olarak, ne yazdığınızı tam olarak bilmenizi ister. w w w Ø Java şartname (specifica@on) temellidir: Ø Dolayısıyla şartname ve onu gerçekleş=ren farklı ürünlerin olduğunu anlamanız gereklidir. Ø Dolayısıyla aynı işi yapan, aynı API’ye sahip değişik ürünler vardır. www.javaturk.org 43 rg Java’nın TabiaQ ve Zorlukları II rk .o Ø Java, yazılım mimarilerine, tasarım şablonlarına (design paHerns) önem verir ve onları kullanır. tu Ø Java’da düşünmek ve modellemek yazmaktan daha önemlidir Ø Küçük bir şey yapmak için bile hiç tahmin edemeyeceğiniz kadar düşünmeniz gerekebilir. va Ø Dolayısıyla hızlıca sürükle-‐bırak şeklinde geliş=rme yerine tasarımı w .ja üzerine düşünülmüş, sürekle-‐bırak kullanılsa bile arka planda ne olup biDği iyice bilinen geliş=rme modeli daha uygundur. Ø Amaç, örneğin, 2000 saQrlık ASP ya da PHP sayfası yerine, çoğunlukla saQr saQr yazılmış ama çok daha modüler ve şablonlara uygun tasarlanmış 50-‐100 saQrlık JSP sayfaları yazmakQr. dildir: w Ø Java özgür ve açık kaynak kodlu yazılımların en yoğun olduğu w Ø Dolayısıyla aynı işi yapan açık kaynak kodlu pek çok farklı ürün vardır. www.javaturk.org 44 rg Java Ser=fikaları I rk .o Ø Java’yı, sistemli bir şekilde, temellerinden başlayarak .ja va tu öğrenmenin bir yolu da Oracle’ın Java ser=fikalarını almakQr. Ø Oracle’ın Java ser=fikaları, Java SE 5, 6 ve 7 ile Java EE 5, 6 ve 7 sürümleri ile Java ME üzerinedir. Ø Ser=fikalar, tecrübeniz olmasa bile temel bilginizin sağlam olduğunu göstermenin en güzel yoludur. w Ø OCP, Java Programmer olmak “tecrübem yok ama Java’nın temellerini iyi biliyorum” demek=r. w Ø Ser=fikalı olmak yurt dışı için çok önemlidir ve ülkemizde de w giDkçe daha fazla önem kazanmaktadır. www.javaturk.org 45 rg Neden Ser=fika? va Dolayısıyla, özellikle yeni mezunlar ya da Java’da yeni bir yapıyı öğrenmek isteyenler için önemlidir. .ja Ø tu rk .o Ø Ser=fika alan bir Java’cı, şu iki şeyi göstermiş olur: Ø Kendi kariyeri ile ilgili bir hedefi vardır ve buna doğru ilerlemektedir, Ø Tecrübesi olmasa bile gerekli bilgi donanımına sahip=r. w Ø Bu anlamda ser=fika sahibi olmak saygın bir durumdur. Ø Oracle’ın Java ser=fikaları hakkında w w hHp://educa=on.oracle.com/pls/web_prod-‐plq-‐dad/ ou_product_category.getFamilyPage?p_family_id=48 sayfasından geniş bilgi alabilirsiniz. www.javaturk.org 46 rg Java SE Ser=fikaları I rk .o Ø Java SE ser=fikaları, girişten başlayarak, Associate (OCA), w w w .ja va tu Professional (OCP) ve Master (OCM) adlarında 3 seviye olarak yapılandırılmışQr: www.javaturk.org 47 rg Java SE Ser=fikaları II rk .o Ø OCA ve OCP, çoktan seçmeli sınavlardır. tu Ø OCA, OCP için, OCP de OCM için zorunludur. va Ø OCA sınırlı ve giriş seviyede, OCP ise yerelleş=rme, çok w .ja kanallı programlama ve veri tabanı programlaması gibi konuları da içeren, dolayısyla Java SE bilgisini ölçmektedir. w Ø OCM ise bir proje ödevi ve bu ödevle ilgili yazılan bir w makaleyi içermektedir. www.javaturk.org 48 rg Java EE Ser=fikaları rk .o Ø Java EE ser=fikaları temelde farklı Java EE teknolojilerine w w w .ja va tu odaklanan ve onlardaki yetkinliği gösteren ser=fikalardır Ø Java EE 5 için OCP, Java EE 6 için ise OCE (Oracle Cer=fied Expert) www.javaturk.org 49 rk .o rg Java Ser=fikaları III OCM, Java EE 6 Enterprise Architect OCE, Java OCE, Java OCE, Java PlaZorm, PlaZorm, OCP, Java PlaZorm, Enterprise ME 1 Enterprise Enterprise EdiHon 6 Mobile EdiHon 6 EdiHon 6 Java ApplicaHon Web Enterprise Persistence Services Developer JavaBeans API Developer Developer Developer tu OCM, Java EE 5 Enterprise Architect OCP Java SE 5/6/7 OCA Java SE 5/6/7 w w w .ja va OCP, Java PlaZorm, OCP, Java OCP, Java OCP, Java EE 5 OCM, Java Enterprise EE 5 Web EE 5 Web SE 6 Business EdiHon 6 Services Component Developer Component Web Developer Developer Developer Component Developer www.javaturk.org 50 rg Daha Fazla AyrınQ İçin rk .o Ø Oracle’ın Java SE Ser=fikaları: OCA, OCP ve OCM w w w .ja va tu hHp://www.javaturk.org/?p=2375 Ø Oracle’ın Java EE 5 Ser=fikaları: OCP ve OCM hHp://www.javaturk.org/?p=2404 Ø Oracle’ın Java EE 6 Ser=fikaları: OCE ve OCM hHp://www.javaturk.org/?p=2431 www.javaturk.org 51
Benzer belgeler
Java Kodunuzun Nesne-Merkezli Olmadığının 10 İşareti
Nesneler
hizmet
için
vardırlar,
veri
yerine
getirilecek
hizmet
için
vardır.
8. Bölüm Java Nesneleri: Organizasyon
kullanabilirsiniz
ve
isteyenleri
hHp://www.javaturk.org
adresine
yönlendirip,
bu
malzemelerin
en
güncel
hallerini
almalarını
sağlayabilirsiniz.
Ø Yukarıda...