Neden bu kadar çok kod böyle?

 

İnsanlar kodlarını yayınladıklarında bunu çok görüyorum.

if (a==b){
Dothis;
Dothis;
etc;
}

Şimdi, diğer insanların kodunun kısa parçalarını okurken bu bir sorun değil.

Ancak kodları çok olduğunda, takip etmeyi neredeyse imkansız hale getirebilir.

Birçoğunun kendi kodunda hata bulmakta zorluk çekeceğini düşünürdüm.

Bu neden olmasın?

 if (a==b)
{
Dothis
Dothis
etc
}

//Or

if (a==b)
  {
  Dothis
  Dothis
  etc
  }

 

Eski stilde ( K & R stili ) (girintili olduğu sürece) yanlış bir şey yoktur. Bu tür sözdizimine sahip dillerde çokça kullanılır (C, Java, Perl).

Örneğin, Java Standardı ve oldukça okunabilir IMO'dur (doğru girintili olduğu sürece). [Mql4, C stili sözdiziminden büyük ölçüde ödünç aldığından, bu diğer dillerden bahsetmenin uygun olduğunu düşünüyorum]

Yine de girintili olmalıdır:


 if (a==b){
   Dothis;
   Dothis;
   etc;
}


2. örnek ( Allman stili ) ayrıca bazıları tarafından tercih edilir ve genellikle daha okunaklı olduğu kabul edilir (yine doğru girinti ile)


 if (a==b)
{
   Dothis;
   Dothis;
   etc;
}

ancak reddettiğiniz yöntem başka yerlerde oldukça popüler (okunabilirlik nedenleriyle)

Son örneğiniz hiç hoşuma gitmedi.

 

allman stili ayrıca, özellikle karmaşıksa başka ağaçlarda eksik parantezleri belirlemek daha kolaydır.

 

Brace stili bir programcı tercihidir, gerçekten doğru ya da yanlış bir yöntem Imo yoktur. K&R stili en iyisidir ;-). Neden bir açılış ayracı için fazladan bir satır alayım .... gerçekten umurumda olan şey, hangi if{ifade}'ye ait olduğu. Neyin daha iyi ve anlaşılması daha kolay göründüğünü örnekleyin.

 if (.............................)
    {
     if (.............................)
        {
         if (.............................)
            {
             if (.............................)
                {
                 if (.............................)
                    {
                     if (.............................)
                        {
                         if (.............................)
                            {
                             if (.............................)
                                {
                                 if (.............................)
                                    {
                                     if (.............................)
                                        {
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

Veya bu sürüm:

 if (.............................){
     if (.............................){
         if (.............................){
             if (.............................){
                 if (.............................){
                     if (.............................){
                         if (.............................){
                             if (.............................){
                                 if (.............................){
                                     if (.............................){
}   }   }   }   }   }   }   }   }   }

Ve daha da iyisi.

 if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
if ( !.............................) return
Imo, son versiyon gerçek hayatta nasıl yazdığıma daha doğal geliyor. Satır satır.
 

Bunu şöyle yapıyorum:

 if (.............................)
{ if (.............................)
 { if (.............................)
  { if (.............................)
   { if (.............................)
    { if (.............................)
     { if (.............................)
      { if (.............................)
       { if (.............................)
        { if (.............................)
}}}}}}}}}
 

Tartışmayı seviyorum.

Peki ya else ifadesini kodlama tercihi ? Bazı editörler bu tür blokları katlayamıyor/açamıyor olsa da ben ilk örneği tercih ediyorum. İkincisi uzlaşmadır. Üçüncüsü daha da tutarlı, ancak okunamıyor.

 if (cond) {
   command;
} else if (cond) {
   command;
} else {
   command;
}

veya

 if (cond) {
   command;
}
else if (cond) {
   command;
} 
else {
   command;
}

veya

 if (cond) {
   command;
} 
else {
   if (cond) {
      command;
   }   
   else {
      command;
   }  
}
 
Bir dereceye kadar önemli değil, önemli olan seçilen stili uygulamanın tutarlılığıdır. . . hepimizin kendi tercihleri var tabi
 

Başka pek kullanmıyorum. Bir süre önce başka kullanmak zorunda kaldığım bir sorun vardı (sorunu hatırlayamıyorum). Başka kullandığımda, böyle bir şey oldu.

 if (cond) { command; } else 
if (cond) { command; } else {
   command;
}

Ancak şimdi, yukarıdaki gibi bir şeyi kodlama konusunda ilk öğrettiğim olurdu.

 if ( cond ){ command; return; }
if ( cond ){ command; return; }
command;

Evet, üç satırlı bir kodu fonksiyona çevireceğim 8)))

 
SDC :

böyle olursa yaparım

Şahsen ben bunu çamur kadar net buluyorum
 
RaptorUK : Şahsen ben bunu çamur kadar net buluyorum
Sadece gözlerimi acıtıyor :{
 
RaptorUK :
Bir dereceye kadar önemli değil, önemli olan seçilen stili uygulamanın tutarlılığıdır. . . hepimizin kendi tercihleri var tabi

Raptor'a katılıyorum. Hiçbir şey hakkında konu. İnsanlar kodlarını SRC kullanmadan buraya gönderdiklerinde çok daha fazla sinirleniyorum. Yardım istemeyecekleri sürece programlarını nasıl kodlayacakları onlara kalmış.