Java – Object Oriented Kavramı I
Daha önce bir object oriented programlama (OOP) dili kullanmadıysanız muhtemelen Java ile ilgili yazacağım yazılarda zorlanacaksınız. Ben her ne kadar bilindiğini varsayacağımı söylesem de bazı temel kavramlara değinmem gerektiğini düşündüm. Çünkü OOP kullanılsa bile bazı kavramlar bilinmiyor, ezbere kullanılıyor. Object, class, inheritance, interface, encapsulation… gibi terimlerin ne anlama geldiğinden bahsederken bu kavramları gerçek hayattan örneklerle ilişkilendirerek iyi anlaşılmasını sağlamayı amaçlıyorum. Örnekler de tabiki Java syntax ‘ı kullanılarak verilecek. Terimleri anlatırken Türkçe’ye çevirmemeyi tercih ediyorum. Çünkü o zaman karışabiliyor, en iyisi orjinal haliyle öğrenmek.
Object:
OOP mantığını anlamanın temeli Object kavramını anlamaktan geçiyor…
Java Socket Programlama
Java Socket Programlamaya geçmeden önce socket kavramına açıklık getirmek istiyorum. Socket dendiği zaman birçok kişinin zihninde canlanan bilgisayarlarımızın üzerinde bulunan somut bir donanımsal parça oluyor. Aslında socket; Bilgisayarların ağ üzerinden haberleşmesini sağlayan yapılardır. Tabi bunun için bazı adresler kullanmak zorundayız. Bunlardan ilki bilgisayarın IP adresi.
IP adresi yardımıyla hangi bilgisayarla haberleşeceğimizi belirleriz. Haberleşilecek bilgisayara ulaşıldığı zaman, bu bilgisayar üzerinde hangi programla iletişime geçeceğimizi belirtmemiz gerekiyor . İşte burada bilgisayarlarımızın portları devreye giriyor. Yani iki bilgisayar birbiriyle bu iki yapı vasıtasıyla haberleşir (IP adresi ve Port). Socket ‘i açıklarken Port ve IP adresine nereden geldiniz diye sorabilirisiniz 🙂 Socket de zaten belirttiğim bu iki kavramdan oluşuyor. Yani socket bilindiğinin aksine donanımsal bir parça değil IP adresi ve port numasından oluşmuş bir yapıdır.
Java Programlama Diline Giriş
Java programlama dili diyerek eksik bir tabir kullanmış olabilirim. Çünkü Java sadece bir programlama dili değil aynı zamanda bir platformdur. Bu yüzden Java Teknolojisi şeklinde hitap etmek daha doğru olur. “Bu da ne demek” derseniz şöyle anlatırım; Siz java kodunuzu herhangi bir text editör ile .java uzantılı dosyalara yazarsınız. Daha sonra derleyiciniz ile (Java için javac) compile işlemini gerçekleştirirsiniz ve .class uzantılı bir dosya oluşur. Bu dosyanın içerisinde Java Virtual Machine denen sanal cihazın anlayabileceği makine kodları (bytecode) bulunmaktadır. Daha sonra java launcher bu dosyayı Java Virtual Machine üzerinde çalıştırır.
Gördüğünüz gibi Java ‘nın çalıştığınız sistemle pek ilişki yoktur.
Happy Birthday WoW (:
Ne günlerdi… Tüm gün çalıştıktan sonra acıkır ve yorulurduk, ama engel tanımazdık, ışıklar kapatılır perdeler çekilirdi… Bahadır Abi pizzayı söyler, Hasan ketçap ve mayonezi çıkarır, masayı hazırlardı. Masa dediysek yemek masası değil, tabi ki yemek yemek için yerimizden kalkıp ara veremezdik, pizzalar nadiren klavyeden uzaklaşan tek el ile biraz zorlanarak da olsa yenirdi. Hepimiz “noob”duk (hoş Eser Abi bunu hiç kabul etmedi), bilmediğimiz bir dünyada bilmediğimiz güçlerle savaşıyorduk. Sık sık birimizin yaptığı saçma bir hata hepimizi kahkahalara boğabiliyordu… Sanırım bu bir trans haliydi… Ve biz bu dünyadan ayrılıp, o dünya ya geçiyorduk….
Evet bugün o dünyanın, içinde sıkışıp kalmak istediğim dünyanın, World of Warcraft dünyasının 8. yıl dönümü…
SVN ile Dosyalara Keywords Eklemek
Daha önce SVN ile ilgili bir yazı yayınlamıştım. Onu kaçıranlar için bu blogda da svn ile ilgili bir yazı yayınlamayı düşünüyorum. Eğer henüz bir SCM aracı kullanmıyorsanız kesinlikle SVN tavsiye ediyorum. SCM nedir, SVN‘in özellikleri nelerdir, nasıl kullanılır gibi temel konulara daha sonra değinmek üzere erteleyerek bu yazıda benim için önemli olan bir konuya değinmek istiyorum.
SVN ile kodlarımızı yazdığımız dosyalara keyword‘ler ekleyebiliyoruz. Ben ve yol arkadaşım metalsimyaci bir süre önce KabileOnline 3.0 için çalışmalarımıza başladık. Ayrı illerde yaşadığımız için geliştirme ortamının ve altyapının düzgün bir biçimde oluşturulması önemliydi. Bunun için kodlarımızı SVN server üzerinde tutmaya karar verdik. Proje üzerinde kendimize tasklar, bug kayıtları, geliştirme önerileri gibi issue‘lar oluşturabileceğimiz ve bunlara birbirimizi atayarak commentler yazabileceğimiz bir ortam da oluşturduk.