|
16 / 16 / 1
Регистрация: 13.10.2012
Сообщений: 454
|
|
Недостатки ООП16.05.2014, 16:35. Показов 22092. Ответов 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 / 1575 / 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 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 03.09.2016, 15:20 | |||||
|
Добавлено через 36 секунд Добавлено через 46 секунд Добавлено через 15 секунд
0
|
|||||
|
Заблокирован
|
|||
| 03.09.2016, 15:26 | |||
|
Это младшие техники Добавлено через 3 минуты Работают только инженерная интуиция и опыт Сложная навароченная математика используется в работе инженера крайне редко. В каких-то специализорованных узкозаточенных проектах. Типа проектирования Боинга За 36 лет работы инженером разработчиком мне всего пару раз потребовались знания по математике, полученные в ВУЗ-е. В большинстве случаев за глаза хватало школьного курса математики. А вот системное мышление крайне требовалось. А чтобы сайтики делать математика вообще не нужна
0
|
|||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 03.09.2016, 15:46 | |||||||
|
Добавлено через 3 минуты Добавлено через 5 минут Добавлено через 4 минуты Добавлено через 3 минуты Добавлено через 2 минуты
0
|
|||||||
| 03.09.2016, 15:48 | ||||
![]()
0
|
||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 03.09.2016, 16:22 | |||||
|
Добавлено через 4 минуты Добавлено через 2 минуты Добавлено через 22 минуты
0
|
|||||
|
Заблокирован
|
|||
| 03.09.2016, 16:32 | |||
|
Добавлено через 1 минуту Но Вы не думайте, что раз Вы используете в работе высшую математику, а я нет, то значит у меня работа простая а у Вас сложная. Математика может вообще не использоваться. А при этом проблема будет крайне сложной. Голову сломаешь
0
|
|||
|
2083 / 1575 / 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 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 03.09.2016, 16:51 | ||||
|
Добавлено через 5 минут Добавлено через 5 минут А у фашистов то что коробка передач САУ "ЯгдПантера" выдерживала 500 км считали катастрофическим про..ом проектировщиков и рассматривали по этому поводу вопрос прекращения ее производства
0
|
||||
|
Заблокирован
|
|
| 03.09.2016, 16:51 | |
|
Fulcrum_013
Вы все заладили "математика, математика!" Да полно задач в которых знание тензорной алгебры и дифуров с матаном никак не поможет. Вот как Вы с помощью математики решите такую задачу: Посоветуйте софт для облегчения анализа и сокращения объема чужого кода
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 03.09.2016, 16:53 | |
|
0
|
|
|
Заблокирован
|
||
| 03.09.2016, 16:54 | ||
|
Немецкий "ягуар" был очень хороший танк. Но цикл его производства составлял ПОЛГОДА. А русский танк был значительно хуже. Но цикл его производства 2 недели. И вот спрашивается: нафига делать танк полгода если его подобьют в первом же, от силы во втором бою? ЗДРАВЫЙ СМЫСЛ РУЛИД
0
|
||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 03.09.2016, 16:56 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Заблокирован
|
|||
| 03.09.2016, 17:00 | |||
|
Потому что благодаря ЗДРАВОМУ СМЫСЛУ мы поняли, что не нужны нам самые лучшие самолеты и танки. Выигрывает войну тот, не у кого танки/самолеты лучше, а тот, кто сможет их выпускать больше. В результате мы по производству танков и самолетов в 10 раз обошли немцев. Потому и войну выиграли. Пока они старались усовершенствовать свои самолеты/танки мы тупо гнали вал. И результаты войны доказали, что мы были правы. Здравый смысл рулит Добавлено через 28 секунд И ваша наивная веря во всесилие математики
0
|
|||
|
2083 / 1575 / 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 / 1575 / 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 Какие недостатки недостатки системы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|