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
akin@javaturk.org 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

Java Kodunuzun Nesne-Merkezli Olmadığının 10 İşareti Nesneler  hizmet  için  vardırlar,  veri  yerine   getirilecek  hizmet  için  vardır.

Detaylı

1. Bölüm Java`ya Giriş

1. Bölüm Java`ya Giriş Ø Oak  ismi  bu  sırada  Java  olarak  değişArildi,  

Detaylı

8. Bölüm Java Nesneleri: Organizasyon

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...

Detaylı