|
|
| Результаты опроса: используете ли вы ооп | |||
| да |
|
238 | 86.55% |
| нет |
|
37 | 13.45% |
| Голосовавшие: 275. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.76/461:
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
Стоит ли использовать ООП?09.02.2010, 13:44. Показов 103210. Ответов 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 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 07.04.2018, 13:46 | ||
|
CoderHuligan,
1
|
||
|
|
||
| 07.04.2018, 14:06 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 07.04.2018, 14:08 | |
|
CoderHuligan, таблица это точно такой же массив как и строка.
0
|
|
|
|
|||||||||||||
| 07.04.2018, 14:15 | |||||||||||||
Добавлено через 2 минуты
0
|
|||||||||||||
|
2083 / 1576 / 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,782
|
||
| 08.04.2018, 01:48 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 08.04.2018, 05:59 | |
|
korvin_, Дык если коомитет и дальше слушать будут из плюсов ява-скрипт сделают. а ему сам бог велел падать.
0
|
|
| 22.01.2019, 21:00 | |
|
У нас много хороших программистов, но мало грамотных постановщиков задач. В результате программист пишет программу, но она часто делает не совсем то, что нужно. Это наблюдаешь сплошь и рядом. ООП помогает грамотно создавать модель задачи. ООП ускоряет проектирование серьезных задач, а не игрушечных (по результату использования) программок. Созданные ранее классы можно многократно использовать в новых проектах и не просто как библиотеки (которые как правило статичны), а модифицируя классы подклассами под новые задачи. На примере питона, если вы пользуетесь графикой, то графические объекты, это экземпляры классов из библиотеки tkinter. И если вы не хотите быть жестко связанными с этими заранее заданными объектами, а хотите расширить их возможности, то можете писать подклассы встроенных классов расширяющие возможности этих объектов. В общем все возможности, которые дает ООП в одном комментарии не опишешь. Читаете книги М.Лутца, те главы, которые посвящены ООП. И Вы поймете его возможности. Но для освоения ООП нужно терпение, как и для освоения любой профессии, что бы из ремесленника превратится в мастера. Ну а если Вы не стремитесь стать мастером, то ООП Вам не нужен. Так же, как если вы не собираетесь становиться профессиональным математиком, то вам не нужно изучать высшую алгебру, алгебраические кольца и т.д. и вполне достаточно школьного курса математики. То же самое и с программированием. Я уважаю профессиональных программистов на С++ и т.д., но они часто умея грамотно и быстр написать сложную программу, используя данную им постановку задачи, сами грамотно написать постановку задачи не могут, кто не владеет ООП, так как не владеют способностью структурировать сложные задачи. Именно знание ООП позволяет грамотно создавать структуру задачи для ее постановки, которую будут уже использовать программисты на С++ или других языках.
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 23.01.2019, 04:32 | ||||
|
0
|
||||
| 23.01.2019, 13:12 | ||
|
Но многие этого не понимают, и считают, что они в единственном числе могут все. Поэтому не буду продолжать дискуссию.
0
|
||
|
2083 / 1576 / 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 / 1576 / 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 | |
|
Стоит ли учить ООП в одно время с Яп Как использовать ООП в WinAvr Js class как правильно использовать ООП Когда следует использовать ООП в РНР? WITH AS стоит ли использовать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
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
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|