Arşiv

‘Eclipse’ kategorisi için arşiv

Eclipse – Customize View

Çarşamba, 12 Ara 2012 Yorum yapılmamış

Eclipse’te yüklü eklenti sayısı arttıkça kalabalıklaşıp, göz tırmalar hale gelen iki durumdan kurtulmanın yönteminden bahsedeyim.

Birincisi üst menüdeki buton kalabalığı. Windows->Customize Perspective menüsünden Tool Bar Visibility sekmesinden aktif olarak kullanılan butonlar seçilip, sadece bu butonların görünmesi sağlanabiliyor.

İkincisi de sağ tık menülerindeki seçenek kalabalığı. Yine aynı şekilde Windows->Customize Perspective menüsünün Menu Visibility sekmesinden menülerde hangi öğelerin gösterileceği seçilebiliyor. Mesela projedeki bir klasör üzerinde sağ tık yapıp “New” denildiğinde on yüz bin milyon dosya türü gelmesin istenilebilir gayet insani bir tavırla. Bunun için File->New seçeneğinden istenenler seçilerek daha sade bir menü oluşturulabilir.

eclipse-customize-perspective-menu-toolbar

FacebooktwitterlinkedinmailFacebooktwitterlinkedinmail

Eclipse Performans İpuçları

Cuma, 16 Kas 2012 Yorum yapılmamış

Oldukça fazla sayıda sınıfın bulunduğu bir projeyi açtığımda ortaya çıktı yavaşlık sorunu. Neydi bu ayarlar, ne değildi yahu derken Google yolları gözüktü yine. Tabi bir de malum, arama sonuçlarını ayıklamak. Eclipse’in çalışmasını ve açılışını hızlandırmak için genel kabul gören bu bir kaç maddeyi derleyip, toplayayım dedim. Aslında bir dolu blogda benzer bilgiler mevcut ya, olsun. Hem baktım da site film bloğu olup çıkacak yakında, bir iki teknik dokunuş yapayım madem…

eclipse.ini Önerileri

Önce şunu söyleyeyim ki, bu dosyada yapılan değişiklikler Eclipse açılışında hata alınmasına sebep olabilir. Bu yüzden önce bir yedek almak lazım.

Başlangıç parametrelerinin bulunduğu bu dosya Eclipse’in kurulu olduğu dizinde bulunur. Bu parametrelere verilebilecek değerler bilgisayarın donanım özelliklerine göre değişir.

  • -XX:PermSize ve -XX:MaxPermSize : Bu parametreler Eclipse’in kullanacağı JVM’in Perm Space hafıza alanının başlangıç sınırını ve üst sınırını belirliyor. Perm Space demişken, bu alan sınıf ve metot tanımlarının, bilgilerinin (sınıflardan oluşturulan objelerin değil!) tutulduğu hafıza alanı. Dolayısıyla çok fazla sınıf bulunan bir “workspace” de yaşanabilecek Out of Memory : perm gen space error türü hafıza sorunlarını gidermede faydası olabilir.
  • -Xms ve -Xmx : Bu parametreler Eclipse’in kullanacağı JVM’in temel hafıza alanı olan Heap Space değerlerinin başlangıç sınırını ve üst sınırını belirliyor. Örnek olarak 4GB RAM bulunan bir bilgisayarda bu değer 1024’e kadar çıkarılabilir. Eclipse -Xms’de belirtildiği kadar hafıza ile çalışmaya başlıyor ve gerektiğinde bu değeri -Xmx’e kadar arttırıyor. Bu arada, Eclipse’in gereken durumlarda kullandığı hafızayı arttırması işi maliyetli olabileceğinden, bu iki değerin birbirine olabildiğince yakın olmasında fayda olduğu söyleniyor.
  • -Xverfiy:none : Bu parametre ile Eclipse’e, “açılırken yüklediğin .class dosyalarını doğrulama işlemine(validation) tabi tutma” şeklinde bir ayar verilebilir. Ki bu da açılış hızına olumlu etki yapar.

Eclipse’in Açılış ve Çalışma Hızını Arttırabilecek Diğer Öneriler

  • Window->Preferences->Validation menüsünden gerekli olmadığını düşündüğümüz validator‘leri devre dışı bırakmak
  • Window->Preferences->General->Editors->Spelling menüsünden çok da gerekli olmadığını düşündüğümüz Spell Check‘leri kapatmak
  • -Window->Preferences->General->Startup and Shutdown menüsünden Eclipse açılırken başlatılmasına gerek olmadığını düşündüğümüz eklentileri devre dışı bırakmak

Etkisinin yukarıdakiler kadar olması beklenmese de bunların dışında ; Kullanılmayan projeleri devre dışı bırakmak, kullanılmayan görüntüleme pencerelerini ve perspektifleri kapatmak, ve elbette Eclipse’in güncel versiyonlarını kullanmak yapılabilecekler arasında.

Tabi bir de paraya kıyıp bilgisayarın RAM’i arttırılabilir, para var huzur var arkadaş…

FacebooktwitterlinkedinmailFacebooktwitterlinkedinmail

Eclipse code template

Cumartesi, 15 Eki 2011 Yorum yapılmamış

Eclipse’in bir güzel özelliği de sık kullanılan kimi kod blokları, şablonları için kısayol oluşturabiliyor olmak. Tıpkı “syso” yazıp Ctrl+Space yapınca “System.out.println();” satırını veya “main” yazıp sınıfa bir main metodu eklemek gibi.

Bunun için yapılması gereken Window->Preferences->Java->Editor->Templates kısmından yeni bir şablon eklemek. Mesela ben debug yaparken işlemi yarıda kesmek istediğim zaman kullandığım kod bloğu olan throw new RuntimeException(“Hata !”); ifadesini “throws” kısayolu ile eşledim. Çok da güzel oldu, iyi de oldu : )

Eclipse Code Template

Eclipse’in yine kod şablonları oluşturabilmek için “Snippets” görünümü de bulunuyor. Ctrl+3 ile açılan görünüm seçiçiden “Snippets” yazılarak benzer şekilde kod şablonları oluşturulabilir.

FacebooktwitterlinkedinmailFacebooktwitterlinkedinmail

Eclipse Debug Pratikleri

Cumartesi, 18 Ara 2010 Yorum yapılmamış

Eclipse’in bir kaç debug görünümü özelliğinden bahsedeyim.

Drop to frame drop_to_frame

Bu sayede herhangi bir debug işlemi sırasında en baştaki breakpoint noktasında dönebiliyorsunuz. Tabi bu arada çalışan kodun meydan getirdiği değişiklikleri geri alma gibi bir özellik söz konusu değil.

Watchpoint

Herhangi bir genel değişkenin (global variable) olduğu satıra çift tıklayarak eklenebilir. Böylece değişken her değişikliğe uğradığında debug görünümüne dönüş yapılabilir.

Add java exception breakpoint addJavaException

Bu özellik ile de kodun çalışması sırasında meydana gelebilecek herhangi bir istisna yakalanıp, bu istisna durumunun incelenebilmesini sağlanıyor. Burada eklenecek istisna Java’da bütün istisnaların türediği sınıf olan “Exception” seçilirse mesela bütün istisna durumlarında Eclipse debug görünümüne dönebiliyor, veya özel bir “Exception” (OptimisticLockException, SQLGrammarException vs.) türü belirterek onu yakalayabiliyoruz. Bu daha çok yakalanmayan veya yakalama gereği duyulmayan “NullPointerException”, “IndexOutOfBoundsException” gibi istisna durumlarında faydalı olur gibi geliyor.

Skip all breakpointsskipAllBreakPoints

Pratikte çok işe yarayan, çoğu Eclipse kullanıcısının biliyor olması gereken bir özellik. Bu sayede tek tek breakpoint leri devre dışı bırakmak yerine, bütün breakpoint leri devre dışı bırakarak kodun normal çalışmasını takip edebiliyoruz.

Enable when – Hit count

Son olarak, pratikte çok ihtiyaç olmazmış gibi gözükse de, bir breakpoint in ne zaman aktif olacağını o breakpoint in özellikler kısmından “Enable when” kısmına yazacağımız kod ile belirleyebiliyoruz. Şöyle bir durumda işe yaramışlığına şahidim; Diyelim ki 200 elamana sahip bir listede for döngüsü ile işlem yapıyoruz. Hatanın da 50 ila 60. elamanlar arasında bir yerlerde olduğunu biliyoruz.

for(int i = 0; i < list.size(); i++){
...
}

Böyle bir durumda “Enable When” kısmına i >= 50; yazarak ilgili breakpoint in 50.adımla beraber aktif olmasını sağlamış, biraz zaman biraz sabır kazanmış oluyoruz.

Yine ilgili breakpoint in özellikler kısmından kaç kereden sonra pasif olacağını da “Hit count” ile belirleyebiliyoruz.

FacebooktwitterlinkedinmailFacebooktwitterlinkedinmail

PMD ile kod analizi

Cumartesi, 24 Nis 2010 Yorum yapılmamış

Sadece Eclipse değil aynı zamanda diğer bir çok IDE’ye de (JDeveloper, JBuilder, IntelliJ IDEA vs.) eklenebilen gayet faydalı bir eklentiden söz etmek istedim; PMD. Şurada da bahsedildiği üzere PMD neyin kısaltması ola ki sorusunun bir sürü cevabı var, veya aslında yok. (Pretty Much Done, Project Mess Detector, Project Monitoring Directives vs.) Yaptığı iş Java kodunu tarayıp olası hatalara sebebiyet verecek kod parçalarını işaret etmekle kalmayıp bunların nasıl daha temiz, daha düzgün, daha okunur hale getirilebileceği konusunda öneriler getirmesi. Taradığı kural setlerinden birkaçını kabaca yazacak olursak;

* Daha iyi ve/veya daha az kodla ifade edilebilcek kod blokları
* Kullanılmayan değişken, parametre, metotlar
* Boş bırakılmış try/catch/finally/switch ifadeleri
* Fazlaca karmaşık, okunması zor ifadeler, metotlar
* Gereksiz if cümlecikleri, while ile değiştirilebilecek for cümlecikleri
* Kopya kod blokları
* Kopyala/yapıştır kaynaklı oluşabilecek hatalar
* Fazlaca uzun veya kısa isimlendirilmiş değişkenler, metotlar

Elbette bunların dışında Java kodunu değerlendirmeye tabi tuttuğu bir dolu kural seti var. Pratikte daha çok karşımıza çıkabilecek olanlardan bahsettim.

Bir iki örnek vermek gerekirse;

Query sınıfının getResultList() metotundan dönen liste değişkeninin içeriğini if(list.size()>0) gibi kontrol etmek yerine list.isEmpty() ile kontrol etsene,

veya String değişkenler için eşitlik kontrolü yaparken (a diye String bir değişkenimiz olduğunu varsayarsak) if(a.equals(“Ahmet”)) şeklinde kontrol etme arkadaş, if((“Ahmet”).equals(a)) diye kontrol ederek muhtemel null pointer hatalarından da sıyrılsan ya,

veya bir başka örnek BigDecimal tipinden bir değişkene new BigDecimal(“0”) ile değer atadığımız bir ifade için, arkadaş ne diye statik olarak zaten elinde var olan BigDecimal.ZERO ‘yu kullanmıyorsun ki diyebiliyor. Bu gibi örnekleri çoğaltmak mümkün.

Eklentinin sahip olduğu kural setlerini Window->Preferences->PMD menüsünden düzenleyebiliyoruz da. Böylece hangi kuralı değerlendirmeye alacağını veya nasıl değerlendireceğini belirleyebiliyoruz. İşte efendim ben değişken isimlerini anlaşılır olması adına uzun yazarım, sen karışma benim işime, o yüzden sen beni ancak 20 karakterden daha uzun olarak isimlendirilmiş değişkenler için uyarıver diyebiliyoruz.

Merak edip denemek isteyenler için Eclipse ‘ e nasıl ekleyebileceğimiz şurada anlatılmış.

Şurada da PMD’nin sahip olduğu kural setleri ayrıntılı bir şekilde izah edilmiş.

FacebooktwitterlinkedinmailFacebooktwitterlinkedinmail
Kategoriler:Eclipse Etiketler:,

Eclipse Method Refactoring

Pazartesi, 08 Mar 2010 Yorum yapılmamış

Projeler dallanıp büyüdükçe sınıflar artık okunulmaz, anlaşılmaz ve hatta yer yer içinde bir ben yokum tadında bit pazarı kıvamına geldiyse refactor kaçınılmaz olmuş demektir. Eclipse’in bir güzel özelliği de tam olarak burada karşımıza çıkıyor. Sınıfları özelleştirerek ayrıştırma, bölme işlemi sırasında istenilen metotlar “Outline” perspektifinden çoklu bir şekilde seçilip (CTRL ile) daha “Refactor->Move” seçeneğinden istenilen sınıfa sorunsuz bir şekilde taşınabilir. Böylece metot çağırım ve import düzenlemelerini yaparken karşılacağımız olası insan hatalarına izin vermemiş ve bir nevi hamallık olan bu işgücünden de tasarruf sağlamış oluyoruz.

eclipsemethodrefactoring

Refactor menüsünde;

Move; Metot veya sınıf düzeyinde yer değiştirme
Rename; Seçilen değişken, metot veya sınıfı yeniden isimlendirme
Extract Interface; Seçili sınıftan interface oluşturma
Change Method Signature; Metot imzasını değiştirme
Pull Up; Seçilen metotları bir üst sınıfta konumlandırma
Pull Down; Seçilen metotları bir alt sınıfta konumlandırma

vesair gibi proje geliştirme sırasında kolaylık sağlayacak daha bir çok özellik mevcut. Konu ile ayrıntılı bilgi isteyenler şuradaki makaleye göz atabilir.

FacebooktwitterlinkedinmailFacebooktwitterlinkedinmail
Kategoriler:Eclipse Etiketler:

Eclipse başlangıç ayarları

Cuma, 26 Şub 2010 1 yorum

Eclipse kullanıcıları için faydalı olabileceğini düşündüğüm bir kaç ayardan bahsetmek istedim.

eclipse_startup

-Eclipse’i başlatırken workspace seçip seçmeyeceğimizi,
-Eclipse’i kapatırken kapatama onayı alınıp alınmayacağı,
-Eclipse’i başlatırken hangi plug-in lerin aktif hale getireleceğini (Bu kısımda çalışıyor olduğumuz projeye göre gereksiz  plug-in leri başlangıçta aktif hale getirilmeyecek şeklinde düzenlersek daha hızlı açılan bir Eclipse görebiliriz.)

FacebooktwitterlinkedinmailFacebooktwitterlinkedinmail