|
16 / 16 / 1
Регистрация: 13.10.2012
Сообщений: 454
|
|
Недостатки ООП16.05.2014, 16:35. Показов 23003. Ответов 318
Метки нет (Все метки)
Задали написать небольшую статью о недостатках этой замечательной парадигмы. В нашей группе прикладной информатики я один более-менее знаком с разработкой, поэтому на придирчивость аудитории можно не рассчитывать, и я решил спросить мнение опытных людей здесь. Я самоучка-теоретик, так и не написавший более-менее достой программы за свою жизнь, поэтому часть этой статьи навеяна из сети, а вот про усложнения - уже исключительной мой загон - не могу просто взять и написать программу. Пишу, думая, что это будет целый Фреймворк. Ну в общем предлагаю вашему вниманию эту коротенькую статью и рассчитываю на объективную критику. Всего полторы страницы - больше просто не знаю к чему придраться.
https://www.dropbox.com/s/m6u9... D0%9F.docx дропбокс глючит и не дает нормальную ссылку. вот статья под спойлером. Кликните здесь для просмотра всего текста
Недостатки ООП
Парадима ООП не нова. ООП приобрело популярность во второй половине 80-х вместе с такими языками, как Smalltalk, С++, Objective C (другое расширение C) и некоторыми другими. 25 лет назад никто не ожидал, что “новый” феномен ООП проживет столь долго и сегодня большинство современных языков поддерживают эту парадигму. ООП стоит на трёх китах: 1.Первый — инкапсуляция — это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над ним. Классы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП. 2.Второй — наследование — способ определения нового типа, когда новый тип наследует элементы (свойства и методы) существующего, модифицируя или расширяя их. Это способствует выражению специализации и генерализации. 3.Третий, известный как полиморфизм, позволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии). Это делает классы ещё удобнее и облегчает расширение и поддержку программ, основанных на них. Инкапсуляция, наследование и полиморфизм — фундаментальные свойства, которыми должен обладать язык, претендующий называться объектно-ориентированным (языки, не имеющие наследования и полиморфизма, но имеющие только классы, обычно называются основанными на классах). Различные ОО языки используют совершенно разные подходы. Мы можем различать ОО языки, сравнивая механизм контроля типов, способность поддерживать различные программные модели и то, какие объектные модели они поддерживают. Преимущества этих языков всем известны: повторное использование кода, упрощение разработки больших программ, более логичная структура программы и многие другие. Разберём некоторые недостатки. Недостатки есть абсолютно у всего – с этим нужно просто смириться. Важно адекватно их оценивать и стараться минимизировать их влияние. То же самое касается и объектно-ориентированной парадигмы программирования. Есть несколько причин, почему узкие места ООП часто вылазят наружу. Я считаю, что это прежде всего непонимание самой сути объектно-ориентированной техники программирования - восприятие этой парадигмы как серебряной пули. Часто программисты стараются решать абсолютно все задачи, где даже не предвидится конкретных сущностей с их свойствами с помощью объектов, наследования и с помощью объектов. Это очень усложняет процесс. То есть вместо написания парочки функций в процедурной манере и передачи аргументов туда-обратно, программист часто пытается нагромоздить целую иерархию классов и после разгребает проблемы с видимостью классов, доступа к скрытым инкапсуляцией данным. Таким образом, можно выделить один недостаток объектно-ориентированных языков программирования – избыточность их средств при решении большинства простых задач. Нужно помнить, что применение ООП это прежде всего моделирование. Для построения хорошей, легко читаемой и сопровождаемой программы необходимо в самом начале разработки предусмотреть сценарии её использования и, что очень важно, изменения – заказчик легко в корне может поменять задачу. Это нетривиальный процесс, в котором часто задействуются даже отдельные языки моделирования. Не каждый способен выделить отдельные сущности и сделать их классами. Ещё меньше людей способны адекватно распределить функции, работающие с данными программы в методы и упаковать их в классы. Для этого нужно уметь мыслить объектно-ориентированными категориями. На всё это уходит драгоценное время. Оно обязательно окупится, если программист имеет дело с большим и сложным проектом, но вряд ли в других случаях, когда требуется просто решить задачу и перейти к другой. Для меня вывод один, всем известный и общепринятый – не стоит воспринимать парадигмы и языки, их поддерживающие, как божество. Это всего лишь инструмент для решения определенного круга задач. Я думаю, что для объектно-ориентированных языков такие задачи начинаются, когда их решение укладывается более чем в тысячу строк и задачи, которые требуют масштабирования. “Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
0
|
|
| 16.05.2014, 16:35 | |
|
Ответы с готовыми решениями:
318
Архитектура с толстым клиентом: какие есть недостатки?
Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП |
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 03.09.2016, 14:35 | |||||||||||
|
Добавлено через 6 минут Добавлено через 46 секунд Добавлено через 1 минуту Добавлено через 4 минуты Добавлено через 1 минуту Добавлено через 4 минуты Добавлено через 10 минут ![]() Добавлено через 1 час 21 минуту Ну а что явы и процего сайтоклепательства касается то основную масссу тянут выпускники школ и курсов. Отсюда и з/п по подавляющему большинству вакансий чуть выше квалифицированных рабочих. Кстати и в странах СНГ там где есть разработка математически нагруженного софта (к примеру игровых движков) З/П для программистов С++ со знанием математики гораздо выше чем з/п по индустрии и вообще по стране. Другое дело что подходящих спецов найти очень трудно.
0
|
|||||||||||
|
Заблокирован
|
||||||||
| 03.09.2016, 15:17 | ||||||||
|
Отдельные потуги есть. Сейчас как грибы после дождя повылазили доморощенные отечественные SCADA и САПР-ы. Вот Оси свои да. Не пишутся. И системы уровня MS Visual Studio - тоже. Увы. А большинство юсают разного рода надстройки, фреймворки и прочие "DSL-и" (тот же кутэ) Его даже закон Ома изучить не заставишь. Он начинает верещать "я ЧИСТО программист. Не буду я учить Вашу инженерную хрень"
0
|
||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 03.09.2016, 15:20 | |||||
|
Добавлено через 36 секунд Добавлено через 46 секунд Добавлено через 15 секунд
0
|
|||||
|
Заблокирован
|
|||
| 03.09.2016, 15:26 | |||
|
Это младшие техники Добавлено через 3 минуты Работают только инженерная интуиция и опыт Сложная навароченная математика используется в работе инженера крайне редко. В каких-то специализорованных узкозаточенных проектах. Типа проектирования Боинга За 36 лет работы инженером разработчиком мне всего пару раз потребовались знания по математике, полученные в ВУЗ-е. В большинстве случаев за глаза хватало школьного курса математики. А вот системное мышление крайне требовалось. А чтобы сайтики делать математика вообще не нужна
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 03.09.2016, 15:46 | |||||||
|
Добавлено через 3 минуты Добавлено через 5 минут Добавлено через 4 минуты Добавлено через 3 минуты Добавлено через 2 минуты
0
|
|||||||
| 03.09.2016, 15:48 | ||||
![]()
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 03.09.2016, 16:22 | |||||
|
Добавлено через 4 минуты Добавлено через 2 минуты Добавлено через 22 минуты
0
|
|||||
|
Заблокирован
|
|||
| 03.09.2016, 16:32 | |||
|
Добавлено через 1 минуту Но Вы не думайте, что раз Вы используете в работе высшую математику, а я нет, то значит у меня работа простая а у Вас сложная. Математика может вообще не использоваться. А при этом проблема будет крайне сложной. Голову сломаешь
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 03.09.2016, 16:36 | ||||
|
Не по теме:
К нему стюардесса подходит: - Что вас так беспокоит? Пассажир: - Крыло гнется!!!! Стюра: - Ну это же самолет Боинг. Вот посмотрите - все вокруг спокойны они знают что самолет проектировали настоящие профессионалы и он на все это рассчитан... Пассажир: - А я начальник отдела прочностных расчетов корпорации Боинг и знаю КАК он рассчитан. Добавлено через 1 минуту Добавлено через 2 минуты
0
|
||||
|
Заблокирован
|
||||
| 03.09.2016, 16:39 | ||||
|
Задачку можно в уме решить за 2 минуты. Если чуть-чуть поразмышлять. А программист ищет в гугле специальный фреймворк, для решения этой задачи. А головой подумать никак. Добавлено через 1 минуту Мне это НИКОГДА не было нужно. И потом. Математика не должна заменять здравый смысл. Добавлено через 1 минуту Их меньше 0.1% от общего числа инженеров
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 03.09.2016, 16:51 | ||||
|
Добавлено через 5 минут Добавлено через 5 минут А у фашистов то что коробка передач САУ "ЯгдПантера" выдерживала 500 км считали катастрофическим про..ом проектировщиков и рассматривали по этому поводу вопрос прекращения ее производства
0
|
||||
|
Заблокирован
|
|
| 03.09.2016, 16:51 | |
|
Fulcrum_013
Вы все заладили "математика, математика!" Да полно задач в которых знание тензорной алгебры и дифуров с матаном никак не поможет. Вот как Вы с помощью математики решите такую задачу: Посоветуйте софт для облегчения анализа и сокращения объема чужого кода
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 03.09.2016, 16:53 | |
|
0
|
|
|
Заблокирован
|
||
| 03.09.2016, 16:54 | ||
|
Немецкий "ягуар" был очень хороший танк. Но цикл его производства составлял ПОЛГОДА. А русский танк был значительно хуже. Но цикл его производства 2 недели. И вот спрашивается: нафига делать танк полгода если его подобьют в первом же, от силы во втором бою? ЗДРАВЫЙ СМЫСЛ РУЛИД
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 03.09.2016, 16:56 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Заблокирован
|
|||
| 03.09.2016, 17:00 | |||
|
Потому что благодаря ЗДРАВОМУ СМЫСЛУ мы поняли, что не нужны нам самые лучшие самолеты и танки. Выигрывает войну тот, не у кого танки/самолеты лучше, а тот, кто сможет их выпускать больше. В результате мы по производству танков и самолетов в 10 раз обошли немцев. Потому и войну выиграли. Пока они старались усовершенствовать свои самолеты/танки мы тупо гнали вал. И результаты войны доказали, что мы были правы. Здравый смысл рулит Добавлено через 28 секунд И ваша наивная веря во всесилие математики
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 03.09.2016, 17:11 | |||
|
Добавлено через 7 минут
0
|
|||
|
Заблокирован
|
|
| 03.09.2016, 18:14 | |
|
Fulcrum_013, Как видите. Везде рулид здравый смысл, а не математика.
И ВЫСШАЯ математика, на самом-то деле, нужна крайне редко для крайне узкого числа узкозаточенных специалистов А 99,8% инженеров и программистов в их повседневной работе за глаза хватит школьной математики уровня 6-го класса Заставлять ВСЕХ ПОГОЛОВНО инженеров и программистов 4 года(!!!) учить ВСЮ высшую математику в ВУЗе - ИМХО глупо да и не нужно А вот здравому смыслу, инженерному подходу и системному мышлению надо учить ВСЕХ ПОГОЛОВНО технических специалистов. Даже применяя для этого насилие И шпицрутены Это гораздо важней чем обучение манипулированию значочками и символами в вышей математике
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 03.09.2016, 18:36 | |||||||
|
Добавлено через 8 минут Добавлено через 7 минут Остальное все было делом обычного экономического превосходства США над Германией а особенно в условиях резкого дефицита нефти в Германии.Вот и здравый смысл на точном четком расчете.
0
|
|||||||
|
Заблокирован
|
|||
| 03.09.2016, 20:45 | |||
|
В старых совковых учебниках?
0
|
|||
| 03.09.2016, 20:45 | |
|
Недостатки React
Недостатки AnyLogic Какие недостатки недостатки системы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|