OOP - sayfa 7

 
falkov :

Bana göre çok yanılıyorsunuz!

Büyük projeleriniz olduğunda (en az birkaç bin satır kod), sınıf programlamanın (OOP) işleri çok kolaylaştırdığını ve geliştirme sürecini ve en önemlisi hata ayıklamayı kontrol etmeyi kolaylaştırdığını göreceksiniz.

Ek olarak, OOP projeleri gerçek hayata daha yakın hale getirir, çünkü sıradan hayatta nesnelerin örnekleriyle (bir ev, bir ağaç, bir kişi, bir araba, bir sipariş vb.), yani. bir dizi özellik ve yöntemle :)

Evet, OOP'ta bir şeyler yapmaya çalışırsanız, daha zarif ve anlaşılır olduğunu kendiniz göreceksiniz. Prosedürel programlamadan daha kolay!

+1
 

MoneyJinn :

MetaTrader 5'te düzenli prosedürel programlama kullanın.

OOP, prosedürel programlamanın evrimidir.

Sonuçta, hiç kimse işlevler olmadan yapabileceğinizi iddia edemez. Sonuçta, belli bir noktaya kadar daha da hızlı. Aynı eylemi farklı verilerle gerçekleştiren kod bölümlerinin olması önemli değildir. Kopyala-yapıştır yapmak çok kolay.

İşlevleri yeniden kullanmak OOP'ye kaybeder. İşlevselliği genişletmek, her zaman yeni bir işlev oluşturmak ve çeşitli koşullara bağlı olarak bu işlevi çağırabilmek için kodu yeniden yazmaktır. İyi yazılmış bir OOP programında, bir uzantı, tüm kodun yeniden yazılmasını gerektirmeyen basit bir şeydir.

OOP'siz programlar yazarken, ölçekleme sorunlarından, fazladan veri bolluğundan ve yüzlerce işlevden, rastgele çakışan değişkenlerden, işlevselliğin "sıcak" değiştirilmesi ihtiyacından rahatsızlık duymuyorsanız, OOP'ye ihtiyacınız yoktur.

Evet, OOP uğruna OOP yazmak buna değmez, bundan iyi bir şey çıkmaz. İşlevleri sınıflarla değiştirmeniz gerekmez. Anti-desenlerden kaçının

Антипаттерн — Википедия
  • ru.wikipedia.org
Анти-паттерны (anti-patterns), также известные как ловушки (pitfalls) — это классы наиболее часто внедряемых плохих решений проблем. Они изучаются, как категория, в случае когда их хотят избежать в будущем, и некоторые отдельные случаи их могут быть распознаны при изучении неработающих систем. Концепция также прекрасно подходит к...
 
MoneyJinn :

OOP, "Niva" veya "Lada" gibi bir hatadır.

MetaTrader 5'te düzenli prosedürel programlama kullanın.

MetaTrader 4'te olduğu gibi burada da mevcuttur.

MetaQuotes'un buna odaklanmaması üzücü.

Tamamen saçmalık. Ben olsam kendimi böyle rezil etmemek için yazımı silerdim...
 
Vigor :

OOP, prosedürel programlamanın evrimidir. ...

OOP'siz programlar yazarken, ölçekleme sorunlarından, fazladan veri bolluğundan ve yüzlerce işlevden, rastgele çakışan değişkenlerden, işlevselliğin "sıcak" değiştirilmesi ihtiyacından rahatsızlık duymuyorsanız, OOP'ye ihtiyacınız yoktur.

Evet, OOP uğruna OOP yazmak buna değmez, bundan iyi bir şey çıkmaz. İşlevleri sınıflarla değiştirmeniz gerekmez. ...

%100 katılıyorum.

falkov :

Ek olarak, OOP projeleri gerçek hayata daha yakın hale getirir, çünkü sıradan hayatta nesnelerin örnekleriyle (bir ev, bir ağaç, bir kişi, bir araba, bir sipariş vb.), yani. bir dizi özellik ve yöntemle :)

Gerçeğe daha yakın olan nedir: sanal bir ev, bir ağaç, bir insan veya programı işlemci tarafından fiilen yürütüldüğü sırada görmek mi?

Bu dini bir meseledir. Ve herkesin kendi seçimi var.

AlexSTAL :

Gönderim, OOP'den hoşlanmamasının bedelini ödeyen, engellenen bir konu başlatıcıdan gelen bir soruya yanıt olarak geldi.

MT5 gibi bir üründe ustalaşmaya veya MT4'ten MT5'e geçmeye çalışan sıradan tüccarlar için bir cevap.

 
MoneyJinn :

Gönderim, OOP'den hoşlanmamasının bedelini ödeyen, engellenen bir konu başlatıcıdan gelen bir soruya yanıt olarak geldi.

Konu başlatıcı için kontrol listesi:

Nesne yönelimli programlama (ifadeyi tersten okuyun) nesne yönelimli programlamadır . Veya nesne tabanlı programlama.

Bir nesne, gerçek nesnelerin (örneğin, bir "makine") veya kurgusal nesnelerin (örneğin, Pupkin's Grail) parametrelerini ve davranışını tanımlayan bir program kodu (genellikle diğer koddan izole edilir) olarak anlaşılır. Her nesne, adeta kendi hayatını yaşayabilir ve kendi suyunda güveç yapabilir. Dış dünyayla iletişim için, dışarıdan erişimi olan özel işlevler gibi sınırlı bir dizi "sinir kanalı" kullanılır.

OOP'nin ana avantajı, bence, bir nesnenin kodunun diğer kodlardan bağımsız olarak hata ayıklanabilmesidir. Sonra bir mozaik gibi daha karmaşık nesneleri bir araya getirin. Örneğin, "kadın" nesnesi diğer nesneleri içerebilir: "gövde", "alt takım", "tanklar", "kokpit" vb.

MQL'deki OOP'ye iyi bir örnek, MQL5 Sihirbazıdır . Hazır hata ayıklanmış nesnelerden bir danışman oluşturmanıza olanak tanır. Ayrıca, bu nesneler birleştirilebilir.

OOP lehine en ölümcül argüman: özünü araştıranlar üzerine otur. Programlaması daha kolay, kod daha net ve daha yapılandırılmış.

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
Lizar :
...

OOP lehine en ölümcül argüman: özünü araştıranlar üzerine otur. Programlaması daha kolay, kod daha net ve daha yapılandırılmış.

Bir şey evet, evet, OOP'de ustalaşana kadar, bana öyle bir kar fırtınası gibi geldi ki oraya tırmanmaya bile değmezdi.

Anladığım anda, her şey elle halledildi, artık değişkenler için benzersiz isimler icat etmenize gerek yok,

ilk yuvalama i'nin sayacı, ikinci yuvalama j'nin sayacı , dizi boyutunun boyutu ve bininci kodun tamamında dolaşmıyor, ancak değişkenim nerede sıfıra sıfırlanmıyor? :o) ve en önemlisi, her şey tam görünümde, programı açıyorsunuz, her şey hemen netleşiyor, işte nesnenin çağrısı, işte nesnelerin etkileşimi, nesnenin ne yaptığını anlamanız gerekiyorsa, nesne koduna gidin.

 
Urain :

Bir şey evet, evet, OOP'de ustalaşana kadar, bana öyle bir kar fırtınası gibi geldi ki oraya tırmanmaya bile değmezdi.

Anladığım anda, her şey elle halledildi, artık değişkenler için benzersiz isimler icat etmenize gerek yok,

ilk yuvalama i'nin sayacı, ikinci yuvalama j'nin sayacı, dizi boyutunun boyutu ve bininci kodun tamamında dolaşmıyor, ancak değişkenim nerede sıfıra sıfırlanmıyor? :o) ve en önemlisi, her şey tam görünümde, programı açıyorsunuz, her şey hemen netleşiyor, işte nesnenin çağrısı, işte nesnelerin etkileşimi, nesnenin ne yaptığını anlamanız gerekiyorsa, nesne koduna gidin.

+10

Küçük projeler için OOP kullanmaya gerek olmadığı teziyle bile tartışırım.

Bana öyle geliyor ki OOP mümkün olan her yerde itilmeli - kod biraz uzuyor, ancak şeffaflığı önemli ölçüde artıyor.

 
falkov :

+10

Küçük projeler için OOP kullanmaya gerek olmadığı teziyle bile tartışırım.

Bana öyle geliyor ki OOP mümkün olan her yerde itilmeli - kod biraz uzuyor, ancak şeffaflığı önemli ölçüde artıyor.


Bu arada, yetersiz bir projede OOP kullanımının ne zaman ek kolaylık sağlayabileceğine dair çok basit bir örnek.
 

OOP'nin destekçisiyim çünkü kendim için aşağıdan yukarıya programlamanın rahatlığını anladım. Nesne etkileşim arayüzlerinden sınıf uygulamalarına. Sınıfların uygulanmasıyla başlayan herkes doğru OOP'de yazmaz, işlevsel sarmalayıcılar yazar. Bu tür sarmalayıcılar, değişkenler ve işlevler için uygun bir ad alanı dışında hiçbir şey yapmaz. Bu olağan kütüphane yaklaşımıdır. Ama bu minimum bile birine yakışıyor ve gururla "OOP'ta yazıyorum" diyorlar, ancak bu onların hakkı.

OOP paradigmasını eleştirmek için yeterli deneyime sahip, modern yazılımda tüm akımların deneyimli programcıları ve kurucuları vardır. Bu eski bir konudur ve prensipte, her şey uzun zamandır en küçük ayrıntısına kadar emilir, ne zaman ve nerede kaybeder:

http://blogerator.ru/page/oop_why-objects-have-failed

İşte OOP destekçilerinin yanıtı

http://bugtraq.ru/library/programming/objectshavenotfailed.html

Классика ООП - Почему объектно-ориентированное программирование провалилось? [MUST READ]
Классика ООП - Почему объектно-ориентированное программирование провалилось? [MUST READ]
  • blogerator.org
Прошло ровно 10 лет с публикации известной и классической в мире программирования статьи, написанной Ричардом Гэбриелом, название которой стало уже нарицательным и вынесено в заголовок моей заметки. Его статья стала настолько острой и злободневной для своего времени, что вызвала бурный всплеск обсуждений в сообществе программистов, целый ряд...
 

C++ hızının karşılaştırılması (küçük test) Nesne yönelimli ve prosedürel programlama (+ farklı derleyiciler)

https://www.mql5.com/ru/forum/132434/page3

Практические эксперименты на скорость(тесты, исходники, ссылки), на разных языках программирования выкладываем, сравниваем, делаем выводы - MQL4 форум
  • www.mql5.com
Практические эксперименты на скорость(тесты, исходники, ссылки), на разных языках программирования выкладываем, сравниваем, делаем выводы - MQL4 форум