Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Categories: Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Coding Disaster, Tip, Coding Disaster, Coding Disaster, Coding Disaster, Tip, Tip, Coding Disaster, Coding Disaster, Tip, Coding Disaster, Coding Disaster, Coding Disaster, Tip, Tip, Tip, Coding Disaster, Coding Disaster, Tip, Tip, Tip, Coding Disaster, Coding Disaster, Coding Disaster, Tip, Tip, Tip, Tip, Coding Disaster, Tip, Tip, Tip, Coding Disaster, Tip, Tip, Tip, Tip, Tip, Tip, Coding Disaster, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip, Tip Posted by okutbay on 05.03.2014 19:45 | Yorumlar (0)

Selamlar, kod yazmak zor (dışarıdan çok kolay görünebilir) bir iştir. Gelecek cümle özellikle yeni başlayan, başlayacak arkadaşlar için. "Ama kod okumak çok daha zor bir iştir!"

O nedenle kod yazarken, bir süre sonra sizin ya da başka birinin bu kodu okuyup anlaması gerektiğini aklınızdan çıkarmadan üşengeçlik yapmamaya özen göstermek önemlidir.

Bu yolda kullanabileceğiniz en güçlü bedava araçlardan biri aynı kod blogunda olan (indent olarak aynı hizada olan) kod satırları arasında okumayı kolaylaştıracak boşlukları gerektiği kadar vermektir. Gerektiği kadar diyorum çünkü her satır arasına boşluk koymak da koymamakla aynı şeydir. Kodunuzun okunmasını zorlaştırır.

Örneğin şu kod bloguna bakin.

List<ContactMethod> contactMethods = new List<ContactMethod>();
ContactMethod contactMethod = null;
values = new System.Collections.ArrayList();
values.Add(LangID);
values.Add(companyID);
try
{
    command = x.DaoBase.DBHelper.GetCommand(type, "8", values);
    dr = command.ExecuteReader();
    if (dr != null)
    {
        while (dr.Read())
        {
            contactMethod = new ContactMethod();

Bunu yazarken şu şeklide yazmak okumayi ve kodu anlamayi kolaylaştıracaktır.

List<ContactMethod> contactMethods = new List<ContactMethod>();
ContactMethod contactMethod = null;
values = new System.Collections.ArrayList();
values.Add(LangID);
values.Add(companyID);

try
{
    command = x.DaoBase.DBHelper.GetCommand(type, "8", values);
    dr = command.ExecuteReader();
    if (dr != null)
    {
        while (dr.Read())
        {
            contactMethod = new ContactMethod();

Boşlukları vererek kod blogunda (aynı seviyede) yer alan kodları mantıksal olarak ilişkilerine göre gruplamış olduk aslında. Özellikle try, if gibi kod bloklarını aynı seviyedeki kodlardan ayırmak için öncesinde bir satır boşluk bırakmak iyi olur. Aynı seviyede olmayan try ve command arasına boşluk vermeye gerek olmadığını da söylemek isterim.

Olay bu kadar.

Klavyeler şen ola...!

11 kişi tarafından 2.0 olarak değerlendirildi

  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories: Coding Disaster, Genel, Hata, Programlama, SSS (FAQ) Posted by okutbay on 24.11.2010 14:52 | Yorumlar (0)

Yazılım işindeyseniz sıfırdan geliştireceğiniz yeni projelerin toplamından daha fazla bitmiş, çalışmakta olan sistemlere bakım yapmakla, hatalarını gidermekle uğraşacağınız çok kuvvetli bir olasılıktır (Bu gerçeği bilerek iş hayatına atılırsanız yaşayacağınız hayal kırıklıklarının mesleğinize duyduğunuz sevgiyi azaltmasının önüne geçebilirsiniz gibi geliyor...)

Bir gerçek daha yazılım geliştirirken karşınıza çıkacak en can sıkıcı hatalardan biri null reference hatalarıdır. Can sıkıcıdır çünkü kodu yazan arkadaşınız (ya da siz) nasıl olur da null olma olasılığına karşı gerekli kontrolü yapmayı unutmuşdur.

Ama bu hatadan daha da can sıkıcı olanı bir string ya da dizinin null olmasıdır. Çünkü bir dizi ya da string null ise .Lenght(), .ToString() gibi metodlarını çatır çatır patlayacaktır.

Bu duruma en temel çözüm her hangi bir özellik ya da method string ya da array döndürüyorsa null döndürmesine asla izin vermemektir (bunu sadece ben söymiyorum Microsoft da best practice olarak bunu öneriyor...). NULL yerine boş string ya da dizi döndürün...

Klavyeler şen ola...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Coding Disaster Posted by okutbay on 16.02.2010 14:27 | Yorumlar (0)

When you are coding don't forget to use your brain. Always ask yourself. "Is there another way to do this?", "What am i doing here?". If you are copying someone else's code. Understand well purpose of the code.

Now you might ask "what the hell you are talking about?" Probably i will answer "Just angry to a mindless coder."

Look at the sample i choose for you and you will understand why i want to cry!

codingtragedy001

1 QuestionPage = QuestionPage.Replace("id=radiobutton_A", " id=radiobutton_A_" & QuestionID & " onclick=ControlTEST(this.id.split('_')[2]); ")

this is very bad written ASP.NET web application VB.NET code-behind code. Our genious programmer replacing id value with a new one and appending a javascript method call for onclick event. In that javascript call our programmer parses the control id with split and gets the id back and passes the Question id value to the javascript method. But forgets to "think" the value is already there and can be directly appended to the text.

And this is what i'm talking about:

1 QuestionPage = QuestionPage.Replace("id=radiobutton_A", " id=radiobutton_A_" & QuestionID & " onclick=ControlTEST(" & QuestionID & "); ")

I like this quote: "This machine has no brain, use your own!"

Happy coding...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5