MQL5 veritabanında neden bu kadar az uzman var? - sayfa 9

 
simpleton :

'MyStruct' - ileri bildirim desteklenmiyor

Voot. Mimaride döngüsel bağımlılıklardan nasıl kurtulurum?

Sadece normal bir mimaride olamazlar demeyin. Tek (koltuk değneği) yol, birden fazla kalıtımın olmaması nedeniyle hemoroidlere dönüşen bir grup gereksiz temel sınıfın eklenmesiyle yeniden tasarlamaktır, anladığım kadarıyla, uygulanmasıyla acı çekmemek için reddettiniz. elmas şeklindeki bağımlılıklar.

Ama sadece beyanı uygulayabilirsin ...

Yedelkin :

Bakalım "tarafsız acemi kullanıcılar", "profesyonel sistem programcılarına" rağmen MQL5'te "gerçekten temel bir şey" yazabilecek mi?

Ve yapamadıklarını nereye yazdım canım? Yapabilirler, ama beceriksizce ağır bir şey olacak.

 
TheXpert :

Voot. Mimaride döngüsel bağımlılıklardan nasıl kurtulurum?

Karmaşık kullanım durumlarında güvenlik nedeniyle ileriye dönük açıklamalara henüz tarafımızca izin verilmemektedir.

Hem montaj hem de yürütme aşamalarında çok sıkı kontrole sahip bir dile sahibiz. Gevşek kontrol nedeniyle potansiyel olarak sızdıran kodu karşılayamayız. Gerçek şu ki, bu açıklamalar tamamen farklı kütüphanelerde olabilir ve bu gibi durumlarda kullanımı kontrol etmenin kesin bir yolu henüz yoktur. Kabaca söylemek gerekirse, diğer yöntemlerle sol sınıfı kaydırarak bir saldırı gerçekleştirmek mümkün olacaktır (şimdi bu yapılamaz).

Harici ve döngüsel bağımlılıkların ileriye dönük bildirimleri sorununa zaten bir çözüm var, ancak bunu 64 bitlik bir uçbirim (derleyici, uçbirim, düzenleyici ve test edici) başlattıktan sonra uygulayacağız. Bugün zaten halka açık bir 32/64 bit yapı hazırladık - bu hafta yayınlayacağız.


Terminal/yürütme ortamı için doğrudan güvenliğe odaklanan bir yönetilen kod derleyici yazmaya başlayana kadar (C#/Java'nın bununla hiçbir ilgisi yoktur, çünkü bunlar çevre için güvenli değildir), nedenlerini anlamak zordur. geliştiricilerin eylemleri.

 

Yedelkin :

Bakalım "tarafsız acemi kullanıcılar", "profesyonel sistem programcılarına" rağmen MQL5'te "gerçekten temel bir şey" yazabilecek mi?

TheXpert :

Ve yapamadıklarını nereye yazdım canım? Yapabilirler, ama beceriksizce ağır bir şey olacak.

Seni anladım. "Sakar ağır bir şey" kavramı değer yargıları alanını ifade ettiğinden, bu konuda nesnellik unutulabilir. Konu kapandı.
 
TheXpert :

Voot. Mimaride döngüsel bağımlılıklardan nasıl kurtulurum?

Sadece normal bir mimaride olamazlar demeyin. Tek (koltuk değneği) yol, birden fazla kalıtımın olmaması nedeniyle hemoroidlere dönüşen bir grup gereksiz temel sınıfın eklenmesiyle yeniden tasarlamaktır, anladığım kadarıyla, uygulanmasıyla acı çekmemek için reddettiniz. elmas şeklindeki bağımlılıklar.

Ama sadece beyanı uygulayabilirsin ...

Ve yapamadıklarını nereye yazdım canım? Yapabilirler, ama beceriksizce ağır bir şey olacak.

Size tüm saygımla, şunu belirtmeme izin vereceğim: en çok, 5. foruma bakılırsa, homurdanan ve homurdanan uzmanlardır. Ve sıradan amatörler savaşır ve yaratır... Sen ustasın, seviyene uygun, bilenler fırsat arıyor, bilmeyenler sebep arıyor... Varsa da sor.
 
joo :
Size tüm saygımla, şunu belirtmeme izin vereceğim: en çok, 5. foruma bakılırsa, homurdanan ve homurdanan uzmanlardır. Ve sıradan amatörler savaşır ve yaratır... Sen bir uzmansın, seviyene uygun. Bir şey olursa.

Ve bunun nedeni her şeyin göreceli olmasıdır.

Sağdan direksiyonlu bir Japon'un direksiyonuna hiç oturmamış olanlar, kutuyu sol elle değiştirmenin nasıl mümkün olduğunu anlayamaz.

Ve yeni başlayanlar için önemli değil, hala sağa veya sola nasıl değiştirileceğini bilmiyor.

 
Urain :

Ve bunun nedeni her şeyin göreceli olmasıdır.

Sağdan direksiyonlu bir Japon'un direksiyonuna hiç oturmamış olanlar, kutuyu sol elle değiştirmenin nasıl mümkün olduğunu anlayamaz.

Ve yeni başlayanlar için önemli değil, hala sağa veya sola nasıl değiştirileceğini bilmiyor.

Aldım ve her şeyi bayağılaştırdım. :)

Yabancı arabaları silahla sürmeye alışanlar, bozuk kutulu bir çekle cehenneme gidecek. Ancak "klasik" binen kişi, "Japon" üzerinde oturursa, "Japon" üzerindeki herhangi bir profesyonele oran verecektir. Eh, bu benim, biraz felsefe yapıyorum, ruh hali doğru ... Dikkat edin, "yeni başlayanlar" demedim, "amatörler".

 
joo :

Aldım ve her şeyi bayağılaştırdım. :)

Yabancı arabaları silahla sürmeye alışanlar, bozuk kutulu bir çekle cehenneme gidecek. Ancak "klasik" binen kişi, "Japon" üzerinde oturursa, "Japon" üzerindeki herhangi bir profesyonele oran verecektir. Eh, bu benim, biraz felsefe yapıyorum, ruh hali doğru ... Dikkat edin, "yeni başlayanlar" demedim, "amatörler".

Açıklamanızı biraz destekleyeceğim, kendim tır şoförüyüm, 10 yıldır daha fazla yük kullanıyorum ve benim için direksiyon ve vites kolu ne tarafta olursa olsun, birçok arabaya bindim. , ve herkesin kişisel eşyaları var, bu yüzden yeni bir arabaya alışmak için hepsi bu, üzerinde birkaç kilometre sürmek yeterli ve o kadar, sanki sürekli kullanıyormuşsunuz gibi.
 
Renat :

Harici ve döngüsel bağımlılıkların ileriye dönük bildirimleri sorununa zaten bir çözüm var, ancak bunu 64 bitlik bir uçbirim (derleyici, uçbirim, düzenleyici ve test edici) başlattıktan sonra uygulayacağız. Bugün zaten halka açık bir 32/64 bit yapı hazırladık - bu hafta yayınlayacağız.

Ve bir aydan fazla bir süre önce ilan edilen tahliye, böyle önemli bir kararı içermiyordu...
Renat :

Terminal/yürütme ortamı için doğrudan güvenliğe odaklanan bir yönetilen kod derleyici yazmaya başlayana kadar (C#/Java'nın bununla hiçbir ilgisi yoktur, çünkü bunlar çevre için güvenli değildir), nedenlerini anlamak zordur. geliştiricilerin eylemleri.

Burada ve nesnelerin yapıcılarıyla ilgili kararla - çok. İşe yaramaz hale getirilmelerinin nedenleri belirsizdir.

Parametreler kabul edilmez. Parametreleri şimdi, belki de bunun için global değişkenleri kullanarak taklit edin?

Alt nesnelerden biri oluşturulurken (başlatılırken) önemli bir hata oluştuğu için bir nesnenin oluşturulmadığını gösteren bir mekanizma yoktur. Alt nesnelerde kullanılan tüm sınıflara bir başlatma işlevi ekleyebilir ve nesnenin sınıfının ilgili işlevinden, bir hata kodu döndürme fırsatı sağlayacak olan alt nesnelerin başlatma işlevlerini çağırabilirsiniz. Ancak, ilk olarak, böyle bir işlev, bir nesneyi oluşturduktan ve "under" yapıcısını (nesne yıkıcı tarafından yok edilmeden önceki başlatmadan kaldırma işlevinin yanı sıra) çalıştıktan hemen sonra ve ikinci olarak, ana sınıfı değiştirirken açıkça çağrılmalıdır. , örneğin, alt nesneden bazılarını eklerken, ana sınıfın başlatma işlevinden eklenen alt nesnenin başlatma işlevinin çağrısını, doğru sırayı sağlamak için ve hatta doğru yerde dahil etmeyi unutmak kolaydır. (aynısı başlatmadan arındırma işlevi için de geçerlidir). Sonuçta, neredeyse hiç kimse hemen yazmıyor. Sonuç, yarı manuel ve güvenli olmayan koddur.

 
simpleton :
Ve bir aydan fazla bir süre önce ilan edilen tahliye, böyle önemli bir kararı içermiyordu...
Dilden biz sorumluyuz ve şu veya bu özelliğin "yayınlanıp yayınlanmayacağına" nihai kararı veren biziz. Bu nedenle, son teslim tarihlerini suçlamamıza gerek yok.

Alt nesnelerden biri oluşturulurken (başlatılırken) önemli bir hata oluştuğu için bir nesnenin oluşturulmadığını gösteren bir mekanizma yoktur. Alt nesnelerde kullanılan tüm sınıflara bir başlatma işlevi ekleyebilir ve nesnenin sınıfının ilgili işlevinden, bir hata kodu döndürme fırsatı sağlayacak olan alt nesnelerin başlatma işlevlerini çağırabilirsiniz. Ancak, ilk olarak, böyle bir işlev, bir nesneyi oluşturduktan ve "under" yapıcısını (nesne yıkıcı tarafından yok edilmeden önceki başlatmadan kaldırma işlevinin yanı sıra) çalıştıktan hemen sonra ve ikinci olarak, ana sınıfı değiştirirken açıkça çağrılmalıdır. , örneğin, alt nesneden bazılarını eklerken, ana sınıfın başlatma işlevinden eklenen alt nesnenin başlatma işlevinin çağrısını, doğru sırayı sağlamak için ve hatta doğru yerde dahil etmeyi unutmak kolaydır. (aynısı başlatmadan arındırma işlevi için de geçerlidir). Sonuçta, neredeyse hiç kimse hemen yazmıyor. Sonuç, yarı manuel ve güvenli olmayan koddur.

Kendiniz için bile olmayan sorunları karıştırarak ve icat ederek korkuyu kırıyorsunuz. Yazmaktan bu kadar korkuyorsan bırak bu işi.

Kötü bir dansçıyı neyin engellediğini biliyorsun.

 
joo :

Size tüm saygımla, şunu belirtmeme izin vereceğim: en çok, 5. foruma bakılırsa, homurdanan ve homurdanan uzmanlardır.

Yani bu bir şey. İlk halka açık betanın yayınlanmasından çok kısa bir süre sonra bir ticaret sistemi yazmaya başladım. Neredeyse hemen normal kurucuları kaçırdım ve sonra onu tamamen kaçırdım, çünkü yeni operatör ile açıkça oluşturmadan bir işaretçi elde etmek imkansızdı. O zamanlar, programların karmaşıklığı ve yapıları (başlık ve kitaplık veya nesne dosyaları - bazılarında yalnızca gerekli bildirimler, bazılarında ise uygulama) ışığında mantıklı bir ekleme olarak sınıfları içe aktarma olasılığını önerdi.

Sınıf içe aktarma ve ileri bildirimler, kod yerleştirme sorununu tamamen çözer.

Kopya oluşturucu, yapıcıların sorununu basitleştirir.

Durmama neden olan sorun çözüldü. Şimdi bir GetPointer(this) yapısı var. Geriye kalan her şey (şimdiye kadar) dil çerçevesinde çözülebilir ama hayat yine de bozulur.

Siz uzmansınız, seviyenize uyuyor, bilen fırsat arıyor, bilmeyen sebep arıyor... Öyle ise özür dilerim.

O yüzden yazmaya devam ediyorum. Buradaki iletişim, kod yazmayı engellemez. Özür dileyecek bir şey yok - çok ileri gittim.

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
Neden: