Bir PROFESYONEL'in meyvesini bir AMATÖR'ün meyvesinden programlı olarak nasıl ayırt edebilirim? - sayfa 7

 

Tüm dize işlevleri pahalıdır.

Tüm grafik işlevleri pahalıdır.

Öğe grafiği ne kadar büyük olursa, o kadar fazla fren yapılır (görsel modda çalışmayı hızlandırmak için, sipariş simgelerini periyodik olarak silin (özellikle birçoğu varsa))

Burada en çok zaman alan WinowsRedraw() ve Comment() olacaktır - çağrıldığında grafik de yeniden çizildiğinden .

ilk bakışta böyle bir şey.

 

Sorun şu ki, kod bir profesyonel tarafından ve çok yetkin bir şekilde (maliyetli işlevler ve yapılar olmadan) yazılabilir, ancak kendisine emredilen mutlak saçmalığı somutlaştırabilir.

Dahası, artık ilginç değil.

 
Mathemat :

Sorun şu ki, kod bir profesyonel tarafından ve çok yetkin bir şekilde (maliyetli işlevler ve yapılar olmadan) yazılabilir, ancak kendisine emredilen mutlak saçmalığı somutlaştırabilir.

Dahası, artık ilginç değil.

Tahmin ettiğim gibi, profesyonel bir programcı, bir yazar veya besteci gibi kendisi için yazmalı ve ayrıca profesyonel olarak, her zaman gerçek bir olumlu sonuçla sipariş vermelidir. Başka bir şey de, fikrinin programcı için inandırıcı olmamasına rağmen müşterinin (TOR) tasarladığı fikre göre yazması istenirse, bu durumda programcı müşterinin bu danışmanla para kazanma olasılığının düşük olduğu konusunda uyarır. ancak müşteri ısrar eder ve programcı siparişi yerine getirir . Burada başka özellikler olduğunu anlıyorum, buradaki hiçbir başyapıt zamanın testine dayanamaz, ancak tarih boyunca MT5 pazarında uzun ömürlülük örnekleri (test cihazında test edilmiştir) olduğunu kabul etmelisiniz. Bunun, programın ve programcının yanı sıra tüccarın profesyonelliğini belirlemek için bir başlangıç noktası olacağını düşünüyorum, bildiğinden, yapabileceğinden değil, sonuçtan. Elbette bu profesyonel çalışmanın maliyeti de buna göre olmalıdır. Ve hiç kimsenin, hem yazarların hem de bestecilerin sıklıkla yaptığı gibi, buna "pantolonunu desteklemek için" zorunlu yarı zamanlı bir iş olarak atıfta bulunarak, küçümseyici bir şekilde yaptığı gibi, hack'leri devirmesi yasaktır. Açık sözlülük için özür dilerim, ama o olmadan neden konuşsun!

 
İlham satılık değildir. Ancak el yazmasını satabilirsiniz.
 

Dmitry, analizörünüzün ne yapması gerektiğine siz karar verin. İyi kodu kötüden ayırt etmek bir şeydir, iyi bir fikri kötü bir fikirden ayırt etmek başka bir şeydir. Ve ilk durumda otomatik bir çözüm bulmaya çalışabilirseniz, ikincisinde bunu manuel modda bile yapmak zordur ve otomatik modda sadece gerçekçi değildir. Ancak iyi kodu kötüden ayırt edebilen bir analizörden bahsettiğimize göre, bu konuyu tartışalım:

İlk etapta bir profesyoneli bir amatörden ayıran nedir? Benim için bu, dilsel araçlarının kullanımının çeşitliliğinde kendini gösteren dil bilgisi seviyesidir. Bu nedenle, bir geliştirici önemsiz olmayan gösterimler ve özyineleme gibi algoritmalar kullanıyorsa, profesyonel bir programcı olma olasılığı daha yüksektir. Buna dayanarak, kodu analiz eden ve içinde kullanılan "chip" sayısını hesaplayan bir tür uzman sistem oluşturabilirsiniz. Her çip için puan verilir. Çip, aksine, olumsuz ise, cezalar verilir. Sonuç olarak, yazılı kodu bir bütün olarak karakterize eden belirli bir sayı veya toplam puan elde edilir. Örneğin, bir ağırlık tablosu oluşturabilirsiniz:

Yonga
Puan
Dizileri Kullanma
+1
Kodun yeniden kullanımı (özelliklerin kod satırlarına oranı)
+4
Operatörler += -= /=
+1
Operatörler % >> <<
+3
Özyinelemeli işlev çağrısı
+5
Önişlemci yönergelerini kullanma
+3
Kod sayısına göre yorumlanan satır sayısı
+5
"Yavaş" işlevleri kullanma
-3
Aynı tür değişkenleri kullanma: time1, time2, time3, time4
-4

Sonuç olarak, uzman sistem her parametrenin ağırlığını hesaplayacak ve kodun genel kalitesini karakterize eden bir nihai puan verecektir.

 

Beyler, profesyonelin kodunu acemi kodundan anlamanın tek yolu, kod optimizasyon sonuçlarının varlığıdır. %100 optimizasyonu izleyemezsiniz. Sadece bazı öğelerini takip edebilirsiniz. Ve yeni başlayanlar kısmi optimizasyon yapabilir. Örneğin, "iki ile çarpma" işlemini "kendisine bir değer katma" işlemi ile değiştirin. Hadi ama, izleme fikri, sağlayabileceği sonuca kıyasla çok fazla kaynak yoğun. Böyle bir programa yatırım yapmak karlı değildir - bu bir eşleşmeyi günlükten kesme girişimidir - bir eşleşme bir ürün gibidir ve gerisi talaştır.

 
drknn :

Beyler, profesyonelin kodunu aceminin kodundan anlamanın tek yolu, kod optimizasyon sonuçlarının varlığıdır.

Galimo sürücüsü))
 

Profesyonel bir kodun belirtileri:
Anlamlı ve değişen değişkenler ve fonksiyonlar;
İyi görüntülenen program yapısı;
Mantıklı yorumların varlığı.

Tehdit Programda bu tür işaretleri yalnızca manuel olarak arayabilirsiniz. Otomasyon çalışmayacak.

ZYY Bir programcının kendisi için yazdığı programlarda aramanız gereken tek şey budur.
Çağımızda kendine saygısı olan bir programcı böyle bir kodu yan tarafa vermeyecektir.

 
FAQ :

Tüm dize işlevleri pahalıdır.

Tüm grafik işlevleri pahalıdır.

Öğe grafiği ne kadar büyük olursa, o kadar fazla fren yapılır (görsel modda çalışmayı hızlandırmak için, sipariş simgelerini periyodik olarak silin (özellikle birçoğu varsa))

Burada en çok zaman alan WinowsRedraw() ve Comment() olacaktır - çağrıldığında grafik de yeniden çizildiğinden.

ilk bakışta böyle bir şey.


İlginç bir soru, optimizasyonların hızlandırılması (test ayrı bir konudur) ve
tüketilen bellek Forumda, birisi gelişigüzel bir şekilde grafiğin "eklenmesini" engellemeniz gerektiğinden bahsetti.
Optimizasyon sırasında nesneler. Teorik olarak, optimizasyon grafikleri hiç görmez ve ben böyle olduğunu varsaydım.
ObjectCreate() gibi komutlar, optimizasyon sırasında basitçe yok sayılır.
Engellenmeli mi, engellenmemeli mi?
Ve hala engellenmeleri gerekiyorsa, her seferinde bir çek eklemeniz gerekecek.
 if (IsOptimization()==false ) {
}
Aynı zamanda, bu tür kontrollerin kendisi de optimizasyon hızını etkiler.
Durum kontrol işlevleri pahalı mı?
Bunları değişkenlere atamak ve daha sonra değişkenleri kullanmak mantıklı mı?
Neredeyse her zaman Comment() işlevine sahibim - optimizasyon sırasında da engellenmeli mi?
Uyarı ve Yazdırma hakkında ne düşünüyorsunuz? (yine - optimizasyon sırasında). Optimizasyon sırasında günlüğe yazılmazlar, değil mi?
 
chief2000 :

Ve hala engellenmeleri gerekiyorsa, her seferinde bir çek eklemeniz gerekecek.

sadece

 if (IsOptimization()== false ) {
}

a

 if ( !IsOptimization() ) {
}

Ama böylesi daha iyi:

 if ( !IsOptimization() && ( !IsTesting() || IsVisualMode() ) ) {

// ...

}

Bu koşul bir kez karşılanabilir ve daha sonra grafikte metinsel ve grafiksel bilgileri görüntüleme ihtiyacını kontrol etmek için kullanılabilecek bazı bayrakların değerini ayarlayabilir.

not.

Genel olarak, neden bu kadar gerginsin? Topicstarter periyodik olarak ..., ancak D'Artagnan'dan olduğunu belirtir.