SOLID va GRASP ko'rsatmalari
Qattiq Maykl Feathers tomonidan ixtiro qilingan va beshta dasturiy amaliyotni qo'llab-quvvatlaydigan mnemonik:
Tushunish (Umumiy javobgarlikni tayinlash uchun dasturiy ta'minot naqshlari) - bu yana bir qator ko'rsatmalar Kreyg Larman.
Tanqid
OOP paradigmasi bir qator sabablarga ko'ra tanqid qilindi, jumladan, takroriy foydalanish va modullikning belgilangan maqsadlariga javob bermaslik, va boshqa muhim jihatlar (hisoblash / algoritmlar) hisobidan dasturiy ta'minotni loyihalash va modellashtirishning bir jihatiga (ma'lumotlar / ob'ektlar) haddan tashqari ahamiyat berish uchun.
Luka Kardelli OOP kodi protsessual kodga qaraganda "ichki jihatdan unchalik samarasiz", OOP kompilyatsiya qilish uchun ko'proq vaqt ketishi mumkinligi va OOP tillari "sinf kengayishi va modifikatsiyasiga nisbatan juda yomon modullik xususiyatlariga ega" va juda murakkab bo'lishga moyilligini da'vo qildi. Oxirgi nuqta yana takrorlanadi Djo Armstrong, ning asosiy ixtirochisi Erlang, kimning so'zlari keltirilgan:
Ob'ektga yo'naltirilgan tillarning muammosi shundaki, ular o'zlari bilan olib yuradigan barcha yashirin muhitga ega. Siz bananni xohlar edingiz, ammo sizda banan va butun o'rmonni ushlab turgan gorilla bor edi.
Potok va boshqalarning tadqiqotlari. OOP va protsessual yondashuvlar o'rtasida mahsuldorlikda sezilarli farqni ko'rsatmadi.
Kristofer J. Sana OOPni boshqa texnologiyalar bilan tanqidiy taqqoslash, xususan, relyatsion, OOPning kelishilgan va qat'iy ta'rifi yo'qligi sababli; ammo, Sana va Darven OOP-ni bir xil sozlanishi sifatida ishlatadigan OOP bo'yicha nazariy asosni taklif qilishdi tizim turi qo'llab quvvatlamoq RDBMS
Maqolasida Lourens Krubner boshqa tillar bilan taqqoslaganda (LISP shevalari, funktsional tillar va boshqalar) OOP tillari o'ziga xos kuchli tomonlarga ega emasligini va keraksiz murakkablikning og'ir yukini ko'tarishini ta'kidladi
Aleksandr Stepanov ob'ekt yo'nalishini noqulay bilan taqqoslaydi umumiy dasturlash:[38]
Men OOPni texnik jihatdan asossiz deb bilaman. U dunyoni bitta turga qarab o'zgaradigan interfeyslar nuqtai nazaridan ajratishga harakat qiladi. Haqiqiy muammolarni hal qilish uchun sizga ko'p qirrali algebralar kerak - bir nechta turlarni o'z ichiga olgan interfeyslar oilalari. Men OOPni falsafiy jihatdan asossiz deb bilaman. Hamma narsa ob'ekt deb da'vo qilmoqda. Hatto rost bo'lsa ham, bu unchalik qiziq emas - hamma narsa ob'ekt deb aytish hech narsa demaydi.
Pol Grem OOPning yirik kompaniyalar orasida mashhurligi "o'rtacha dasturchilarning katta (va tez-tez o'zgarib turadigan) guruhlari" bilan bog'liq deb taxmin qildi. Gremning so'zlariga ko'ra, OOP tomonidan qo'llaniladigan intizom har qanday dasturchining "juda ko'p zarar" qilishiga yo'l qo'ymaydi.
Leo Brodi ob'ektlarning mustaqil tabiati va moyilligi o'rtasidagi bog'liqlikni taklif qildi takroriy kod buzilishi bilan o'zingizni takrorlamang tamoyil dasturiy ta'minotni ishlab chiqish.
Stiv Yegge aksincha ekanligini ta'kidladi funktsional dasturlash:
Ob'ektga yo'naltirilgan dasturlash birinchi navbatda ismlarni qo'yadi. Nutqning bir qismini postamentga qo'yish uchun nega bunday uzunlikka borasiz? Nima uchun bir turdagi tushunchalar boshqasidan ustun turishi kerak? OOP to'satdan fe'llarni biz o'ylaydigan tarzda ahamiyatsizlashtirganga o'xshamaydi. Bu g'alati qiyshiq istiqbol.
Boy Hikki, yaratuvchisi Klojure, ob'ekt tizimlarini real dunyoning haddan tashqari soddalashtirilgan modellari sifatida tavsifladi. U OOPning vaqtni to'g'ri modellashtirishga qodir emasligini ta'kidladi, chunki dasturiy ta'minot tizimlari bir-biriga o'xshashligi sababli tobora muammoli bo'lib bormoqda.
Erik S. Raymond, a Unix dasturchi va ochiq manbali dasturiy ta'minot advokat, ob'ektga yo'naltirilgan dasturlashni "Bitta haqiqiy echim" sifatida ko'rsatadigan da'volarga tanqidiy munosabatda bo'lib, ob'ektga yo'naltirilgan dasturlash tillari shaffoflikni yo'q qiladigan qalin qatlamli dasturlarni rag'batlantirishga moyilligini yozgan. Raymond buni Unix va C dasturlash tili.
Rob Pike, yaratishda ishtirok etgan dasturchi UTF-8 va Boring, ob'ektga yo'naltirilgan dasturlashni "the Rim raqamlari of computing" and has said that OOP languages frequently shift the focus from ma'lumotlar tuzilmalari va algoritmlar ga turlari. Furthermore, he cites an instance of a Java professor whose "idiomatic" solution to a problem was to create six new classes, rather than to simply use a qidiruv jadvali.
Do'stlaringiz bilan baham: |