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