Programlamada Üretim Hızını Arttırmak…

Bir ürün ortaya koyarken, aynı diğer sektörlerde olduğu gibi yazılım sektöründe de maliyet çok önemli elbette.

Yazılım ve donanım masraflarını çıkardığımız zaman geriye kalan maliyet yazılımcıların çalışma süresi, bu yüzden de projenin ne kadar hızlı geliştirilirse maliyeti o kadar düşük olur diyebiliriz. İster kendi projenizi geliştiren bir yazılımcı olun, ister bir şirket, bu gerçek değişmiyor.

Tabii üretim hızını arttırırken, bunun tam karşısında dikilen çok önemli bir parametre var, o da KALİTE ! Hızlı yazmak uğruna kaliteden ödün vermemeliyiz… Türkiye’deki berbat yazılım kalitesinin bence en büyük nedeni bu.

Sorun?

Makine mühendliği eğitimi sırasında üretim planlama ile ilgili derslerimiz vardı. Bunlardan biri de seri üretimde maliyetin düşürülmesi için yapılabilecekler. Mesela bir otomobil üretim bandını düşünün.

Her ne kadar yazılım sektörü ile kıyasladığınızda maliyeti etkileyen çok fazla parametre olsa da, aynen yazılımdaki gibi üretim hızını ne kadar arttırırsanız birim otomobil başına maliyetiniz de o kadar düşer.

Burada hızı optimize ederken en önemli bir prensip vardır:

Üretim işleminin hızını arttırmaya zorlarsanız kaliteden kaybedersiniz. Ancak asıl optimize edebileceğiniz nokta, üretim işlemleri arasında ara maddelerin bir yerden bir yere transferi, makineye bağlanması, makineden sökülmesi gibi ara işlemlerdir.

Örneğin bir torna işlemini olması gerekenden daha hızlı yaparsanız torna bıçağının ısınması vb. nedenlerden ürettiğiniz malzemenin yüzey KALİTESİ düşer, pürüzsüz bir yüzey yerine tırtıklı bir yüzey elde edersiniz.

Çok benzer bir şekilde kod yazma süreniz 3 aşağı  5 yukarı bellidir. Eğer çok hızlı yazmaya çalışırsanız mutlaka bazı noktaları gözden kaçırmaya başlarsınız. Bunun da acısı birkaç ay sonra çıkar: “Ben mi yazmışım lan bunu?!?!”

Nasıl?

Peki bu konuda ne yapılabilir? Programcı özelinde baktığımızda bence önemli unsurlardan birisi, aynı seri üretim yapan bir fabrikada olduğu gibi, ara işlemleri optimize etmek. Yani program yazarken rutin olarak yaptığımız ara işlemleri hızlandırmak.

İşte benim optimize ettiğim bazı şeyler. Eğer bu listeye eklemek istediğiniz bir şey varsa lütfen yorum olarak yazın, buraya eklerim…

1. Çift Monitör Kullanmak

Bilkent’teki işimde monitörümün yanına ikinci bir monitör koyduğum zaman çalışma arkadaşlarımın ilk tepkileri daha çok “wow ne havalı” gibi hafif dalga geçen bir yaklaşımdı. Şu an, departman müdürümüz de dahil çoğu kişi çift monitör kullanıyor…

Nedeni kesinlikle hava atma merakımdan değil. Basit bir rutini devreden çıkartmak: (Alt + TAB) kombinasyonu. Bir proje yazıp test ederken saatte kaç keç alt+tab kombinasyonunu kullandığınızı saydınız mı? Ben de saymadım aslında ama: ÇOK :)

Bir monitöre favori browser’ınızı koyuyorsunuz, diğerine editörü. Editörde yazdığınızın sonucunu browser’dan karşılaştırıyorsunuz. Ya da CSS ile uğraşıyorsunuz atıyorum. CSS’i Firebug ile modifiye ederek istediğiniz sonucu elde ediyorsunuz. Sonra yandaki monitörden son halini CSS’e yazıyorsunuz.

Hatta itiraf ediyorum atuyorum 5 dakika süren bir işlemi yaparken ikinci monitörde minesweeper oynadığım da çoktur :) Çünkü o sırada başka bir işe girerek ilkine olan konsantrasyonumu kaybetmek istemem…

2. 10 Parmak Yazabilmek

Dalga geçmiyorum, hala 2-3 parmakla kod yazmaya çalışan insanlar var yahu!

3. Shortcut Kullanmak

Belki abarttığımı düşüneceksiniz ama, hiç klavyeden elinizi kaldırıp mouse’a götürmenin size vakit kaybettirdiği dikkatinizi çekmiş miydi? Bu hareket belki 0,3 saniye alıyor ama günde belki 10.000 kere yapıyoruz.  Hemen hemen her işlemin bir shortcut’ı var: Commit et, kaydet, yükle (upload), dosya aç, dosya bul vs.vs. Bazı işlemlerin çok abuk shortcut’ları olabiliyor, tek elle yapamadığınız. Onları da üşenmeden değiştirin derim…

Aslında shortcut değil ama, yeni IDE’lerde code templates diye bir olgu var. Örneğin netbeans’de “assign” yazıp TAB’a bastığımda $this->assign(‘parameter’, $parameter); gibi bir kodu otomatik üretiyor ve cursor ‘parameter’ üzerinde oluyor. Onu örneğin ‘users’ olarak değiştirdiğimde otomatik olarak $parameter da $users oluyor…

Kullandığım başka bir trick de Textmate’ten: Shift + Ctrl Enter yaptığımda bulunduğum satırın sonuna bir noktalı virgül koyup sonraki satıra geçiyor. Bunu netbeans’de yapmak için basit bir makro kaydetmem gerekti. Bir satırın ortasındayken sona git, noktalı virgül koy, sonra enter’a bas yerine epey hızlandırıyor beni…

Siz de kendi hızınızı arttıracak shortcut’lar üretebilirsiniz.

4. Programlara Kolay Erişim

Favori programlarınızı başlat menüsü altından tüm programlara, oradan program dizinine, oradan programa gidip mi çalıştırıyorsunuz?

Her gün kullandığınız programları mac kullanıyorsanız dock’a ekleyebilir, windows 7 kullanıyorsanız “pin” ile taskbar’a sabitleyebilirsiniz. (Daha eski bir windows kullanıyorsanız önce onu çöpe atmakla işe başlayabilirsiniz!) Günlük kullanmadıklarınızı ise buraya koymayın ki bu sefer de yüzlerce program arasından günlük programınızı aramayın…

Diğer programlara erişmek için Mac’te Cmd+Space ile spotlight’ı açıp programın adını yazabilirsiniz. Aynısını windowsda yapmak için klavyenizdeki windows tuşuna basıp programın adını yazmaya başlayın, başlat menüsü açılıp program listede çıkar, oradan yine klavyeyle seçip açabilirsiniz.

5. Yıldırım gibi Çalışan Bir Bilgisayar

Birçok yerde işin bu erbapları der ki:

“Paranızın alabileceği en iyi bilgisayarı alın”

Sonuçta işinize yatırımdır bu. Bir yandan donanım problemleriyle ya da kanıran bir bilgisayarla uğraşırken nasıl konsantre olabilirsiniz ki işinize?

Kullandığınız donanımın birbirine uyumlu olması çok önemli o yüzden marka bilgisayarları tercih etmekte yarar var. Para ayırabiliyorsanız Mac’i sırf bu yüzden tavsiye ederim. Windows 7 bana göre gerek stabilite, gerek performans, gerekse fonksiyonalite açısından Snow Leopard’ı solladı ancak donanım olarak Mac kadar düzgün çalışan PC her zaman toplanmıyor. Sessizliği de cabası…

En son yakın bir arkadaşım bilgisayarının sesinden bıkıp kasayı yan odaya koymaktan bahsediyordu… Duvarı delip kabloları oradan geçirecekmiş ;)

Windows 7 kullanıyorsanız hızlı bir USB belleği windows 7’yi hızlandırmak için kulanabilirsiniz. USB’yi takın ve ekrana çıkan yönlendirmeleri takip edin. Bilgisayarınızın daha hızlı tepki verdiğini görebilirsiniz.

Linux’a gelince… Desktop olarak Kullanmayın! Bu kadar basit :)

1 Yorum

  1. Güzel Faydalı bir yazı olmuş.Ama son cümlenize katılmıyorum.Linux özellikle de yukarıda belirttiğiniz çok monitör ve kısayol kavramları yönünden çok çok üstün.Kullandığım için biliyorum.
    Mesela çok masaüstü var ve istediğiniz gibi çok hızlı bir şekilde bunlar arasında geçiş yapıp çok hızlı çalışabilirsiniz.Ve iki monitörden kat kat hızlı ve iyidir. Bunun gibi bir çok özellik var çoklu masaüstü için.Kısa yollara gelincede ister tuşla ister fare ile kısayol kullanabilirsiniz.Yine en basitinden Alt+Tab dan bahsetmişsiniz. Fare ile mac deki gibi köşeleri fare ile kullanarak çok hızlı biçimde pencere geçişleri yapabilirsiniz.Bunun gibi onlarca özelleştirme ile kullanımı çok çok hızlı ve kolaylaştırabilirsiniz. Araştırıp denemenizi tavsiye ederim.

    Reply
  2. Yıllarca Ubuntu kullandım zaten, ikinci bir makinemde duruyor hala da kullanırım ara ara :) Ama Linux’un sorunu stabil olmaması yoksa özellik olarak eksiği yok fazlası var.

    Linux kullanıyorsanız mutlaka birşeyleri konfigüre etmeye çalışırken bulursunuz kendinizi…

    Donanım değiştirirsiniz uyumsuz donanıma denk gelmeniz diğerlerine göre daha olası…

    Çift monitör desteği verir ama bazı programları gider tam iki monitörün arasına koyar. Sonra ara ki bulasın ekran kartı driver’ında mı sorun, programda mı nerde…

    Bir program ararsınız 35 tane alternatif çıkar, bunlardan yarısı zaten KDE’dir kullanasınız gelmez, geri kalanın her birinde ayrı bug olur.

    Özetle kurcalaması zevklidir, her sorunun da bir çözümü vardır ama geri dönüp harcadığınız vakte bakarsanız inanılmaz vakit kaybettirdiğini fark edersiniz.

    Özellikle leopard ve windows 7’den sonra linux’u desktop’ta macos ya da windows 7’ye tercih etmeyi gerektirecek hiçbir neden göremiyorum ben şahsen…

    Reply
  3. Şahsen ben Şuan makinemde Hem Ubuntu Hem Pardus hemde Windows7 kullanıyorum.3üde sorunsuz çalışıyor.Söylediğiniz hatalarda çok çok nadir nerdeyse hiç olmuyor.ÖZelliklede Ubuntu çok hızlı basit kullanışlı.Yani sizi bilmiyorum ama bende hiçbir problem yok.

    Reply

Leave a Comment.