Gerçekten çok güzel bir yazı yazmış arkadaş ve bende yeni başlayan arkadaşlarla paylaşmak istedim. gerçi sadece yeni başlayanlar için değil ama olsun. Şimdi yazılım araçlarının daha da gelişmesi, ve bu araçlara erişimin kolaylaşması, açık kaynak yazılımların çoğalması, dizayn, mimari, güvenlik, yönetim, nesne yönelimli gibi konular hakkında materyalin daha fazla bulunabilmesi 10 sene önce hayal bile edilemeyecek bir durumdu. Bu kadar çok kaynak serbest olarak erişilebilir olduğu için performansı düşük, anlaşılması zor, bakımı ve değiştirmesi imkansız kod yazmak günah olmalı bence. Peki nasıl mükemmelliğe ulaşacağız? Yazdığımız kodu nasıl daha anlaşılır biçimde üreteceğiz? Dökümantasyonu nasıl daha okunur hale getireceğiz? Nasıl daha fazla öğrenip uygulayacağız? İşte bu yazımda sizlere birkaç püf noktası vererek iş kalitenizi arttıracak konulardan bahsetmek istiyorum. Yazılım geliştirme olayını bir bütün olarak ele aldığımızda kod yazmanın çok küçük bir parçayı temsil ettiğini görüyoruz. Hataların en fazla yapıldığı ve müşteri isteklerinin programa dönüştürüldüğü geçiş süreci olduğu için de yanlış anlaşılmalara ve uygulamalara en açık bölüm. Hal böyle olunca buna bir de yazılımcının yetersiz deneyimini ve yönetimin ilgisizliğini katarsak ortaya kalitenin çok düşük olacağı bir ürün çıkacaktır. Yazılım uzmanı kullandığı programlama dilini çok iyi biliyor olabilir. Yazılımı yapılan işi de bilmek en az programlamayı bilmek kadar önemlidir. Örneğin muhasebe kurallarını bilmeden nasıl muhasebe programı yazacağız? Yada diğer sistemlerin girdi çıktılarını öğrenmeden nasıl entegre bir sistem yazacağız? Çoğu zaman program geliştirmek; favori text editörümüzü açıp bir kaç satır kod yazmak, veritabanına iki üç tablo yerleştirmek ile başlar. Bu bazı firmalarda dahi böyle. Bu tür bir projeye devam ettiğinizi düşünelim eminim 5 ay sonra ilk yazılan kodun tek satırı dahi kalmaz. Diğer bir konuda yazılan kodun müşteri istekleri ile örtüşmesi. Örneğin yazdığınız bir fonksiyonun hangi müşteri isteği tarafından kullanıldığını biliyor musunuz? Kitap Okuyun Kullandığınız yazılım dili ile ilgili en az bir referans kitap bulundurmalısınız. Araştırıp en iyisini veya tavsiye edilenleri alın. Dil ile ilgili kitapların yanında insan ilişkilerini anlatan kitaplar, proje yönetimini anlatan kitaplar, süreç iyileştirme ile ilgili kitaplar, IEEE, CMMI yada ISO standart kitapları, UML ve nesne yönelimli dizayn konularını anlatan kitaplar, kullandığınız yazılım araçlarını anlatan kitaplar, güvenli kod yazmak ile ilgili kitaplar sayılabilir. Burada kitap reklamı yapmayacağım, eğer ilgileniyorsanız benimle bağlatıya geçip bilgi alabilirsiniz. Bu kitaplardan öğreneceğiniz yöntemler yazdığınız kodun kalitesini oldukça arttıracaktır.

eline sağlık

Refactoring Nedir Öğrenin Refactoring yazılan kodun performansının, bakımının, okunabilirliğinin ve yeniden kullanılabilirliğinin arttırılması için uygulanan bir dizi metoddan ibarettir. Örneğin tekrar eden rutinleri ayrı fonksiyonlara ayırmak, ilgili rutinleri bir sınıf altında toplamak, değişken isimlerini değiştirmek, algoritmaları daha hızlı çalışır hale getirmek vb gibi. Tüm bunları yaparkende zaten çalışan kodu bozmamak. Sonuçta işin kalitesi artmış oluyor. İnsan İlişkilerini Sıcak Tutun Firma içinde olsun, bağlı olduğunuz sektörde olsun; tanıştığınız insanlar ile ilişkilerinizi sıcak tutmaya çalışın. Bir gün bir probleminiz olduğunda gene onlara soracaksınız ama sadece probleminiz olduğunda bu kişilerle bağlantı kurarsanız biraz ayıp olur. Ayrıca soru sormayıda öğrenmek gerek. Örneğin benim blogumda bir kaç tane yorum var, sadece hata aldığı kısmı kopyalayıp yapıştırmış. Ne bir açıklayıcı not var nede takip ettiği adımları anlatmış. Neyse bende çıkarttım kristal küremi baktım neymiş hatası. Geriye mesaj atıp 3 vakte kadar çözeceksin dedim. Değişime ve Yenilenmeye Açık Olun Değişik metodları ve yeni ürünleri kurmaktan, kullanmaktan çekinmeyin. Değişmeyen ve yenilenmeyen beyinler bir gün gelir sistem dışı kalırlar. Değişiklik ve yenilik her zaman iyi olmayabilir ama bunun muhakemesini yapacak olan sizlersiniz. Benim en çok karşılaştığım tipler "gündüz programcıları". Bunlar sadece yazılım sektörü iyi maaş ödüyor diye sektöre atılmış kişilerdir. Bir iki kurstan sonra hayata atılıp kendilerini işin ehli gibiymiş gösterip ahkam keserler. Bu kişiler kullandıkları yöntemleri değiştirmek istemezler çünkü öğrenmek ve uygulamak beraberinde yeni külfetler getirecektir. Zaten bildikleri yoldan şaşmayıp işlerini zamanında bitirmeye çalışırlar. Mükemmele ulaşmak gibi bir çabaları yoktur. Refactoring deyince küfür zannederler Birde "gece programcıları" vardır. Burada anlattıklarımı yüzde 70 yapan kişiler sanırım bu kategoriye giriyorlar. Gece programcısı araştırıp öğrenmek, yenilikleri denemek için sonsuz bir istek içindedir. Mükemmelliğe ulaşana kadar her yolu dener. Sistemleri değiştirmekten kaçınmaz. Sektörün her iki tip insana da ihtiyacı var. Biri iyidir, diğeri kötüdür diye bir yorum yapmayalım. Projelerde bazen zamanlama ön plandadır, kimi zamanda kalite. Duruma göre bu iki tip yazılım uzmanının dengeli bir karışımı kaliteli bir ürünü zamanında teslim etmenize sebep olabilir. Firma Kültürünü Öğrenin Firma içindeki işleyiş şemasını iyi öğrenin. Firma kurallarını iyi öğrenin. Bazı kurallar yazılı olmayabilir ve zamanla öğrenilecek kurallardır. Yazılım standartlarını, kullanılan araçları, ve ağ yapısını öğrenin. Yazdığınız kodun standartlara uyduğundan emin olun. Kişisel Bilgisayarınıza Yazılım Araçlarını Kurun Yazılım olayına gönül vermiş iseniz zaten bunu söylemeye gerek yok. Ama ben öyle insanlar ile çalıştım ki adam sadece firma duvarları arasında yazılım uzmanı olarak geçiyor. Evinde bir bilgisayarı dahi yok, varsa bile örütbağı amaçlı kullanıyor. Bir kişisel e-posta adresi yok. Seminerlerden, toplantılardan, etkinliklerden bi haber. Ben bu işi yapmaktan zevk alıyorsam tabii ki evimdeki bilgisayarıma gerekli araçları yüklerim. Evde de bazı projeler geliştirmek isterim. Amaç daha çok denemek, daha çok yanılmak ve bilgiyi arttırmak değil mi? Açık Kaynak Projelere Katılın Açık kaynak projeler size bir ekip içinde nasıl çalışacağınızı ve ne tür araçları kullanacağınız hakkında bilgi verir. Katılacağınız bir projeyi eminim Sourceforge yada başka açık kaynak proje sitelerinde bulabilirsiniz. Sonuçta yazdığınız kod başkaları tarafından kontrol edileceği için değişiklikleri takip edip en iyi nasıl yazılır öğrenebilirsiniz. Hayal Kurun Hayal kurmak beynimizin en üretken işlerinden biridir. Hayal kurarken problemlere yeni çözümler bulabilir veya yeni projelere başlamak için malzeme toplayabilirsiniz. Ben bir defter alıp buna aklıma gelen olası projeleri yazıyorum. Gerçi ben projeleri hayata geçirene kadar birileri benden önce yapıyor ama olsun. Bu yöntemin amacı aslında yeni projeler bulmak değil var olan projelerin belirli kısımlarının nasıl düzeltilebileceğini araştırmaktır. Örneğin bir projede şöyle bir durumla karşı karşıya kaldık. Bir dökümanın onaylanması için 3 ayrı kişinin onay vermesi gerekiyordu. 5 yıl önce programı dizayn edenler veritabanında ki Dokuman tablosunda bu 3 kişi için birer saha tanımlamış. Gel zaman git zaman, onaylama süreçleri organizasyonun yapısı ile değişmiş fakat yeni sistemi karşılayacak veritabanında yeteri kadar saha yok. Olayın çözümü basit. Ek bir tablo yaratıp onaylayacak kişileri burada tutabilir ve her döküman için istendiği kadar çok onaylayacak kişi tanımlanabilir. Kod Teftişi Kod teftişi başkasının yazdığı kodun gözden geçirilmesi ve aksaklıkların not edilmesidir. Proje açık kaynak ise, kodu düzeltmek te işin içine girer. Eğer firma içinde yazılım geliştiriyorsanız, kodun yazarına bir not gönderip değişmesi gereken yerleri ve nedenlerini bildirebilirsiniz. Kod teftişinin amacı var olan kodu daha iyi çalışır hale getirmek yada proje standartlarına uydurmaktır. Agile metodları ile geliştirme yapanlar Pair Programming olayını bilirler. Bu yöntemde iki kişi bilgisayarın karşısına geçer. Birisi kod yazarken diğeride yazılan koda puan verir. 10'dan başlayan bu puanlamada her hata da 1 puan düşülür. Kodlama bitince programın aldığı puana bakılır ve 10 puan almak için neler yapılabilir tartışılır. Gerekli olan düzeltmeler uygulanır. Mr.

Mükemmel bir anlatım. Emeklerine sağlık kardeşim

Ellerine sağlık. teşekküe ederim

Eline sağlık güzel yazmışsın

copy paste ne

elıne yuregıne saglık