Ana içeriğe atla

C# Programlama Rehberi Yazı Dizisi 1


Merhaba arkadaşlar. Elime çok güzel bir kaynak geçti yazan kişi başlığına C# Programlama Rehberi demiş  yazıyı bir yazı dizisi şeklinde 10 madde 10 madde sizlerle paylaşmayı düşünüyorum. 

Buyurun yeni başlayanlar, başlayacak olanlar, ben ileri seviyeyim diyenler sizlere gerçekten güzel bir bakış açısı kazandıracak bir yazı dizisi...NCFKR



1. Tasarımdaki zerafet her zaman kazandırır: Herhangi bir yazılım tasarımı sırasında dikkatli ve olabildiği kadar güzel tasarlamanız size ilk bakışta çok zaman kaybetttiğiniz hissini verebilir. Fakat tasarladığınız sistem veya modül çalışmaya başlayınca siz aslında çok şeyleri kazandığınızı farkedeceksiniz. Bunlardan bazılarını sayacak olursak; benzer bir durumda ya tasarımınızı aynen kullanabileceksiniz ya da çok az bir değişiklikle aynı tasarımı kullanmaya imkanınız olacaktır. Bu sayede belki tasarrufunuz saatleri, günleri ve hatta haftaları bulacaktır. İyi bir tasarım sistemi daha hızlı oluşturma ve hata ayıklamanın yannında daha kolay anlaşılmasına ve güncellenmesine de yardımcı olacaktır ki bu da vakit nakittir prensibi ile yakından ilgilidir. Bazen siz zarif bir iş yaparken kimileri sizin çok çalıştığınızı fakat verimli olmadığınız iddaa edebilir ki siz bunlara kulak asmayın. Diğerleri gibi hızlı iş çıkarmaya çalışmak aslında proje(ler)in daha yavaş ilerlesine yolaçacağına emin olabilirsiniz.



2. Önce çalışan sonra hızlı çalışanı yap: Eğer projenizde bir yer sistemin darboğazı ise ilk etapta onun doğru çalışanını yapın. Sistemdeki darboğaz ile ilgili kısmı olabildiği kadar kolay ve anlaşılır biçimde hazırlayın ve çalıştırın. Sonra performans testlerine tabi tutun. Eğer testlerde büyük bir hız sorunu varsa onu düzeltmeye kalkın. Çoğu zaman darboğazın sizin için aslında çok önemli bir problem olmadığını farkedeceksiniz. Sizin için önemli olan zamanını idareli, tasarruflu, kullanmaktır.



Çevirmenin Notu: Donanım güngeçtikçe artan bir hızla ucuzluyor. Ama yazılım projelerinde sizin vaktiniz çok kıymetli ve sınırlıdır. Ondan dolayıdır ki .NET’i ve RAD kullanmak giderek popüler oluyor.




3. “Parçala, böl ve yut” prensibini her zaman akılda tut: Eğer çözmeniz gereken sistem çok karmaşık ise; programda en temel görevi veya işlevi yapan parça nedir onu bulmaya çalışın. Bu temel görevi yapan sınıfı yazdıktan sonra, diğer yan parçaları ya temel parçaya birşeyler ekleyerek (türetme, veya inheritance ile) veya temel parçayı destekleyici parçalar (sınıflar) geliştirerek sistemin tamamını oluşturun.



4. Sınıf tasarımcısı ile sınıf kullanıcısını birbirinden ayırın: Sınıf tasarımcısının hazırladığı sınıfları kullanan programcılar genelde “müşteri” olarak andlandırılır. Müşteri programcılar sınıfların içinde neyin olup bittiğini bilmelerine gerek yoktur. Sınıf tasarımcısı, sınıf oluşturmada tam bir uzman olmalıdır ki en acemi programcı bile onun tasarladığı sınıfları kolaylıkla kullanabilmelidir. Sınıf kütüphanelerinin kullanım kolaylığı direk olarak sınıfın ne kadar taransparan yazıldığına dayanır.



Çevirmenin Notu: Sınıflar kullanırken onların içinde neyin olup bittiğinin bilinmesine ihtiyaç duyulmaması Nesne Yönelimli Programlamanın en temel prensiblerinden biri olan sarmalama (encapsulation) olarak adlandırlır.



5. Sınıfları oluşturuken isimlendirmeleri sınıf elemanlarının amaçlarını açıklaycı bir şekilde yapın: Bu sayede müşteri programcı için sınıf arayüzünün çok kolay anlaşılır olması hedefine ulaşabiliriz. Ayrıca gerekirse aynı işleri yapan farklı parametre alan metodlar içinde, metotlara aşırı yükleme (method overloading) kullanmanız çok uygun olacaktır.



Çevirmenin Notu: Metodlara aşırı yükleme ayın işi yapana fakat farklı parametre alan metodlara aynı isimleri verme kuralına dayanır. Mesela .NET snıf kütüphanesindeki Convert sınıfında tek bir ToInt32() metodu olmasına karşın, bu metota 18 defa, herbiri ayrı parametreler sayesinde, aşırı yüklenmiştir.



6. Sistem analiziniz ve tasarımınız, en az olarak, sistemdeki sınıfları, onların public arayüzlerini ve diğer sınıflarla ilşkilerini, özellikle temel sınıflarla üretmeli: Eğer sizin tasarım yönteminiz bundan daha fazlasını üretiyorsa; kendinize ekstraların programın yaşama süresi boyunca ne kadar değerleri olduğunu bir sorun. Genelde yazılım geliştirme takımındakiler kendilerinin verimliliğne pek bir katkısı olmayan parçaların bakımını yapmaya yanaşmazlar. Ayrıca bu gerçeği bir çok sistem tasarım metodolojisi gözardı ediyor maalesef.



7. Herşeyi otomatikleştirin: Sınıfın kodunu yazmadan önce, sınıfı tüm özellikleri ile test eden metodu yazın ve bunu sınıf içinde barındırın. Test kodunun çalışmasını makefile veya benzeri bir araçla otomatik hale getirin. Bu sayede sınıfın kodu içinde meydana gelen her türlü değişikliğitest kodu ile test edip muhtemel bir çok hatayı kolayca farkedip düzeltme imkanınız olacaktır. Her ne kadar derleyiciler ve yazılım geliştirme araçlarında inanılmayacak kadar çok kontrol özellkileri eklendiyse de ( tip kontrolü, hata ayıklama ve otomatik sözdizimi düzeltimi gibi) bunlar bir yere kadar kodun doğrulunu garanti edebiliyorlar. Eğer sağlam ve güvenilir bir sistem geliştirmek istiyorsak mümkün olduğu kadar dikkatli ve emin adımlarla ilerlemiyiz. Bunu sağlamak için iyi hazırlanmış test kodları ile sınıfın veya programın doğru çalıştığına emin olmalıyız.



Çevirmenin Notu: Window XP projesinde yazılan kodların en az %20 - %25’nin test kodları olduğunu söylersem galiba profesyonellik ve başarı açısından test kodlarının sanırım ne kadar önemli olduğunun altını çizmiş olurum.



8. Bir sınıfın kodunu yazmadan önce onun test kodunu yazınız: Bu tür bir yaklaşımla sınıf tasarımınızın tam anlamıyla doğru ve eksiksiz olduğunu doğrulayabiliriz. Ek olarak, test kodunu yazarken sınıfla ilgili gözden kaçan ve gerekli özellikler ve kısıtlamaların da (genelde tasarım ve analizde farkedemediğiniz) gözünüze çarpmasını sağlar. Test kodunun başka bir yararı da, doğal olarak, sınıfın kullanıma ilişkin bir örnek teşkil etmesidir.



9. Tüm yazılım geliştirme problemleri ek bir konseptsel yön değiştirme ile daha da basit bir hale getirelebilir: Bu yazılım geliştirme mühendisliğinin en temel kurallarından biri olup nesne yönelimli programlanın da dayandığını prensiblerden biridir.



10. Yön değiştirme anlamlı olmalı: Burdaki anlamlı biçimde yön değiştirme en basit hali ile çok kullanılan kodları aynı metod içine koymak olacaktır.


DEVAMI ÇOK YAKINDA...



Diğer Ders Anlatımları İçin-->;C# PROGRAMLAMA

Sadece Kod Dosyalarını İndirmek İçin-->;KODBANK

Yorumlar

Bu blogdaki popüler yayınlar

Matlab Programlama Soru Çözümü

26 Matlab Soru Çözümleri 26
25 Matlab Soru Çözümleri 25
24 Matlab Soru Çözümleri 24
23 Matlab Soru Çözümleri 23

Matlab Programlama Konu Anlatımı

18 Matlab Programlama 18 Matlab de Rand Fonksiyonu KullanımıMerhabalar herkese. Yeni ve belkide programlamada kullanım alanları ve yaptırabildiği uygulamalar dolayısıyla programlamanın önemli konularından olan rastgele sayı üretmeye yardımcı olan rand fonksiyonundan bahsetmeye çalışacağım bu yazımda sizlere.Bismillah diyelim ve başlayalım.Her programlama dilinde olduğu gibi Matlabde de rastgele sayı üretmeye sağlayan bir fonksiyonumuz bir metodumuz mevcuttur.Devamını Gör-->
17 Matlab Programlama 17 Matlab de Kullanıma Hazır Fonksiyonlar Ve İşlevleriMerhabalar herkese. Matlab derslerimizin 13. sü ile yolumuza devam ediyoruz. Bu dersimizde sizlere Matlab'in pek çok hazır fonksiyonundan ve işlevlerinden bahsetmeye çalışacağım.O zaman Bismillah diyelim ve yolumuza koyulalım.1 SAYI YUVARLAMA FONKSİYONLARIMatlab de ondalık sayılar üzerinde işlem yapabilmek için bize kolaylık sağlayan 4 tane fonksiyon vardır. Bu fonksiyonlar fix, round, ceil ve floor'dur.Devamını Gör-->
16 Matla…

Matlab Programlama 6 Ekrana Bilgi Yazdırma 2 fprintf Komutu

Merhabalar herkese. Son Matlab dersimizde ekranda bilgi gösterme işlemini disp komutu ile nasıl yapıldığını anlatmıştım. Bu dersimizde de yine ekranda bilgi gösterme işlemine devam edeceğiz. Bu dersimizde ise yine bu işlemi yapabildiğimiz diğer komutumuz olan fprintf komutunu anlatmaya çalışacağım.
O zaman Bismillah diyelim ve başlayalım.
İlk olarak fprinf komutunun genel olarak nasıl kullanıldığı ile işe başlayalım.
Fprintf(‘Ekrana Yazılacak Açıklama %x \n’ , değer);
Şeklindedir.
Burada %x bir semboldür ve yerine yazılabilecek değerler ise şunlardır.