MetaTrader 5 ticaret terminalinde şekillendirici - sayfa 5

 
Renat :

Beyler, kod kimin için yazılıyor?


Diğer programcılar için kesinlikle bundan eminim. Ve başka birinin biçimlendirilmemiş kodunu okumak onlar için çok ama çok tatsız.


Bu sorunu çözmek için şekillendiricinin normal işlevini yaptık. Başkalarının (sizin değil, başkalarının) kodunuza bakmasını istiyorsanız, onu en basit ve açık versiyona getirmek daha iyidir. Ve burada anahtar kelime "insan", "siz" değil.


Renat, şekillendirici kimin için yazılmış?


Kullanıcıların geri kalanı için çok emin. Ve başka birinin tarzında biçimlendirilmiş kodu okumaları onlar için çok ama çok tatsız.


Bu sorunu çözmek için şekillendiricinin normal işlevlerini genişletmeyi öneriyoruz. Başkalarının (sizin değil, başkalarının) şekillendiricinizi kullanmak istemesini istiyorsanız, onu en uygun ve özelleştirilebilir seçeneğe getirmek daha iyidir. Ve burada anahtar kelime "insan", "siz" değil.



Programcılar, yanlışlıkla kendileri için yaptıklarını zannetseler de, kendileri için kod yazmazlar. tanıdık mı



ps: CodeBase ile ilgili mazeret genellikle saçma, editörde yerleşik olan şekillendiricinin bununla ne ilgisi var?...

 
komposter :

ps: CodeBase ile ilgili mazeret genellikle saçma, editörde yerleşik olan şekillendiricinin bununla ne ilgisi var?...

Kod Tabanını kendiniz topladığınızda, bakımını yaptığınızda ve ödediğinizde, soru hemen ortadan kalkacaktır. Yoksa etraftaki her şeyin bedava olduğunu mu düşünüyorsunuz?


Şimdi tüm konuşma sadece "yapılandırılamaz olduğu için kötü" ilkeli konumla ilgili.


Belirli noktalara geçelim - şekillendirici tarafından hangi noktanın ve neden yanlış yapıldığını belirtin.

 
Renat :

Şimdi tüm konuşma sadece "yapılandırılamaz olduğu için kötü" ilkeli konumla ilgili.

Aynı fikirde olmamak.

Örneğin, şu pozisyona sahibim - "neyi tatmin etmiyor, çünkü genel kabul görmüş kodlama standartlarını karşılamıyor. Memnun olana kadar kullanmayacağım, tatmin olduğumda kullanacağım. sonuç" takım elbise "büyük bir rol oynamaz".


Sadece bu konuda değil, ilkeli bir konumunuz var.

Ve argümanlar oldukça makul ve rasyonel olsa bile, kategorik olarak diğer insanların argümanlarını dinlemek istemiyorsunuz.

Belirli noktalara geçelim - şekillendirici tarafından hangi noktanın ve neden yanlış yapıldığını belirtin.

Şekillendirici her şeyi doğru yapar. Ancak istenen (kabul edilebilir) sonucu eşleşmiyor.
 
TheXpert :

Aynı fikirde olmamak.

Örneğin, şu pozisyona sahibim - "neyi tatmin etmiyor, çünkü genel kabul görmüş kodlama standartlarını karşılamıyor. Memnun olana kadar kullanmayacağım, tatmin olduğumda kullanacağım. sonuç" takım elbise "büyük bir rol oynamaz".


Sadece bu konuda değil, ilkeli bir konumunuz var.

Ve argümanlar oldukça makul ve rasyonel olsa bile, kategorik olarak diğer insanların argümanlarını dinlemek istemiyorsunuz.

Şekillendirici her şeyi doğru yapar. Ancak istenen (kabul edilebilir) sonucu eşleşmiyor.

+1. Her konuda.

Standart stillere geri dönmek için sadece bir çözüme ihtiyacınız var. Geçmişte çarpık bir tarz benimsemenin hatalarını kabul etmek istemiyorlar.

 
marketeer :

+1. Her konuda.

Standart stillere geri dönmek için sadece bir çözüme ihtiyacınız var. Geçmişte çarpık bir tarz benimsemenin hatalarını kabul etmek istemiyorlar.


"eğrilik" ile aynı fikirde değil.

Onlar çok "daha lezzetli" ve "daha parlak" ... Bunun hakkında tartışmayın.

Ve ayarlar hakkında diyorlar - konuya daha sonra döneceğiz

;)

 
Sorento :


"eğrilik" ile aynı fikirde değil.

Onlar çok "daha lezzetli" ve "daha parlak" ... Bunun hakkında tartışmayın.

Ve ayarlar hakkında diyorlar - konuya daha sonra döneceğiz

;)

katılmıyorum ne demek? Anlaşmazlığa düşmeyecek fiili standartlar vardır, sadece uyulması gerekir. Raporları kendi HTML'lerinde bir alt-subvert ile oluşturmak akıllarına gelmedi - bunu standart olanda yaptılar. Stil ile aynı. Programlama dünya çapında bir endüstridir, stiller tanımlanır ve MetaQuot'lar bu tür bir "yenilik" ile kitlelere karşı çıkamaz.

 

Lütfen şekillendirici tarafından hangi noktanın ve neden yanlış yapıldığını belirtin.


Tercihen biçimlendirilmiş kod parçalarının bir gösterimi ile.

 
Renat :

Lütfen şekillendirici tarafından hangi noktanın ve neden yanlış yapıldığını belirtin.

Tercihen biçimlendirilmiş kod parçalarının bir gösterimi ile.

https://www.mql5.com/en/forum/122145 , sadece orada sekmeler küçük - 2 karakter, ancak 3-4 normal olmasına rağmen bu çok önemli değil.

İlk mesajdaki tanıtım. Virgül yoktur, bu cümledeki gibi gereklidir.


Ciddiyseniz kurumsal stil anlaşmamızdan alıntı yapabilirim.

Вот это стиль! :) - MQL4 форум
  • www.mql5.com
Вот это стиль! :) - MQL4 форум
 
Renat :

Lütfen şekillendirici tarafından hangi noktanın ve neden yanlış yapıldığını belirtin.

Tercihen biçimlendirilmiş kod parçalarının bir gösterimi ile.


Renat, bu zaten sportmenlik dışı;)

MQL SİZİN dilinizdir, bunun için bir standart yoktur, dolayısıyla SİZİN standartlarınızı belirleme hakkınız vardır. Ve sana hiçbir şey kanıtlamayacağız.

Ancak MQL, C benzeri bir dildir. Ve C'nin genel kabul görmüş birkaç standardı vardır. İşte bunlar: https://en.wikipedia.org/wiki/Indent_style

Ben şahsen Allman stilini (Emacs'ta bsd) tercih ederim.

Stil, bir kontrol ifadesi ile ilişkili küme ayracını bir sonraki satıra, kontrol ifadesi ile aynı seviyede girintili olarak yerleştirir. Parantez içindeki ifadeler bir sonraki seviyeye girintilidir.

 süre ( x == y )
{
bir şey ( ) ;
başka bir şey ( ) ;
}
son şey ( ) ;


Bana öyle geliyor ki, kendi bakış açınızı koruma sorunu kesinlikle çok zor. Metinlerinizin bu şekilde biçimlendirildiğini görmek istiyorsunuz - lütfen! Ancak farklı biçimlendirildiğini görmek isteyen başka insanlar da var. Bu kişiler (vücuda erişimi olmayan) ihtiyaçlarını göz önünde bulundurmanızı ve formatlayıcı için ayarlar yapmanızı ister, böylece sizinkine ve onlarınkine göre formatlanabilir. Bunu sadece siz, geliştiriciler yapabilirsiniz. Sizden rica ediyoruz. Ya bizimle buluşmaya gidersiniz ya da herkesi standardınıza gönderirsiniz. Seçeneğinizi seçin ve seslendirin.

Indent style - Wikipedia, the free encyclopedia
  • en.wikipedia.org
Indentation is not a requirement of most programming languages, where it is used as secondary notation. Rather, programmers indent to better convey the structure of their programs to human readers. In particular, indentation is used to show the relationship between control flow constructs such as conditions or loops and code contained within...
 

Bu konuyu neden önemli bulduğumu ve neden Allman stilinin (Emacs'ta bsd) en doğru olduğunu düşündüğümü birkaç paragraf ekleyeceğim. Kimin neye alıştığını bir süreliğine unutalım ve çıplak mantığa dönelim.

Neden metin biçimlendirmeye ihtiyacınız var? Bu biçimlendirme ile içindeki ayrı mantıksal blokları seçmek ve ayırmak için .


Normal bir süre bakalım. Mantıksal olarak ayrı iki bloğu vardır: döngü "başlığı" ve döngü gövdesi. Karışmamaları için farklı hatlara yerleştirilmeleri gerekir. Bu nedenle, açılış braketi (şahsen benim için) ile aynı satırda şaşırtıcıdır (bir kişinin odaya yarısı girmesiyle aynıdır - tüm vücut odada ve kafa hala kapının dışında "kalmıştır" ).


Şimdi ikinci soru parantezleri içeri itmek mi itmek mi? Prensipte, parantezler doğrudan başlıkla ilgili değildir ve daha çok döngünün gövdesinin bir parçasıdır. Ancak, yalnızca yürütülebilir komutların içeri itilmesi gerekir, yani. kendi ayrı mantığı olan bir şey. Ancak gövdesi olmayan bir döngünün en az bir aklı başında örneği vardır:

while ( TradingServerNotAvailable() )
{
}

Takas sunucusu müsait olana kadar yapacak hiçbir şeyimiz yok - bu yüzden hiçbir şey yapmıyoruz ve döngü gövdesi boş. Bu durumda, içeri itilen parantezler (bana göre) - garip: boşluk sağa kaydırılır ve boşluk vurgulanır.

Döngünün bir gövdesi olduğunda, sağa kayar ve soldaki boşluk, kapatma parantez çiftlerini aramak için serbest bırakılır:

while ( TradingServerNotAvailable() )
{
Sleep ( 1000 );
}

Bu, açılış parantezinin döngü başlığıyla aynı satıra atılmamasının bir başka nedenidir - gözlerinizle kapatma/açma parantezini ararken onu orada bulmak daha zordur. Benim versiyonumda, parantez bu konumda ve çifti başka bir satırda ancak aynı konumda açıkça görülebilir. Ek olarak, tek bir parantez içeren bir çizgi (yorumsuz bile!), iç bloğu vurgulayan ve dıştakinden ayıran ek bir görsel unsur olarak hizmet eder.


Gördüğünüz gibi: kişisel bir şey yok - sadece metnin görsel algısının mantığı!


Ve bu mantık açısından (kişisel tercihler ve alışkanlıklar değil), şekillendiricinin mevcut biçimlendirmesindeki metin benim için anlaşılmaz / hoş değil:

// чего вдавлен внутрь кусок кода - в котором кода нет и выделять там нечего
while ( TradingServerNotAvailable() )
{
}
// каждый отступ вправо ассоциируется с новым уровнем вложенности, а здесь визуально ТРИ уровня !
while ( TradingServerNotAvailable() ) // первый уровень
  { // второй уровень
   Sleep(1000); // третий уровень
  }

Ve eğer GNU-uykuda yazmak sadece bir tür karışıklıksa

if ( TradingServerNotAvailable() ) {
  ....
} else { // вот тут в одной строке ТРИ элемента разных блоков: закрытие предыдущего , разделитель , начало следующего :(((
  ....
}

ve açılış parantezlerini kaybettiğinizi ve fazladan bir kapanış parantez koymadığınızı nasıl belirleyebilirim? Toli şöyle:

if ( TradingServerNotAvailable() ) 
{
  ....
}
else
{
  ....
}
Bir kez daha tekrar ediyorum: bu benim kişisel alışkanlıklarım veya başka bir şeyle ilgili değil - sadece metnin görsel algısının mantığı!
Indent style - Wikipedia, the free encyclopedia
  • en.wikipedia.org
Indentation is not a requirement of most programming languages, where it is used as secondary notation. Rather, programmers indent to better convey the structure of their programs to human readers. In particular, indentation is used to show the relationship between control flow constructs such as conditions or loops and code contained within...