kodlama stili hakkında - sayfa 4

 
Mathemat >> :

Yura, tek dönüşlü örneğiniz elbette mantıklı. Ancak, bu durumda tüm if'lerin her zaman geçtiğine dikkat edin - birçok dönüşün aksine, fonksiyondan çıkış, koşullu satıra ulaşıldığında hemen elde edildiğinde.

ForexTools, teşekkürler, tasarımdaki gelişmelerinizi benimsedim.

Matematik, çünkü "if" koşullu operatörü "else" gibi bir losyona sahiptir.

if(ifade1) ifade1;

else if(ifade2) ifadesi2;

else if(ifade3) operatörü3;

else ifadesi4;

Ve sonra operatör ilk gerçek koşuldan sonra yürütülür ve hepsi bu kadar. Hepsi daha fazla çalıştırılmazsa. Doğru bir koşul bulunursa, buna karşılık gelen operatör yürütülür ve program bu yapılandırmadan sonra çalışmaya devam eder (inşaatta daha fazla arama yapmaz).

 

Evet, tartışmıyorum, Sergey . Burada Yura'nın tasarımından bahsediyordum.

 

Tartışmanın "akışında" başka bir ilginç soru daha var: Platform kısıtlamaları bir MQL programı yazma stilini ne ölçüde etkiler? Örneğin: mantıksal olarak yalıtılmış bazı hesaplamalar ayrı işlevlere alınırsa kodun yazılması, anlaşılması/okunması ve desteklenmesi daha kolaydır. Ancak her işlev çağrısı (özellikle MQL gibi bir yorumlayıcıda) yürütme için harcanan fazladan bir zamandır. Tek bir çağrı elbette kritik değildir, çoğu zaman bu tür şeyleri döngünün içine yazmamız gerekir (for int i=0; i<Bars; i++), vb. ve sonra neyin daha önemli olduğuna karar vermeye başlarsınız - kodun güzelliği (işlevler biçiminde - böylece daha sonra ne yazdığınızı anlayabilirsiniz) veya yürütme hızı (aynı parçaların kopyala-yapıştırılması - böylece döngünün bir sonraki kene gelmeden önce her şeyi çözmek için zamanı var)?

Her özel durumda - altın ortalamanın çizgisini çizme kararının - kendine ait olduğu açıktır, ancak .... Bu sorunla kim mücadele ediyor?

 

Kısa bir çalışmanın sonuçlarını aynı başlıkta ilk sayfada yayınladım. Hesaplama miktarımla (küçük), işlevlerden oldukça memnunum - bir satır uzunluğunda bile. Ama burada şubede başka görüşler var.

 
Bundan bahsetmiyorum ... Bundan bahsediyorum - platformun harici kısıtlamalarını dikkate alma ihtiyacının kodlama stilini ne kadar etkilediği (herhangi bir - sadece MT değil)
 

Muhtemelen öyle. Eski bir dil olan Trubo Pascual'ın ideal olduğunu düşünürdüm. İşlevleri yapılandırma olasılığı vardır, yani. Fonksiyonlar içinde fonksiyonların bildirilmesi. C buna izin vermez. Şimdi de benzer bir şey yapmaya çalışıyorum ama aslında C platformunda. Tabii ki bu sadece bir dış görünüş.

Şimdi daha doğrusu, Sergey ?

 

Раньше я считал идеальным древний язык Трубо Паскуаль. Там есть возможность структурирования функций, т.е. объявление функций в функциях.

Böyle mi? Şahsen, bir zamanlar C ile programlama dillerini incelemeye başladım. Şimdi iki tane biliyorum: C ve C++. Ve söylemeliyim ki, çalışmak için başka bir şey çekmiyor. Neden bir işlev içinde bir işlev bildirmeniz gerekiyor? Şahsen ben sadece C, C++ ile büyüdüğüm için bu teknik anlaşılmaz.

 
C-4 >> : Neden bir fonksiyon içinde fonksiyon bildirelim? Şahsen ben sadece C, C++ ile büyüdüğüm için bu teknik anlaşılmaz.

Ve şimdi anlıyorum. Altıncı arama sırasına kadar işlevlerim varsa, farklı arama sıralarının tüm işlevlerini tek bir öbekte karıştırmak benim için her zaman uygun değildir. Çağrı yapısının genel görünümü kaybolur. Ve Trubo Pascual'da her şey bununla uygundur: anahtar işlemeyi gerçekleştiren birkaç ana işlev ve tüm küçük alt işlevler içeride gizlidir.

Ama bu muhtemelen bir alışkanlık meselesidir. Uzun bir süre üzerine hiçbir şey yazmadım - ve gerçekten pişman değilim.

 
C-4 >> :

Neden bir işlev içinde bir işlev bildirmeniz gerekiyor? Şahsen ben sadece C, C++ ile büyüdüğüm için bu teknik anlaşılmaz.

"Dünyada bilge adamlarımızın asla hayal bile edemediği pek çok şey var dostum Horatio";)

bunun kendine has bir çekiciliği var - tabiri caizse kapsülleme içinde kapsülleme. Ama cidden, diğer her şey gibi akıllıca kullanırsanız gerçekten yararlıdır.

Mathemat Antik dil Troubeau Pascual'ın ideal olduğunu düşünürdüm.

Ben de buna geri dönmeyi düşünüyorum - en azından Delphi'de bir DLL biçiminde, en basit ama gerekli şeyleri yapmak için MQL'de saptırmaktan bıktım (örneğin, bir tüccarla aynı banal diyalog)

 

- Güç ne kardeşim!?

- Derslerde Güç, kardeşim!

Bana göre, sınıflardan daha iyi bir şey henüz öngörülmemiştir. Sınıf içindeki özel işlevleri ve onunla çalışacak genel işlevleri bildirin. Güzel ve güçlü. İşlevleri ve değişkenleri devralın, hiyerarşiyi düşünün. Karmaşık veri yapıları oluşturarak verileri kapsülleyin. Standart şablon kitaplığından evrensel algoritmalarla verileri işleyin. Dürüst olmak gerekirse, MQL4, kapsüllemeden çok yoksundur. Farklı veri türlerini ayrı ayrı tutmanız gerekir ve bu hatalarla doludur. Genellikle dizi indekslemenin uyumsuzluğunu takip etmeniz gerekir (çok hoş olmayan bir hata). MQL5'in buna bir son vereceğini düşünüyorum.