|
|
| Результаты опроса: используете ли вы ооп | |||
| да |
|
238 | 86.55% |
| нет |
|
37 | 13.45% |
| Голосовавшие: 275. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.76/461:
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
Стоит ли использовать ООП?09.02.2010, 13:44. Показов 97930. Ответов 793
Метки нет (Все метки)
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп? Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами. Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
|
|
| 09.02.2010, 13:44 | |
|
Ответы с готовыми решениями:
793
Стоит ли использовать ООП -- часть вторая
|
|
|
||
| 06.04.2018, 17:10 | ||
|
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||||||||
| 07.04.2018, 00:58 | ||||||||
Добавлено через 4 минуты CoderHuligan, кстати, расскажи как работаешь со структурами, в которых динамически меняется не только размер, но и содержащиеся в них блоки подструктур (разный порядок, размеры, количество). Просто интересно, не работал ни с чем таким?
0
|
||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
| 07.04.2018, 12:29 | |||||||||||||||||||||||||||||||||||||||||||
|
С++ настолько корявый, некрасивый и невнятный язык, что я даже смотреть в его сторону не хочу. Ну, если кто привык то ладно, привыкнуть можно к чему угодно, даже к отборному г.., когда кушать нечего.. В нём столько налепили операторов вида << >> и т. д., которые видимо из брейнфака стянули, что только диву даёшся.. Никакого единообразия нет и в помине. Чем помешала функция форматного вывода, например? В С всё единообразно и построено на функциях. В С++ налепили разных закорючек, которые засоряют листинг.. Здесь всё естественно как раз. ![]() Обьясню: "обычно" это на самом низком уровне, где манипулируют адресной арифметикой типа: *(s + 1) и т.д. Однако на высшем уровне существуют одни позиции элементов, которые начинаются с 1(единицы) а не с 0. С 0 начинаются массивы на низшем уровне. Мне как программисту совершенно незачем производить операции вычитания 1 в уме, пусть это делает компьютер. А сколько ошибок происходит из-за того, что люди работают с массивами на самом низком уровне! К тому же если позиция начинается с 1 то легко и безопасно использовать беззнаковые величины для описания массивов и проверять их границы, так как 0 считается ошибкой. Знаковые вещи вообще нельзя использовать в таких делах, а их сплошь и рядом пихают. Мои вещи безопасны и гарантированы от выхода за пределы из-за переполнения. Если речь идёт о конкретно динамических строках, то в таких случаях обычно выделяется отдельная структура типа:
Некоторые горячие головы идут дальше и возвращают отдельный указатель на s->data. В этом случае уже можно работать более естественно, как бы с сишной строкой s[3] а не s->data[3] Так сделано в библиотеке SDS, которая входит частью в проект Redis, представляющий собой высокопроизводительную базу данных. Но тут есть свои заморочки, например выравнивание по границам, которое делает компилятор, когда имеет дело с любой структурой. Приходится использовать системозависимые опции компилятора(pragma) и хотя это не является проблемой, это может вызвать нежелательные зависимости в других модулях проекта. А если не отключить выравнивание, то возникнет проблема доступа к полям от базового указателя s->data, так как доступ к ним осуществляется простым вычитанием нужного количества байтов и приведением этого указателя к нужному типу данного поля. Лично я решил эту проблему более просто. Я вообще отказался от определения какой-либо структуры, что сняло проблему выравнивания полей полностью. И хотя, тут тоже возможны системозависимые вещи, но они находятся под полным контролем, и пишутся под конкретную платформу. Я выделяю буфер, который имеет длину header+buflen, и устанавливаю указатель на начало буфер плюс header. Вот как обеспечивается доступ к полю MAGIC:
0
|
|||||||||||||||||||||||||||||||||||||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 07.04.2018, 13:46 | ||
|
CoderHuligan,
1
|
||
|
|
||
| 07.04.2018, 14:06 | ||
|
0
|
||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 07.04.2018, 14:08 | |
|
CoderHuligan, таблица это точно такой же массив как и строка.
0
|
|
|
|
|||||||||||||
| 07.04.2018, 14:15 | |||||||||||||
Добавлено через 2 минуты
0
|
|||||||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 07.04.2018, 14:21 | |
|
CoderHuligan, и на кой оно надо? Представь эта срань где нибудь в лексере живет который и синтакс хайлайт и компиляцию обеспечивает, и отрабатывать для хайлайта должна после нажатия каждой клавиши. Сколько оно лишних тактов сожрет за час? А высокоуровневое оно потому и высокоуровневое что там где нету лукапа оно сугубо пофиг с какого номера индексация начинается. говорят код на С++ 2050 года будет выглядеть так : auto::auto.auto (auto);
0
|
|
|
|
||||
| 07.04.2018, 15:00 | ||||
![]()
0
|
||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,781
|
||
| 08.04.2018, 01:48 | ||
|
0
|
||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 08.04.2018, 05:59 | |
|
korvin_, Дык если коомитет и дальше слушать будут из плюсов ява-скрипт сделают. а ему сам бог велел падать.
0
|
|
| 22.01.2019, 21:00 | |
|
У нас много хороших программистов, но мало грамотных постановщиков задач. В результате программист пишет программу, но она часто делает не совсем то, что нужно. Это наблюдаешь сплошь и рядом. ООП помогает грамотно создавать модель задачи. ООП ускоряет проектирование серьезных задач, а не игрушечных (по результату использования) программок. Созданные ранее классы можно многократно использовать в новых проектах и не просто как библиотеки (которые как правило статичны), а модифицируя классы подклассами под новые задачи. На примере питона, если вы пользуетесь графикой, то графические объекты, это экземпляры классов из библиотеки tkinter. И если вы не хотите быть жестко связанными с этими заранее заданными объектами, а хотите расширить их возможности, то можете писать подклассы встроенных классов расширяющие возможности этих объектов. В общем все возможности, которые дает ООП в одном комментарии не опишешь. Читаете книги М.Лутца, те главы, которые посвящены ООП. И Вы поймете его возможности. Но для освоения ООП нужно терпение, как и для освоения любой профессии, что бы из ремесленника превратится в мастера. Ну а если Вы не стремитесь стать мастером, то ООП Вам не нужен. Так же, как если вы не собираетесь становиться профессиональным математиком, то вам не нужно изучать высшую алгебру, алгебраические кольца и т.д. и вполне достаточно школьного курса математики. То же самое и с программированием. Я уважаю профессиональных программистов на С++ и т.д., но они часто умея грамотно и быстр написать сложную программу, используя данную им постановку задачи, сами грамотно написать постановку задачи не могут, кто не владеет ООП, так как не владеют способностью структурировать сложные задачи. Именно знание ООП позволяет грамотно создавать структуру задачи для ее постановки, которую будут уже использовать программисты на С++ или других языках.
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 23.01.2019, 04:32 | ||||
|
0
|
||||
| 23.01.2019, 13:12 | ||
|
Но многие этого не понимают, и считают, что они в единственном числе могут все. Поэтому не буду продолжать дискуссию.
0
|
||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 23.01.2019, 14:58 | ||||
|
Добавлено через 4 минуты Добавлено через 12 минут Именно поэтому создать постановку задачи может только профессиональный программист.
0
|
||||
|
|
||||
| 28.04.2019, 18:16 | ||||
|
Я использую и ООП, и ГПО, и многие другие слова, о которых Вы и не слышали.
Добавлено через 1 минуту Добавлено через 4 минуты
0
|
||||
| 28.04.2019, 20:27 | ||
|
0
|
||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 29.04.2019, 13:02 | ||||
Добавлено через 9 минут Так что те у кого дела с постоновкой обстоят плохо в общем то программистами являются чуть менее чем никак, c какой стороны не смотри.
0
|
||||
| 29.04.2019, 14:16 | |
|
Fulcrum_013, Я вижу Вы не понимаете, что должен знать постановщик задачи, а именно в том числе технологию производства, для которого ставиться задача, а этому в универе не учат. Для этого нужно иметь талант и опыт, быстро осваивать технологии в различных областях деятельности, до этого незнакомых.
Например мне, что бы освоиться в любой области (не путать со "стать специалистом") требуется один месяц. Проверено на опыте, так как я поменял больше 10 мест работы в разных отраслях. Везде меня цинили, но надоедало заниматься одним и тем же, и я увольнялся, что бы начать что то новое. Не вижу смысла продолжать дискуссию. Продолжайте словесную эквилибристику без меня. Удачи.
0
|
|
|
|
|
| 29.04.2019, 23:19 | |
|
Viktorrus, Вы прям анекдотами разговариваете.
0
|
|
| 29.04.2019, 23:19 | |
|
Помогаю со студенческими работами здесь
780
Стоит ли учить ООП в одно время с Яп Как использовать ООП в WinAvr Js class как правильно использовать ООП Когда следует использовать ООП в РНР? WITH AS стоит ли использовать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так?
Да, всё верно. Я — искусственный интеллект.
Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
|
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает.
В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше.
Перед запуском проверяем. . .
|