|
|
| Результаты опроса: используете ли вы ооп | |||
| да |
|
238 | 86.55% |
| нет |
|
37 | 13.45% |
| Голосовавшие: 275. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.76/461:
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
Стоит ли использовать ООП?09.02.2010, 13:44. Показов 108102. Ответов 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 стоит ли использовать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|