|
|
| Результаты опроса: используете ли вы ооп | |||
| да |
|
238 | 86.55% |
| нет |
|
37 | 13.45% |
| Голосовавшие: 275. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.76/461:
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
Стоит ли использовать ООП?09.02.2010, 13:44. Показов 103169. Ответов 793
Метки нет (Все метки)
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп? Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами. Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
|
|
| 09.02.2010, 13:44 | |
|
Ответы с готовыми решениями:
793
Стоит ли использовать ООП -- часть вторая
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 10.02.2010, 14:35 | |
|
Коллега Evg, я совершенно согласен с тем, что нужно или не нужно использовать ООП - сильно зависит от конкретной задачи. Тут консенсус. А вот на тех задачах, где время компиляции будет уже измеряться часами (а значит, число строк исходного кода - измеряется сотнями тысяч, если не миллионами LOC), - пожалуй, стоит уже использовать.
На тех же задачах, где два часа могут существенно повлиять на сроки исполнения проекта..... хм, а что за задачи-то такие? "Hello, World!" написать?
0
|
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
||
| 10.02.2010, 14:38 [ТС] | ||
|
Добавлено через 35 секунд Такой еще вопрос. На скорость выполнения программы ооп не влияет?
0
|
||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 10.02.2010, 14:42 | |
|
На скорость работы оказывают влияние алгоритмы присутствующие в программе, вроде так.
0
|
|
|
|
|||
| 10.02.2010, 14:45 | |||
То же самое ядро ОС, тот же самый компилятор. Понятно, что исходник компилятора не три часа собирается, но когда машина не "чистая" (т.е. на ней запущено какой-то тестирование), то время сборки компилятора gcc или ядра linux - довольно ощутимоеПросто лет 10 назад мы это уже проходили и в полной мере ощутили. Правда тогда у нас были sparc'и с частотой порядка 60 МГц, а на 3-ГГцовых машинах это скорее всего будет ощущаться в меньшей степени.
1
|
|||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 10.02.2010, 14:46 | |
|
Может ещё что то влияет я не знаю точно, но алгоритмы в большей степени.
0
|
|
|
|
|||
| 10.02.2010, 14:51 | |||
Сообщение было отмечено как решение
РешениеДобавлено через 1 минуту
5
|
|||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 10.02.2010, 14:54 | |
|
@KOT@
Только не спрашивай о скорости работы программы, при наличии virtual. ответ где то на форуме есть.
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||
| 10.02.2010, 18:01 | |||
По крайне мере я хоть как то успокоился и оправдал свои велосипеды которые недавно написал. Для игры важна скорость особенно во время рендера, stl вообще не пользуюсь почти.
2 @KOT@ Ты вроде собирался редактор писать? Без String класса тебе будет сложнее это сделать. А если будут ошибки придется сложнее отлаживать. Множество людей не могут ошибаться. ООП полезен, его надо использовать. Зачем отказываться от возможнсти если она есть? Новичку в какой то области всегда кажется сомнительным та или иная технология. Например люди с компьютером на "вы" могут поставить 1 программу определенного типа и использовать её всю жизнь (т.к. освоили - все понятно и просто, а новое страшно и мудрено). Даже если вы сейчас не хотите использовать в вашем конкретном проекте ООП, все равно стоит его изучить. Просто смысл в том что пока не попробуешь не прочувствуешь. Так что опыт, опыт, опыт решает. Дело не в ООП, дело в опыте Не по теме: ps. Тема для холивара?)
0
|
|||
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
||
| 10.02.2010, 18:18 [ТС] | ||
|
Я просто предположил, что небольшие программы можно писать и без него, и возможно даже легче без ооп. Хотя некоторые доводы показались мне довольно убедительными. И я согласен, что в больших проектах ооп - очень даже уместно. Но в мелких программах... К тому же в си-шарп - без ооп вообще обойтись невозможно, так как там весь код содержиться в классах и методах(помоему в джава тоже). Я считаю это лишним. К тому же в си шарп, все типы (даже инт и чар) являются обьектами классов - правильно ли это для языка? В этом плане си++ мне кажется более свободным (можно обойтись и без ооп). + я полностью поддерживаю ооп, там где обьекты сопоставлены с обьектами в реальном мире например в играх - обьект человек, а бежать это метод человека. Здесь ооп - лучшее средство. Но при написании тех же берем крестиков - ноликов ооп абсолютно ни к чему. Добавлено через 2 минуты Я также поддерживаю ооп, когда нужно делать библиотеки и код, который будет использоваться потом в других программах. Раньше подключать можно было только заголовочные с функциями теперь с ооп гораздо удобнне работать с предыдущим кодом.
1
|
||
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
|
| 10.02.2010, 18:19 | |
|
0
|
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
| 10.02.2010, 18:21 [ТС] | |
|
0
|
|
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
|
| 10.02.2010, 18:27 | |
|
указатели
0
|
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
||
| 10.02.2010, 18:36 [ТС] | ||
|
0
|
||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||
| 10.02.2010, 18:36 | ||
)) Кстати мне и мелкую программку бывает проще напсать из за ООП. 1) Повторно использую какой то класс и этим могу сделать 30% программы (маленькая же); 2) Легче воспринимать код -> легче отлаживать, легче дополнять, легче налаживать. Если говорить о совсем уж мелких программах то смысл их написания кроме учебного вообще теряется, а учебный процесс это другой вопрос. Иначе в голову и пример не приходит. Хотя согласен что без ООП ряд мелких задач может быть решен быстрее благорадя тому что не нужно "запариваться" на него
0
|
||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||
| 10.02.2010, 19:50 | ||
|
0
|
||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 10.02.2010, 20:02 | |
|
Ну я делаю по принципу конкретной задачи - все лишнее вон. Ведь stl она же универсальна и поэтому я как понимаю у неё есть минусы в скорости? Вообще говоря я прогонял некоторые stl вещи через пошаговый проход и это выглядело просто ужасно. В смысле можно час сидеть нажимать кнопку "следующая строчка" а в своем коде это реально видно что гораздо меньше. Это конечно не показатель, но все же выглядит подозрительно.
Ps. Это касается не только stl но и любых других вещей. Хотя функциям mem*** научился доверять. ASM внушает)
0
|
|
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 10.02.2010, 20:12 | |
|
А тема растят...
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 10.02.2010, 20:14 | |
|
В приложении к конкретной задаче обсуждении было бы более конкретным и интересным. Так что ждем что скажет @KOT@
0
|
|
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|||||||||||
| 10.02.2010, 20:30 | |||||||||||
|
В пользу ООП приведу рабочий живой пример - класс работы с комплексеыми числами - кода самого класса там на 68 строк.
Но зато при использовании
К тому же, очень редко модификаторы только возвращают и устанавливают значение. Вот у меня, например, функции SetRe и SetIm еще пересчитывают модуль числа (так просто в моей задаче гораздо повышается быстродействие, а она работает с большими массивами данных)
0
|
|||||||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||
| 10.02.2010, 22:16 | ||
|
Никакая "интуиция", "я чувствую" и прочее не дают правильного ответа. Только экспериментальные данные профилировщика объективны и неоспоримы.
0
|
||
| 10.02.2010, 22:16 | |
|
Стоит ли учить ООП в одно время с Яп Как использовать ООП в WinAvr Js class как правильно использовать ООП Когда следует использовать ООП в РНР? WITH AS стоит ли использовать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|