Showing posts with label Text Editor. Show all posts
Showing posts with label Text Editor. Show all posts

Saturday, May 12, 2012

IDE Metin Editörü Değildir

Java yazmaya başladıktan sonra IDE olarak Eclipse kullanmaya başladım. Kısayolları öğrenmeye başladıktan sonra hayatım fazlasıyla kolaylaştı. Basit işleri mouse kullanmadan daha kolay ve hızlı yapmaya başladım.

Çoğu kimsenin Eclipse'i bir IDE olarak değilde bir metin editörü gibi kullandığını gördüm. Bu başlığı çok uzatmamak için IDE vs Text Editör isimli başka bir başlık açtım, göz atmak isteyebilirsiniz. Bu alışkanlıkları değiştirmek için kod yazan bir iş arkadaşlarımın temel bir işi bildiği yolla yaptığını gördükten sonra onlara bu işi bir kısayolla çok daha hızlı yapabileceğini göstererek ilerledim.
Bu yazıyı yazarken kendi kullandığım kısayolları paylaşmak niyetindeydim. Ancak bu konuda daha iyi bir yazıyı Taner Diler'in bloğunda buldum. Eclipse ve Hayat Kurtaran KısaYol Tuşları isimli yazıya buradan ulaşabilirsiniz.

Bu noktada bir IDE'yi etkili kullanmanın avantajlarından bahsetmek istiyorum.

Normal bir sürüm gecesinden farklı olarak saat gece 4 ve geliştirmeniz testden dönmüş. Bu noktada neden geliştirme o saatte sürümden dönüyor sorusu akıllara geliyor. Haklısınız ama müşteri faktörü deyip geçmek istiyorum. Geliştirmenizin sürüme girmesi gerekiyor. Çalışma arkadaşlarınız sizi bekliyor. Üzerinizde yoğun bir baskı hissediyorsunuz (bilgisayar mühendisi iş ilanlarında bahsedilen stres altında çalışabilme bu olsa gerek :) )
Biraz sakinleşip sorunun buluyorsunuz. Kafanızda çözüm şekilleniyor. Geriye kaldı bunu koda dönüştürmek. Bu noktada bir IDE'yi etkili kullanabilmek hızınızı 2'ye katlayabilir. Hayatımda o gece olduğu kadar hızlı kod yazdığımı hatırlamıyorum :)

Geliştirme yaparken değiştirmem gereken bir sınıf ile uğraşıyorum. Bu sınıf login işlemlerini yöneten bir sınıf. Değiştireceğim metod projede yaklaşık 30 farklı yerden çağrılıyor. Bu noktada bu bilgiye ulaşmak için metod ismini java uzantılı dosyalarda aramak bir çözüm olsa da IDE'nin call hierarchy özelliğini kullanarak bu bilgiye daha sağlıklı bir yoldan ulaşıyorum. Biraz düşündükten sonra bu sınıfın singleton olması gerektiğine karar veriyorum. Değişikliği yapabilmek için kodda sınıfın yenilendiği her yerde
DummyProvider dummyProvider = new DummyProvider();
çağrımını
DummyProvider dummyProvider = DummyProvider.getInstance();
ile değiştirmem gerekiyor. Bu işi teker teker yapmam hem hataya açık bir yöntem hem de fazlasıyla zaman alacak. Eclipse'in rafactoring desteğinden yararlanıyorum. Bu değişikliği "Introduce Factory" rafactoringi ile yapmam sadece 1 dk sürüyor.

Java'da bir sınıf yazarken yazdığı alanların getter/setter metodlarını elle yazanları gördüm.

Sonuç olarak sadece kod tamamlama kullanmak yetmez. IDE'nin sağlamış olduğu özellikleri sonuna kadar kulanmak bize performans sağlayacaktır. IDE'mizi tanıyalım.

IDE vs Text Editor

Etrafınızda vim, emacs gibi metin editörleri kullanan insanlar görmüşsünüzdür. Vim ve Emacs normal bir metin editöründen çok daha fazla kabiliyete sahipler.
Bu araçları çok etkili kullanan çalışma arkadaşlarım var. Vim editörü içerisinde 4 ayrı ile uğraşmak bayağı etkileyici.
Bu editörler bu kadar etkileyici olmasına rağmen ne zaman kullanılmalı sorusu beliriyor kafamda. Bu konudaki gözlemlerimi aktarmak istiyorum. Java, C# gibi bir dille uğraşıyorsam tercihim her zaman bir IDE'den yanadır.
Zamanında C# yazmış birisi olarak Visual Studio olmaksızın .NET platformunu düşünemiyorum. Java yazan birisi olarak Eclipse, Intellij Idea veya NetBeans olmaksızın Java yazmanın anlamsız olduğunu düşünüyorum. Bu noktada bir IDE'nin bize sunacakları hayatımızı fazlasıyla kolaylaştırıyor.
Javascript, html, css yazacaksam Vim editörü fazlasıyla işimi görüyor. Javascript, html, css, php, python ile uğraşan insanların vim, emacs kullanması gayet mantıklı geliyor.
Hala ben Java'yı metin editörü ile de yazarım diyenlere tavsiyem bir IDE'yi metin editörü gibi değil IDE gibi kullanmaya çabalamaları olacaktır.
Vim ve Emacs'i kısayolları öğrenmeden kullanamayacağınız gibi bir IDE'yi de kısayollarını, özelliklerini öğrenmeden etkili olarak kullanamazsınız.
Stackoverflow'da IDE or Text Editör başlığı belki ilginizi çekebilir.