kodlama stili hakkında - sayfa 5

 

MQL4, С-4'teki sınıflar nerede? Evet ve görünüşe göre geliştiriciler beşte miras olmayacağını söyledi.

 
Mathemat >> :

MQL4, С-4'teki sınıflar nerede? Evet ve görünüşe göre geliştiriciler beşte miras olmayacağını söyledi.

Zaten orada, beraberindeki tüm tılsımlarla. Ve bu Tetris'te bile görülebilir ( mq5 kaynaklarında).

 

Vay, nasıl olduğunu merak ediyorum. Oyuncak yayınlanalı üç ay oldu ama şimdi öğrendim ki...

 
Mathemat >> :

Vay, nasıl olduğunu merak ediyorum. Oyuncak yayınlanalı üç ay oldu ama şimdi öğrendim ki...

Bir şey eksik gibi görünüyor....

"vay be" ünleminin anlamı nedir? Kaynakları test etmek için bir yerde bir MT5 var mı?!!! varsa - atlamaya bir bağlantı verme zahmetine girmeyin.

 

Hayır, MT5 henüz görünmüyor (sadece ölümlüler için), ama en azından koda bakabilirsiniz. Ne bekleneceği oldukça açık.

 

Ama biri bana MQL kaynağını ayrıştırabilecek ve bir biçimde kullanılan değişkenlerin/fonksiyonların adlarını ve metindeki "bahsetmelerinin" sayısını verebilecek bir program söyleyebilir mi?

örneğin, atılan metinlerden daha fazla kullanılmayan değişkenlerin kalıntılarını yakalayabilmeniz ve güçlü bir şekilde kısaltılmış bazı adları yanlışlıkla daha uzun ve daha anlaşılır bir adla yeniden adlandırmamak için, zaten kullanılan bir global ad olduğu ortaya çıkacaktır. Uzun zamandır kodda bir yerde olduğunu unuttuğunuz değişken .

 
YuraZ >> :

tercih

eğer ( a > c )

kodet = 3;

eğer (l <b)

kodet = 5;

...

...

eğer ( h != b )

kodet = 100;


// özellikle tüm çıkışlar için ortak olan bazı ek işlemler dönüşten önce yapılırsa

... örneğin, burada başka bir şey yapıyoruz

geri çalıştırma(koderet);

}

Az önce neden birden fazla iade kullandığımın mükemmel bir örneğini gösterdiniz. Örneğinizde, işlev ilkini değil, tetiklenen son if() öğesini döndürür. Örneğimde, işlev ilk eşleşmeyi döndürür. Uygulamada, bir koşulu karşılayan ilk değeri tam olarak döndürme ihtiyacıyla sık sık karşılaştım ve neredeyse hiçbir zaman son geçerli denetimi döndürmem gerekmedi. Bu örnekte, bir dönüşün varlığı, işlev tarafından döndürülen değerlerin izlenmesini hiç kolaylaştırmaz, aksine, bir dönüşten her şey beklenebilir.

Ve bu arada, kişisel olarak önemli işareti ";" ayırmaktan hoşlanmıyorum. ifadeden:

harici çift max_fiyat[100] ; //Son yüz çubuğun en yüksek fiyatlarını saklar

harici çift max_fiyat[100] ; //Son yüz barın en yüksek fiyatlarını saklar - Ben sadece böyle yazıyorum

 
70'lerde "Yapılandırılmış Programlama" adı verilen çok moda bir yön vardı. Bu konuda birçok kitap yazılmıştır. Unutulmaz cümlelerden: işlev bir sayfaya sığmalıdır (o zamanlar ekran yoktu), git ve böylece tüm kitap. Sonra, sözde, hepsi nesne yönelimli programlamaya dönüştü. Belki tekerleği yeniden icat edersin?
 

Hayır, burada sadece stilden bahsediyoruz. Bu arada, bazı durumlarda gitmek hiç umurumda değil.

 
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.

Kapsülleme... Şablonları yazarken ve çok yerel bir işlevi veya işlevi veya sınıfı gizlemek istediğinizde, bu çok kullanışlıdır.

Ve çoğu zaman isimsiz bir ad alanıyla idare edebilirsiniz.

2. Kıvrımlı kaşlı ayraçları şu şekilde koymanın çok yaygın tarzından nefret ediyorum:

Çok boşuna. Köşeli ayraçlarla çeşitli gafların yuvası. Geçmişte, gerekçe, yerden tasarruf etmek ve işlevlerin kod boyutunu yönetmekti.

Ve şimdi, terabaytlık süpürgeler çağında, pişman olunacak yer neresidir?

5. Fonksiyonları bir fonksiyonda kullanırım:

Verimsiz (bire birden fazla çağrı ile), bulanık ve uzun. Özellikle UB'den biri, kötü niyetli önemsiz olmayan hataların yuvası.


Sonraki - kopyala-yapıştır hakkında. Çok pusu saçmalık :). İtiraf etmeliyim ki kullanıyorum ve sık sık bu yüzden hatalar yapıyorum. Misal? Değişkeni yeniden adlandırmayı, yorumu değiştirmeyi unuttum ama ne olduğunu asla bilemezsiniz.

Bu nedenle, kod incelemesi çok iyidir. kullanışlı şey.


Pascal Hakkında :) . Şimdiye kadar, ana Olimpiyat dili. Basit bir nedenden dolayı - birkaç anahtar kelime, mantıksal uyum.

C++'ı daha iyi öğrenene kadar uzun bir süre Pascal'ın (veya daha doğrusu Delphi'nin) C++'dan daha kötü olduğuna inanmadım.

Şimdi Pascal'ın tek başına daha iyi olduğunu düşünüyorum: Üzerine kod yazmak daha zor.


Ayrıca - yorumlar hakkında - evet, tüm bu çöpler, özellikle yaklaşık% 30.

Kendi kendini belgeleyen kod yazarsan daha mutlu olursun. Sınıfların yokluğu göz önüne alındığında, bunu MQL4'te yapmak oldukça zordur. Ancak sınıflarla daha kolay olmalı.


Diğer her şey - girintiler, adlandırma ilkeleri, hizalama - önerilerden başka bir şey değildir.

Fonksiyonlardan bahsetmişken. Hangi yazı tipi olmalı? Birden fazla satır varsa ne olur? Ana şey, içinde ne yapıldığını netleştirmek, gerisi sadece önerilerdir.


En önemli şey, kodu muhtemelen ona eşlik edecek olanlar için mümkün olduğunca açık hale getirmektir.