Gerçek hackerlar ve Topu geçirenler
13 Ocak 2011 Perşembe
Uzun zamandir takip etmedigim gezegen pardus adresine girdim ve Faik Uygur Adli bir arkadasimizin blog yazisi dikkatimi cekti. Blog Basligi " Gerçek hackerlar ve Topu geçirenler " idi. Fakat yazida sadece final kisminda bahsedilmis olsada anlatilanin programlamaya baslayanlar icin oldugunu anladim. Ve benim gibi programlamaya yeni baslamis veya baslayacak olan acemi programcilarin okumasini istedigim icin burada yayinliyorum. Biraz uzun olabilir ama okumadan emek harcamadanda hicbirsey olmaz..
********************************************************************
Bir şeyi gözümde büyütmekten ve ya abartmaktan hoşlanmıyorum. Ama iş hayatımda, mesleki becerilerimde ve hatta bir çok alanda farklı bakış açıları kazanmamda özgür yazılımın büyük etkisi olmuştur. Çünkü dolaylı yoldan onu oluşturan harika topluluğu keşfetmemi sağlamıştır. Gerçek hackerları…
Hacker sözcüğünün toplum genelinde özünden alakasız ve yanlış çağrışımlar yapıyor olması ne kadar üzücü. Oysa tam tersi, kelime manası itibariyle yaratıcı düşünme kabiliyeti olan, pratik düşünce ve kıvrak zekaya sahip; bir şeyleri kıran, bozan değil üreten insanlardır kendileri. Interneti yapan, C (ve ya bir başka) programlama dilini yazan, ilk grafik tabanlı interaktif kişisel bilgisayarı garajlarında geliştiren (ki kendisi yıllarca malzeme için parası yetmediğinden kağıt üzerinde tasarım yapmıştır), Unix’i, Linux’u geliştiren ve daha bir çok bugün farkında olmadan kullandığımız teknolojilerin arkasındaki insanlardır, gerçek kahramanlardır, sanatçılardır. Onlar aykırıdır, farklıdır, meraklıdır, kurcalayandır, sorgulayandır.
Tüm bu kavram karmaşasının temellerini, bilgiye ulaşmasını beceremeyen, kavrayamayan, yorumlayamayan, karşısındakini de aptal zanneden, cahil ve tembel bir takım gazete ve medya mensupları atmışlar zamanında. Ve onların hataları da, yeni nesillerin, gözlerinin önündeki bir perdede oynayan sahte dünyanın arkasındaki gerçek dünyayı keşfetmelerine, ulaşmalarına halen engel olmaya ve onları yanlış yönlendirmeye devam ediyor.
Devamı
Kod Yazmak Yazılımın Neresinde
14 Nisan 2011 Perşembe
Bir kılıç ustasının eline en iyi kılıçlardan birini verirler. Ustanın gözünü kapatıp savaş meydanına sürerler. Kılış ustası hafif yaralanır ama dost düşman demeden çevresinde kim var kim yok kesip atmıştır…
Bir projeye başlarken ne yapacağını bilmemek gözleri bağlı kılıç ustasının savaş meydanında savaşmasına benzer. Kod yazılır, yeni ihtimaller doğar kod değiştirilir, farklı sonuçlar görülür baştan kodlanır tekrar en başa tekrar en başa… bu döngü uzun süre bu şekilde devam eder ta ki proje son şeklini alana kadar.
Amatör geliştirmede de yaşanan en büyük sıkıntı belki de bu. Bilgisizlikten ziyade yapılacak işin araştırılmamış olmaması. Bu yönden bakıldığında kod yazmak yazılımın neresinde acaba? En önemli yerinde mi yoksa en son kısmında mı?
Bir programlama diline baktığımızda yazılan kodlar bellidir. Basitçe örneklemek gerekirse Bir otomasyon projesinde veri tabanından okuma yazma güncelleme silme işlemi dışında yapılan iş çok azdır. Bu işlemleri biraz kendini ilerletmiş birisi rahatça yapabildiğine göre proje geliştirmeyi engelleyen ne? Elbette ki iş akışının tasarlanamamasıdır.
Bir proje ele alındığında konu ile ilgili araştırma yapılmalı, veriler kağıda dökülmeli, ihtimaller düşünülmeli, benzer uygulamalar incelenip art ve eksi yönleri çıkarılmalı. Son olarak analiz yapılıp ortaya bir model dökülmeli. Model ne kadar iyi ve esnek tasarlanırsa ileriki zamanlarda geliştirilmesi de o kadar olacaktır.
İyi bir modelleme işleminden sonra kod yazmaya geçilebilir fakat nasıl kod yazmak?
-Kod yazarken hata kontrolü yapılmalı try-catch blokları kullanılmalı. Bu durum istisnai durumlarda uygulamanızın istem dışı davranmasını engelleyecektir. Ayrıca hataların loglanması kontrolü tamamen geliştiriciye verecektir.
-Kodlama notasyonunuz olsun. Belli bir kodlama notasyonuna bağlı kalmanız hem projenizin ileriki zamanlarda okunabilirlik ve geliştirile bilirliği açısından hem de kullandığınız metotları tekrar kullanmak istediğinizde rahat kullanmanız açısından işinizi çok kolaylaştıracaktır. Kodlama notasyonu olarak Macar notasyonu gibi sık kullanılan bir notasyon tercih etmeniz sizi hem de geliştirecektir.
-Object-Oriented Mantığı ile kod yazın. Nesne yönelimli programlama ile kod tekrarlarından kurtulur hem de iş öbeklerini belirleyip projenizin daha esnek ve modüler olmasını sağlarsınız. Fakat Object Oriented ı sadece public class tan ibaret kullanırsanız bu projenizi sadece fonksiyon dosyalarına bölmenizi sağlar Nesne yönelimli yazılım tasarımlarını (Object Oriented Design)kesinlikle inceleyin ve kullanın.
-Kodlarınız içinde sıkça yorum cümlelerine ve summarylere yer verin bunlar gelişen projenizde neyi niçin yazdığınızı hatırlamanızı sağlayacaktır.
-Performans a özen gösterin. Yazdığınız kodu en iyi performansla nasıl çalıştırabileceğinizi düşünün. Örneğin veri tabanına defalarca gitmek yerine tek seferde datatable a atabilirsiniz. Ama Verileri DataTable a yüklerken fazla veri yüklememek için mümkün olduğunca parametrik metot yazmalısınız.
-Kullandığınız dil ve framework ün özelliklerini bilin. Bu size avantaj ve zaman kazandıracaktır.
-Hamallık ile Profesyonelliği karıştırmayın. Gereksiz kod yazmak hamallıktır. Ama fazladan size fayda sağlayacak kodu yazmak profesyonelliktir.
-Projenizde kullanacağınız component setleri, raporlama dll lerini inceleyin hangisinden daha fazla verim almışsanız onu kullanın.
-Bir kodu bir kez yazın ama tam yazın. Koda tekrar tekrar geri dönmek size belli bir süre çıkmaza sürükleyecektir. Bundan dolayı kodunuzu yazarken her olayı düşünerek yazın ve bir kez yazın.
…
Bu maddeler arttırılabilir fakat genel olarak özetlemek gerekirse aklıma gelenler bunlar.
Dikkat ederseniz daha kod yazma aşamasına gelmedik bahsedilen şeyler proje ihtiyaçlarının belirlenmesi, modelleme, kod nasıl yazılmalı nelere dikkat edilmeli gibi şeyler… Bunları başardıktan sonra kod yazma aşamasına geçilebilir.
Devamı
1 (Toplam 2 yazi bulunmaktadır)