Java 8 Optional ve null dönebilen metotlar

Java 8 Optional ve null dönebilen metotlar

Merhabalar, bu yazıda sizlere Java 8 ile beraber gelen Optional sınıfından bahsedeceğim. Bu yazı ile birlikte Java programlama dili ve teknolojileri konusunda ufak bilgiler paylaşmaya devam edeceğim. Umarım faydalı olur. Optional sınıfının kullanımına bir örnek vererek anlatacağım. Doğrudan anlatabilecek kadar basit bir sınıf olmasına rağmen örnek üzerinden gitmenin daha kalıcı olduğunu düşünüyorum. Örneğimizde bir UserRepository sınıfı tasarlayacağız. Interface’imiz şu şekilde: UserRepository interface’inde getByUsername() metodunun tanımlandığını görüyoruz. Adından da anlaşılacağı üzere kullanıcı adı ile veritabanında kayıtlı bir kullanıcıyı bulmak istiyoruz.

Test Güdümlü Geliştirmenin Etkileri

Test Güdümlü Geliştirmenin Etkileri

Test güdümlü yazılım geliştirme, öğrenmek istediğim en önemli konulardan biriydi. Bu konuda JUnit in Action ve Test Driven Development By Example kitaplarını bitirdim. Özellikle Test Driven Development By Example kitabı baya eğlenceli hem de bir o kadar öğretici bir kitaptı. Kent Beck’in diğer kitaplarını okumak için can atıyorum. Daha önce de bu konu hakkında bir yazı paylaşmıştım. Test güdümlü yazılım geliştirmenin faydaları, genelde duyduğum ve mantıken düşündüğümde kabul ettiğim faydalardı. Ama birçoğunu kendi tecrübelerimde de yaşamış oldum.

OOP: Polimorfizm

OOP: Polimorfizm

Kapsülleme ve kalıtım konularından sonra sıra geldi polimorfizme. Polimorfizm, Türkçe’de çok biçimlilik olarak çevriliyor. Polimorfizmi anlatmak için JUnit in Action kitabında gördüğüm güzel bir örneği vereceğim. Bu örnek sayesinde polimorfizm’in kullanım amacını da göstermiş olacağım. Örnek göstererek anlatmayı daha uygun buldum. Ben önce örnekleri inceleyip sonra açıklamaları okurdum. Bu sayede daha kolay kavrıyorum. Aynı yöntemi burda da uygulayacağım. Bu konuyu kavramanız için kalıtım konusuna hakim olmanız gerekmektedir. Örneğimizde bir yazıcımız var.

OOP: Kalıtım

OOP: Kalıtım

Bir önceki yazımda OOP konusuna giriş yapmış ve kapsüllemeyi anlatmıştım. Bu yazımda ise “Kalıtım” konusundan bahsetmek istiyorum. Kalıtım (inheritance) kelimesi aslında biyolojide anlamı ile aynıdır. Adından da anlaşılacağı gibi bir sınıfın özelliklerini diğer sınıfa olduğu gibi aktarmasıdır. Peki böyle bir özelliğe neden ihtiyaç duyarız. Bir üniversitedeki öğretim görevlilerini ve öğrencileri modelleyen iki sınıf tanımlayalım. Öğrenci sınıfı öğrencinin adını, soyadını, okul numarasını, T.C. kimlik numarasını, bölümünü içersin. Öğretim görevlisi sınıfı ise öğretim görevlisinin adını, soyadını, hangi bölümün kadrosunda yer aldığını, T.C.

OOP: Kapsülleme

OOP: Kapsülleme

Blogumda yazılım ile ilgili pek bir yazı olmadığından artık bazı konularda yazılar yazmaya karar verdim. Bu yüzden programlamanın en temel ve en önemli konularından biri olan Nesne Yönelimli Programlama’yı elimden geldiği kadar anlatmaya çalışacağım. Object Oriented Programming bir programlama yaklaşımıdır. Nesneye yönelik programlama, nesneye dayalı programlama, nesne tabanlı programlama, nesne esaslı programlama gibi bir çok çevirisi vardır. Ben de Türkçe de daha çok yaygın olan nesne yönelimli programlamayı kullanıyorum. Fakat genelde bahsederken OOP olarak kısaltacağım.

Test Güdümlü Yazılım Geliştirmeye Merhaba

Test Güdümlü Yazılım Geliştirmeye Merhaba

“Test Driven Development” yani Türkçe söylersem “Test Güdümlü Yazılım Geliştirme” ile birkaç ay öncesinde tanıştım. Fakat bu konuda halen öğrenmeye devam ediyorum. Bu konuda bildiğim temel bilgileri paylaşmak istiyorum. Aynı zamanda bu konuda kendimi geliştirdikten sonra geri dönüp düşüncelerime tekrar bakmak istiyorum. Aslında blog tutmamın en sevdiğim yanı da budur. Yazılım ile ilgili düşüncelerim sürekli değişmektedir. Bu değişimi takip etmenin bir yolu da blog yazmaktır. Öncelikle yazılım yapmak demek sadece kod yazmak anlamına gelmez.