powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП vs процедурное - Никто не знает ответ на этот вопрос
25 сообщений из 69, страница 2 из 3
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631247
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там где не нужно наследование можно вполне написать на процедурках и разложить по разным файлам, никто разницы не заметит

авторООП не используется при разработке операционных систем. Единственная (BeOS) умерла так и не пожив.
вот кстати, в nginx-ах всяких есть ООП, и много где ещё

авторООП в БДлол
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631248
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу?
так он это делает на каждом запросе, а так бы 1 раз и всё.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631263
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу?
так он это делает на каждом запросе, а так бы 1 раз и всё.
Давно написан - HHVM
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631269
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinНет также сведений о сравнении двух
одинаковых или похожих проектов разработанных с ООП или без.

с точностью до моего склероза - гном и кде
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631272
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinжаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе.
Открою тайну: С не ООП, а процедурный. ООП это С++.

Как уже написали ООП синтаксический сахар для удобства написания кода и не более того.

Как ООП превращается в процедурный: допустим у нас есть класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
class point {
   int x;
   int y;

   void set(int x1, int y1) {
       x = x1;
       y = y1;
   }
}


В процедурном стиле свойства превращаются в структуру, а методы в функции с доп.параметром указатель на структуру
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
struct point {
   int x;
   int y;
}

   void set(point& p, int x1, int y1) {
       p.x = x1;
       p.y = y1;
   }


Именно так компилятор избавляется от ООП
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631287
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу?
так он это делает на каждом запросе, а так бы 1 раз и всё.

Потому что это скриптовое дерьмо.
Т.е. все равно придется линковать весь интерпретатор, для того, чтобы оно как-то работало.
Ну или выносить интерпретатор в библиотеки, как например Java или C#.
И не факт, что после "компиляции" бинарник будет работать быстрее.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631295
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinжаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе.
Всё очень просто. У тебя не НЕ хватает знаний ООП. У тебя не хватает ПРОСТО знаний.
Когда я изучал ООП (После Ассемблера и Бейсика) у меня не возникало вопросов.
Всё зашло естественным образом.

По поводу 2+2 это сарказм? Надеюсь ты понимаешь что никто овер-проектированием не занимается
и 2+2 в ООП складывают так-же как и в процедурном.

Может ты хотел сложить два вектора или две матрицы?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631296
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНу или выносить интерпретатор в библиотеки, как например Java или C#.
Чё?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631298
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИменно так компилятор избавляется от ООП
Семантически, имеет смысл переименовать первый аргумент в this.
Код: plaintext
1.
2.
3.
4.
   void set(point& this, int x1, int y1) {
       this.x = x1;
       this.y = y1;
   }
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631304
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizaliskinНет также сведений о сравнении двух
одинаковых или похожих проектов разработанных с ООП или без.

с точностью до моего склероза - гном и кде
Не думаю что их можно сравнивать. Давайте найдем диаграммы
стеков их используемых технологий и посмотрим. Если будет слишком
большая разница в слое API (GTK+) то мы не сможем ставить знак равенства
или нам придётся как-то дополнительно доказывать что изначально условия
были одинаковые.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631361
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зря вы полезли в абстракции.

ТС просто не знает, как работает компилятор =)

Хотя догадывается в нужную сторону.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631381
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу удержаться:

http://lib.ru/LITRA/CHEHOW/r_letter.txt
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631403
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schi
+++
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631635
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСемантически, имеет смысл переименовать первый аргумент в this.
А, учитывая уже существующий синтаксис, его тип должен быть указателем. Именно так мы и приходим к коду
Код: plaintext
1.
this->x = x1;
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631749
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА, учитывая уже существующий синтаксис, его тип должен быть указателем. Именно так мы и приходим к коду
Код: plaintext
1.
this->x = x1;


Учитывая существующий синтаксис возникает вопрос: а зачем вообще писать this->x, когда можно просто x.
Это же вам не джава какая-то
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631762
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилtip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу?
так он это делает на каждом запросе, а так бы 1 раз и всё.
Давно написан - HHVM
хм
авторAs a process virtual machine that provides the execution environment, HHVM has the ability to use live type information to produce more efficient native code, leading to a higher web server throughput and lower latency. In Q4 2012, the execution of facebook.com's source code on HHVM achieved performance parity with HPHPc,[8] and in December 2013 HPHPc was even surpassed by around 15%.
это в 2013
а в PHP7 какие результаты, интересно. Он типа на 40% быстрее PHP5 получился
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632090
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskin,

Знаете такой анекдот...
Воскресили коммунисты ВИЛ.
На следующее утро ищут - нигде нет. На столе записка -
"Жду в разливе. Начинаем всё сначала."

Возвращаясь к баранам...
Рекомендую прочитать альма-матер по ООА и ООП.
(к слову: "П" - это НЕ программирование)

Гради Буч
"Объектно-Ориентированный Анализ и Проектирование"
с примерами приложений на C++

Первые главы, ОБЯЗАТЕЛЬНО! прочитать и попытаться ПРИМЕНИТЬ! к своей простой задаче.

Отвечая на Ваш вопрос:
ОО подход - это МЕТОДИКА ПЕРЕХОДА ОТ БИЗНЕС МОДЕЛИ К КОДУ.
- других методик тупо нет (умные словосочетания не объясняют стэп-бай-стэп как в ОО сам переход от "ХАЧУ" к "ТО ЧТО НУЖНО!")
- при использовании ОО один из профитов = СТАТИЧНОСТЬ кода. Т.е. меньше всего переделок. Если это не так - то разработчику надо читать теорию - т.е. указанную книгу.


удачи вам
(круглый)
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632137
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0- при использовании ОО один из профитов = СТАТИЧНОСТЬ кода. Т.е. меньше всего переделок. Если это не так - то разработчику надо читать теорию - т.е. указанную книгу.
дам ещё раз ссылку: https://habrahabr.ru/company/hexlet/blog/303160/]как сопровождать 10 миллионов строк кода и не сойти с ума - 10 правил от NASA
«The Power of 10: Rules for Developing Safety-Critical Code»В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего станда

Вот перевод этого списка.

1. Нужно сильно ограничивать ветвления и условия. Не использовать goto, setjmp или longjmp, не использовать прямую или косвенную рекурсию.
2. У всех циклов должен быть предел. Проверяющая программа должна иметь возможность легко доказать, что определенное количество итераций не может быть превышено.
Если предел невозможно доказать статически, то правило считается нарушенным.
3. Не использовать динамическое распределение памяти после инициализации.
4. Любая функция должна уместиться на одном стандартном листе бумаги, одно выражение на строку и одна строка на определение. Обычно это означает, что функция не должна быть длиннее 60 строк.
5. Плотность assert-ов в коде должна быть не менее двух assert-ов на каждую функцию (!!! ТУТ ОШИБКА ПЕРЕВОДА БЫЛА: не более 2х assert-ов).
Assert-ы используются для проверки аномальных условий, которые не могут произойти при реальном запуске.
Assert-ы не должны содержать сайд-эффектов, и по формату должны быть Boolean-тестами. Когда assert падает, должно запуститься специальное действие по восстановлению, например,
возврат условия падения обратно в вызывающую функцию. Если проверяющая программа доказывает, что assert никогда не фейлится или никогда не удовлетворяется, то правило считается нарушенным.
(Нельзя обойти это правило с помощью бессмысленных “assert(true)”).
6. Объекты с данными должны быть задекларированы на самом низком (из возможных) уровне области видимости.
7. Возвращаемое значение не-void функции должно проверяться вызывающей функцией. Валидность параметров должна проверяться внутри каждой функции.
8. Препроцессор можно использовать только для включения header-файлов и простых макро-определений. Token pasting, вариативные функции и рекурсивные макро вызовы запрещены.
Использование условных директив компиляции нежелательно, но иногда неизбежно. Это означает, что только в редких случаях уместно использовать больше чем одно или два условия в директивах
компиляции, даже в больших проектах.
9. Использование указателей должно быть ограничено. Допустимо не больше одного уровня разыменования. Операторы разыменования не должны быть скрыты в макро определениях или внутри typedef.
Указатели на функции запрещены.
10.Весь код должен компилироваться при всех включенных warning'ах, на самых дотошных настройках компилятора с самого первого дня разработки. Весь код должен компилироваться с такими
настройками без единого warning'а. Весь код должен проверяться каждый день (как минимум раз в день, но желательно чаще), с использованием лучшего из доступных на текущий день
статического анализатора кода, и должен проходить анализ без единого warning'а.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632174
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78как сопровождать 10 миллионов строк кода и не сойти с ума - 10 правил от NASA
Код: plaintext
1.
В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в 
документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего станда

Правила хорошие. Годные. Единственное. Последнее 10 правило КМК для современного
компиллятора (а тем более статического анализатора) практически невыполнимо.
Если вы подключаете SonarQube к примеру то даже в очень хорошем коде может
выдавать "параноидальные" советы.

Всем участникам топика - посмотрите на свои собственные проекты. В части логов компилляции.
Действительно ли у вас компилляция всегда проходит без WARNINGS в включенными опциями
"на самых дотошных настройках" как описано в статье.

И прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS
вы получаете.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632293
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton...И прошу отписаться...

подтверждаю, что максимальный warning, отсутствие ругани в логах и использование этого подхода ВСЕГДА - это хорошая практика. Проекты разные(разные языки, компиляторы, оси) от единиц до тысяч классов (читай файлов).

правда не понял каким боком ПРАВИЛА КОДИРОВАНИЯ(НЕ!!! отвечают на вопрос как перейти от мысли к коду) относятся к МЕТОДИКЕ(превращает бизнес слова в код) анализа и проектирования - хз...
лично для меня - это принципиально разные вещи, хоть и связанные...

удачи усем
(круглый)
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632309
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton... ЯП и размер проекта (сколько тысяч строк) и сколько...
ээээээээээээээ
если в цифрах. то мне кажется как то так:

что вспомнил, за последние года...
азм (51, avr, stm32) / 15-20 файлов строк по 200-500 где то / 0 warnings / года 2004-2014 где то
c (avr, stm32) / 15-20 файлов строк по 100-200 где то / 0 warnings / года 2006-2015 где то
c++ (ms) / 8-10 файлов строк по 300-400 где то / 0 warnings / года 2015-2016
qt, c++ (ms) / 20-30 файлов строк по 400-600 где то / десятки warnings (из за кути там лезут) / 2015-2016
java (android) / 5-10 файлов строк по 100-200 кажется / 0 warnings / года 2013-2015 где то

как то так... всё по памяти = плюс-минус трамвайная остановка.
это чиссо свои проекты. нету явного отключения warnings. уровень - на полную катушку.

и?

(круглый)
ЗЫ
О блин... забыл ышо парочку проектов по си плас плас, парочку по вэбовским делам типа пых-пыха, js и прочая фигня...
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632395
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПравила хорошие. Годные. А мне кажется, что как минимум половина из них идиотские.
С какой стати нужно избегать рекурсии, к примеру, при обходе узлов дерева?
Или откуда в универсальной подпрограмме должно возникнуть ограничение на количество итераций? Пару раз получал сбой работы оттого, что мои коллеги считали это правило разумным с т.з. "реального запуска".

maytonИ прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS
вы получаете. Delphi, проект с со всеми плагинами порядка 2 млн. (может и больше, не считал).
Сразу отключаю предупреждения типа "unsafe typecast", за остальными слежу и не допускаю. Вплоть до того, что вставляю бессмысленные с т.з. кода конструкции чтобы компилятор не нервничал.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632434
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

По поводу рекурсии. Кажется недавно здесь в sql. Ru
Уже обсудили этот документ и решили что это
NASA, аэрокосмос и как следствие повышенные
Требования к real-time.

Вобщем нишевый документ но в своем сегменте годный.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632460
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
сомневаюсь даже насчет сегмента.
Помнится, именно у NASA один ракетоноситель грохнулся именно из-за таких "разумных ограничений" (softwarer подробно описывал).
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632496
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисА мне кажется, что как минимум половина из них идиотские.
С какой стати нужно избегать рекурсии, к примеру, при обходе узлов дерева?


Переполнение стека, не? :-)

Соколинский БорисИли откуда в универсальной подпрограмме должно возникнуть ограничение на количество итераций? Пару раз получал сбой работы оттого, что мои коллеги считали это правило разумным с т.з. "реального запуска".


Бесконечный цикл, не? :-)
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 2 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП vs процедурное - Никто не знает ответ на этот вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]