Photo by mostafa meraji on Unsplash

Biz developerların en sevdiği şey sanırım doğru loglamadır. Bir hata bildirisi geldiği zaman temiz bir loglama yapılmışsa fixlemek sadece 10 dakikamızı bile alabilir.

Hata sarmallama için kullandığımız try catch bloklarının kullanımı çok büyük önem taşımaktadır. Ben bu sarmallamada en çok yaptığımız bir yanlıştan bahsetmek istiyorum.

public void islem() throws Exception{
int toplam = 0; try {
toplam = 5+4;
}catch (Exception e){
throw new Exception("hata mesajı", e);
}
}

yukarıdaki kod bloğunda islem() adında bir methodumu var. bu islem() methodunda herhangi bir hata ile karşılaşırsak catch bloğunda hatayı yakalayıp sarmallamak istiyoruz. method imzasını yanında throw Exception vererek diyoruz ki; islem()…


Photo by Juan Gomez on Unsplash

Maven kullananlarımız bilirler. target dosyalarını temizlemek ve yeniden oluşturmak için clean-install ikilisi vardır. Hatta çoğumuzun maven’ın diğer opsiyonlarının tam olarak ne işe yaradığını tam bilmediğini ama clean-install delisi olduğumuzu söyleyebilirim :)

Bu ikiliyi tek bir butona dönüştüren ufak bir bilgi paylaşacağım. Benim için çok pratik bir yöntem oluyor.

Aşağıda klasik bir maven structure’ı görüyorsunuz.Normalde bu ekranda önce clean sonra install yapıp derlenmiş dosyalarımızla işimize devam ediyoruz.


Photo by Javier Allegue Barros on Unsplash

Selamlar,

Bugün çalıştığım takımda yapmış olduğumuz birkaç pratikten bahsedeceğim.

Yaklaşık 1 yıl kadar önce agile metodolijisi ile çalışan bir takımda backend developer olarak işe başladım. Daha sonrasından scrum master görevini de üstlendim. Bu bir yıllık süreçte işlerimizi kolaylaştıran güzel pratikler edindik takım olarak. Bu pratikleri başlıklar altında aktarmaya çalışacağım.

Story Point kavramımız nasıldı? Nasıl oldu?

Basitçe yazılımı eforlandırma olarak tanımlayabildiğimiz bu kavramı doğru uygulayabilmek takımların en zorlandığı konuların başında geliyordur desem abartmış olmam sanırım. Genel olarak adam/gün uzerinden yapılan story point değeri hesaplama şekline bizler de dahil olduk. Biraz daha detaylandırayım; Biz takım olarak 2 haftalık sprintler koşuyoruz. Ve her…


Photo by Merlene Goulet on Unsplash

Merhabalar,

Bugün java 8 ile beraber gelen interface yapısındaki değişim ve deyim yerindeyse bütün tabuların yıkıldığı konudan ve bunun avantaj ve dezavantajlarından bahsetmek istiyorum.

Öncelikle java 8 ile gelen en büyük ve çarpıcı değişiklik artık interfaceler içerisine gövdeli methodlar yazabiliyor olmamız.

Bunu yapmak için “default” ve “static”anahtar kelimesini kullanıyoruz.

Hemen bir örnek üzerinden görelim.

public interface ICalisir {

default void calis(){
System.out.println("Kişi çalışır");
}

}

Şimdi akıllarda deli bir soru var değil mi?

  • Java çoklu kalıtımı desteklemiyor. Çünkü super classlarda aynı imzaya sahip methodlar varsa ve subclass bu super classlardan birinin methodunu kullanmak istediğinde hangi class içerisindeki methodu kullanacağının karmaşası…


1-Local variables ( also know as method-local variables)

2-Method parameters ( also know as method arguments)

3-Instance variables ( also know as attribute,fields, and nonstatic variables )

4-Class variables ( also know as static variables)

1- Local Variables

***Local variables method içersinde tanımlanan değişkenlerdir.

***Listedeki 3 değişkene göre daha az yaşam süresi vardır.

public double getAvg(){
double avg = 0; // local variable
….
return avg;
}

*** Bu değişkenler metot dışında kullanılamazlar.

***Metot içerisindeki if bloğunda tanımlanan bir variable bu blok dışında kullanılamaz. Örnek:

public void getAverage(){
int say=8;
if(say >0){
double avg = 0;
}
else{
avg = 5; //won't complie…


Photo by Markus Spiske on Unsplash

Merhabalar,

Javada immutable yani değişmez yapılar vardır. String, Boolean, Integer gibi bütün wrapper classlar immutable’dır. Immutable classlar bir kere oluşturulur ve değişmezler. Bu durumun bize sağladığı avantajlar ise şu şekilde belirtilebilir:

Basit tasarım; Nesne bir kere oluşturulduktan sonra nesne üzerinde oluşan değişimler her adımda nesneyi başka bir duruma gotürecektir. Nesne olmaması gereken durumlara sürüklenebilir, ya da nesnenin karşılaşabileceği her değişimi belgelemek durumunda kalabiliriz. Bu nedenle immutable classlar tek ve değişmez olmalarıyla bize büyük rahatlık sağlar.

Güvenlik; Immutable nesneler ilk değerlerini constructur üzerinden alırlar ve bu değerde sabit kalırlar ve senkronize çalişmak zorunda kalmazlar. Bu da onların thread-safe olmasını sağlar.

Bunun…


Merhaba arkadaşlar

Bugün çokça kullandığımız exception handling ve Spring Framework’un @transaction. anotasyonu üzerine bir örnekleme yapacağım. Öncelikle kısaca exception handling nedir? Bu konuya değinelim.

Exception handling yani Türkçesi; oluşan istisnaların sarmallanması durumudur. Fark ettiyseniz hata sarmallanması demedim. Çünkü exception handling’in tek amacı hata sarmallamak değildir. Kodunuzdaki istisnai durumları yönetmektir. Tabi genel olarak hata durumlarını sarmallamak ve aksiyon almak isteriz bu nedenle hata sarmallamak olarak kodlanmış olabilir zihnimizde.

Exception türlerinden bahsetmeyeceğim incelemek icin linki tıklayabilirsiniz

Asıl konumuza gelecek olursak; Bugün Spring Framework’un Transactional anotasyonunu kullanırken istisna sarmallamanın öneminden bahsedeceğim.

Spring framework transactional yönetimini anotasyon ve onların propagationlarını kullanarak çok güzel bir…


Merhaba,

Spring Framework Transaction yapısına ait olan Propagation elementinden bahsedeceğim.

Öncesinde transaction işlemi nedir? Spring bunu nasıl yapıyor biraz değinelim.

Nesrin Asan

Software Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store