Nedir?

Pınar Yanardağ'ın Özgür Yazılım, Linux, Ruby, Pardus, ıvır zıvır günlüğü...

Daha etkin bir geliştirici olmanın ip uçları…

January 11th, 2007 by PINguAR

Bu sene gördüğümüz son sınıf dersleri arasında “Yazılım Mühendisliği” diye bir ders var. Aslında hep teori içerikli gittiği için; öğretici olabilecek bu ders öğrenci psikolojisi karşısında direnemiyor ve anlatılanlar bir kulağımızdan gidip ötekinden çıkıyor :) Ancak hepimiz içgüdüsel olarak yazılım geliştirme konusunda kendimize göre yöntemler uygulamışız zaman içinde: mesela ben 1. sınıftayken ucundan tek kişilik ? extreme programlama yapıyor olduğumu farkettim * *. Programın tasarım sürecini göz ardı ederek direkt kodlamaya geçiyordum; hızlı geliştirme/bol bug oluyordu haliyle. Ya da yıllardır üst sınıflardan aldığımız bazı derslerin ödevlerini yeni ihtiyaçlara göre ‘modifikasyon’ ederken aslında reengineering yapıyormuşuz…

Açıkçası yazılım geliştirirken genel/geçer kuralları izlemiyorum. Ama daha iyi bir geliştirici/mühendis olmak için bazı kuralları akılda bulundurmakta fayda var. Deneyimli Ruby hackerlarından Yurii Rashkovskii, dün daha efektif bir geliştirici olmak için bir kaç ipucu vermiş. Bazıları benim de benimsediğim kurallar olduğu için bahsettiği ipuçlarına burada yer vermek istedim:

Planlama

Planlama şüphesiz bir yazılım için olmazsa olmaz adımlardan biri. Her ne kadar yazılım hakkında tasarladığınız bir takım adımlar olsa da; direkt kafanızdaki taslak ile kodlamaya geçerseniz mutlaka geri dönmeniz gereken adımlar oluyor. Yurii’nin önerdiği planlama şöyle:

  • Yapmanız gereken işlerin bir listesini hazırlayın
  • Kısa zamanda bitecek işleri ‘Rightnow’ dizinine koyun
  • Ertesi gün bitmesi gerekenleri ‘Today’, haftaya kadar bitirilmesi gerekenleri ‘ThisWeek’, … vb. dizininlere koyun
  • Bunları yaparken görevleri kısa ve açıkça belirleyin
  • Zamanlama konusunda gerçekçi olun

Ben planlama için genelde kağıt-kalem :) bunları webe aktarmak için de Ta-da List‘i kullanıyorum. Zihin haritalama programları da bu iş için alternatif olabilir.

Çalışma

  • Öncelikli işleriniz için ‘Rightnow’ dizinine göz atın. Yapılacakları yapın, dizin boşaldığında Today’a, o boşaldığında bir sonraki dizine atlayın
  • Ancak üzerinde çalıştığınız dizini bitirmeden bir sonrakine geçmeyin

Kaynak Kodun Yönetimi

Kaynak kodlarımız ortaya koyacağımız en önemli eser değil mi? :)

Hepinizin başına gelmiştir: kendi kendinize geliştirdiğiniz amatör uygulamalarda radikal bir değişiklik yaparken yedeğini alırsınız, bir süre sonra eğer sürüm numarası da vermesiyseniz iş içinden çıkılmaz hale gelir. Kendi subversiyon sunucunuzu kurmanıza gerek yok. *forge türü proje barındırma siteleri genelde bu hizmeti sunuyor.

  • Versiyon kontrol sistemi kullanın: Subversion, Darcs gibi..
  • Kontrol mesajlarınızın açıklayıcı olmasına dikkat edin
  • trac ya da ona benzer bir scm kullanın

Kaynak Kod

Kodumuzu açık kaynaklı olarak yayınlamakla iş bitmiyor tabii. Anlaşılır kodlar yazmak için de bir dizi öneri var:

  • İsimlendirme kurallarına uyun
  • Anlamlı değişken, metot, sınıf adları kullanın
  • Okunabilir kodlar yazmaya çalışın
  • Kod boyutunuzu küçültmeye çalışın; eğer kullandığınız metodun daha kısa hali varsa onu kullanın *
  • Kodunuzu depoya göndermeden önce gözden geçirin; beğenmediğiniz yerleri düzeltmeye çalışın
  • Meslektaşınızdan kodunuzu 15 dakikalığına gözden geçirmesini rica edin

Bu zaten sıkça dile getirilen bir şey ama, aynı zamanda kodunuza yorum satırları eklemeye özen göstermelisiniz. Bu sadece kodu okuyana değil, uzun bir aradan sonra koda baktığınızda size de faydalı olacaktır.

Test

Yurii bu maddeyi daha çok Ruby kullancıları için özelleştirmiş. Test noktasında ben birşeyler söyleyeyim: yazacağınız metodun/sınıfın önce iskelet halini oluşturun. Böylece neler yapmanız gerektiğini önünüze koymuş olursunuz. Aynı zamanda belli bir işi yapan kod parçalarını interaktif kabukta deneyerek tüm programı derlemeden/çalıştırmak zorunda kalmadan test edebilirsiniz. Tabii test aşaması oldukça geniş bir alan. Pek çok argüman eklenebilir.

Sonradan gelen edit: Bugun konuyu biraz daha araştırayım dedim. Keşke daha önce rastlasaydım dediğim harika bir makaleye rastladım: “How To Write Unmaintainable Code”. Roedy Green tarafından yazılmış. Eğer benden önce davranan olmazsa en kısa zamanda Türkçe’ye çevireceğimdir ;)

Linux, Ruby, Gezegen altında kategorilenmiş |

Bu yazı toplam 1407 kere okunmuş.
Şu an 1 kişi okuyor.
Aynı anda en fazla 3 kişi okumuş.
En son 2008-07-08 23:45:28 tarihinde okunmuş.

OOOOO
5 oy - Sonuclari gormek icin oylayin!

7 Yorum Var

  1. PINguAR Der ki:

    Benim “yandan yemiş extreme programming” * diye tabir ettiğim şeyin adı “waterfall model”miş :)

    Trackback @ http://raptiye.org/blog/?p=156

  2. necdet yücel Der ki:

    Bu howto gerçekten süpermiş. Uzun zamanımı aldı ama çok eğlendim. Türkçesini programlama dersinde okutmak lazım. Önümüzdeki dönem okutayım bunu.

  3. rower Der ki:

    mrblar
    ruby ile ilgili ders notu olarak gösterebileceğiniz kaynak var mı (Türkçe) :)
    mesela bi örnek ve bu örneği derlemek ve çalıştırmak için ne yazcam

  4. PINguAR Der ki:

    Selam rower,

    Ders notu olarak bu kılavuzu: http://belgeler.pinguar.org/pdf/ruby-ug.pdf ve Programming Ruby kitabının ilk 5 bölümünün çevirisini kullanabilirsin: http://projects.comu.edu.tr/fra/ruby-programlama/

    Onun dışında bu seminer notu faydalı olacaktır: http://www.slideshare.net/pinguar/ruby-programlama-dilinin-temelleri

    Soruna gelince yazdığın kodu bir dosyaya kaydedip “ruby dosya.rb” şeklinde çalıştırabilirsin. Tabii Windows üzerinde isen önce One-Click installer ile başlamalısın: http://rubyinstaller.rubyforge.org/wiki/wiki.pl?RubyInstaller ;)

  5. rob33n Der ki:

    Bu extreme programming hastalığım beni delirticek. Hiç programlı değilim gerçekten. Güya okulu bitiricez yakında ve MCPD kursunda öğretmişlerdi. Ama dersler dolayısıyla yine fazla alakadar olamadım ve uygulamalar hep gecikti. Yazınızı okudum ve bir karar aldım. Finallerimden dolayı bu kararı biraz ertelemek durumundayım ama yazın muhakkak uygulayacağım.
    ta-da list ve diğer faydalı linkler ve bilgiler olsun teşekkürler. Çok işime yarıyacak gerçekten.

  6. PINguAR Der ki:

    Bilgilerin işinize yaradığına sevindim, kolay gelsin ;)

  7. Daha iyi bir geliştirici olmanın yolları « Der ki:

    […] Kod boyutunuzu küçültmeye çalışın; eğer kullandığınız metodun daha kısa hali varsa onu kullanın * […]

Yorum Yapın

Not: Yorumlarınız admin tarafından onaylandıktan sonra görünebilir olacak.


En Popüler Yazılar

Kategoriler

Son Yazılanlar

Arşiv

İstatistikler

  • Şu an Pınar'ın Linux Günlüğü'nde 93 yazı ve
  • 1072 yorum var.
  • Ziyaretçiler

    • 5 <- şu anki çevrimiçi kişi sayısı
    • 135 <- aynı anda maksimum çevrimiçi kişi sayısı
    • 318885 <- toplam ziyaretçi

    Pardus

    Pardus... Özgürlük İçin...

    Lisans

    Creative Commons License

    Bu günlük Creative Commons ile lisanslanmıştır.