MQL5'te OOP gerekli olacak mı? - sayfa 2

 
Svinozavr >> :

Süreçle veya nihai sonuçla ilgileniyor musunuz?)))

Ben - ikisi de, ama sonuç bir şekilde daha fazla. ("...OOP, programlarınızı yavaşlatmanın birçok yolunu sunar...")

OOP'nin prosedürel yaklaşımdan daha hızlı yazmama nerede izin vereceğini ve bu, OOP'nin tüm eksilerinden daha ağır basacağını görmüyorum. Kimin ihtiyacı var - bu çok açık - başkaları için yazan bir geliştirici.


Size bir benzetme yapayım: Birincisi bir bıçak alıp telkari bir heykelcik kesti ve ikincisi aynı bıçakla parmağının yarısını kesti. Bu ne için? Herhangi bir araç hem "şeker" yaratabilir hem de sıradanlığı tamamlayabilir. Her şey programcının zanaatkar olup olmamasına veya bir yetenek kıvılcımına sahip olmasına bağlıdır. Bu bir geri çekilme, ama aslında - FOP size daha yakınsa, onu daha fazla kullanın.

 

Bir konu oluştururken, MT amaçlı projelerde OOP lehine argümanlar görmek istedim. Belki de cehaletim yüzünden - flört etmiyorum - onları görmedim. Şimdi görmüyorum.

Yazılarınızı özetleyelim (bu arada herkese teşekkürler):

1. Proje uygulamasının kolaylığı ve hızı.

Bu rahatlığı hissetmek için projenin hacmi ne olmalı? 4-ki için neyin yaratıldığını gösterin, ki bu OOP ile yapmak daha uygun olur. Cevapsız.

2. Bakım, modernizasyon.

Yine - projenin boyutu.

3. 5 daha hızlıdır, çünkü FSU'lar nasıl programlanır.

Pekala, bu hiç de bir tartışma değil. Yorum yok.

3. OOP'yi yavaşlatmanın bir nedeni olarak eğrilik.

Evet. Genelde elimle programlar yazarım ama OOP istersem bilgisayara sırtımı dönerim. ))) Değil. OOP, algoritmada benzer bir prosedürel olandan nesnel olarak daha yavaş olacaktır.

------------

(omuz silkerek) Anlayın, OOP'ye karşı değilim, sadece MT görevlerinde bana neler verebileceğini kendim bulmak istedim - hindiler, senaryolar, danışmanlar oluştururken.

TAMAM. 5'teki yardım. 5-ke üzerinde OOP kullanılarak yazılan MT4'ün standart teslimatından kim basit bir hindi örneği verebilir?. Orada görünür olacak. Orada, metindeki gecikmeler, programın okunabilirliği vb.

 
Svinozavr писал(а) >>

1. Proje uygulamasının kolaylığı ve hızı.

Bu rahatlığı hissetmek için projenin hacmi ne olmalı? 4-ki için neyin yaratıldığını gösterin, ki bu OOP ile yapmak daha uygun olur. Cevapsız.

2. Bakım, modernizasyon.

Yine - projenin boyutu.

1. OOP - temel ilkeleri anlayanlar için çok kullanışlı. Bu en basit uygulamalarda bile hissedilir. OOP ile herhangi bir uygulama yapmak daha uygundur.

2. Projenin büyüklüğü, anlaşılması zor değilse bir engel değildir. Ve program nesne yönelimliyse, bunu anlamak zor değildir. Bir örnek SaxoBank terminalidir. C# ile yazılmıştır - nesne yönelimli bir dil. Her dll'de yaklaşık 20.000 satır kod vardır. OOP olmasaydı, bu kadar büyük bir bilgiyi anlamak ve hatta daha da fazlasını modernize etmek neredeyse imkansız olurdu.

 
5-ke'de OOP ile ilgili bir sorun değil. 4-ke'de uygulananlardan büyük projelerin nasıl uygulanacağı genellikle henüz net değil. Grafik nesnelerle çalışmak "kanser" yapılır. Geliştiriciler iyileştirme sözü verdiler, ancak ... şimdiye kadar hiçbir gelişme hissedilmedi. Oyuncaklar programlanabilir hale geldi.
 
Svinozavr писал(а) >>

Bu rahatlığı hissetmek için projenin hacmi ne olmalı? 4-ki için neyin yaratıldığını gösterin, ki bu OOP ile yapmak daha uygun olur. Cevapsız.

Muhtemelen nen'in ZUP'si iyi bir örnek olacaktır. Orada bir sürü şey var. Yalnızca kaynağın kütlesi bile saygı uyandırıyor (368Kb v82), içeriğinden bahsetmeye bile gerek yok.
 
5-ke'de prosedürel programlama iptal edilmemiştir. Oop'tan hoşlanmıyorsanız, programları eski şekilde yazın. Ancak grafik göstergelerle büyük bir sorun yarattılar. Uygulamaları çok zor olacak. Ve programcılar için. Ve grafik göstergeleri kullanarak manuel olarak ticaret yapanlar. Basit tüccarlar - programcılar değil - yeniden öğrenmek zorunda kalacaklar. Ve herkes bunu doğru yapamaz.
 
Görünüşe göre MQ, yalnızca otomatikleştirilmiş robotların yardımıyla ticaret olduğuna inanıyor. Ve 5 özellikle robotlar için bilenmiştir. Manuel ticareti bir sınıf olarak yok etmeye karar verdiler.
 

Zaten OOP olmayanlara dayanıyorlar (mutlak OOP pratikte uygun olmasa da). Başlangıçta soyut sınıflar oluşturmak ve gerçek nesnelere ulaşmak için kalıtım ve polimorfizm kullanmak gerekiyordu. Örneğin, soyut yöntemler ve özelliklere sahip özel göstergeler için bir temel soyut sınıf. Kısacası, hiyerarşik bir sınıf ağacı oluşturun: grafik nesneler, bir hesapla çalışmak, çizelgeler ve zaman serilerine erişim vb. için kendi ağacınız. Ve önceden tanımlanmış prosedürler ve işlevler için yalnızca hız gerektiren basit bir rutin bırakın. Daha sonra, platformun yeteneklerini herhangi bir soyutlama seviyesinden genişletmek mümkün olacak, bu da kodu önemli ölçüde azaltacak, okunabilirliği artıracak ve diğer programcılar tarafından anlaşılması kolay olacaktır. Ve MT5'te prosedürler düzeyinde oldukça karmaşık şeyler zaten uygulanmaktadır (aslında, tüm platform kullanıma hazırdır) ve en azından oluşturulan iç yapıların tanımlayıcılarına işaretçilerle erişme olasılığını görmedim, ki bu büyük ölçüde olacaktır. olasılıkları sınırlayın (yardıma göre değerlendirin). Ve genel olarak, OOP ihtiyacı sorgulanabilir, böyle bir uygulama ile kendimizi yapılar ve dinamik yerleştirme ile sınırlamak mümkün oldu. OOP, dallanmış bir sınıf hiyerarşisi tarafından aşağıdan desteklenmelidir. imha

 

Programların programcılar tarafından YAZILMADIĞINI, OKUYUN olduğunu anlamak 1-3 yıl programlama gerektirir.

Programların bir bilgisayar için değil, bir kişi için (özellikle kendisi için) yazıldığını anlamak için 1-2 yıl daha gerekiyor.

Ardından, OOP ve C++'ın insansı düşünme düzeniyle ve insan dilleri oluşturma yöntemiyle çeliştiğini fark etmek 1-2 yıl sürer.

Başkalarının hammaddelerini incelemek ve en iyi ve en güvenilir programların klasik Ce ile yazıldığını anlamak için 1-2 yıl daha gerekiyor.

Peki, bundan sonra Dijkstra'nın C++ ve OOP'nin mide ağrısına neden olduğu gerçeğiyle ilgili röportajını okumak yeterli.

Ve bundan sonra (toplam 4-9 yıl) "OOP hakkında" sorular hiç ortaya çıkmaz ve bu tür tartışmalar sadece küçümseyici bir gülümsemeye neden olur.

 
AlexEro >> :

Ve bundan sonra (toplam 4-9 yıl) "OOP hakkında" sorular hiç ortaya çıkmaz ve bu tür tartışmalar sadece küçümseyici bir gülümsemeye neden olur.

anlayışla karşılıyorum.

Neden: