powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП vs процедурное - Никто не знает ответ на этот вопрос
69 сообщений из 69, показаны все 3 страниц
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631108
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НИКТО НЕ ЗНАЕТ ОТВЕТ НА ЭТОТ ВОПРОС.
---
Давненько меня интересует вопрос. Но чтобы его задать нужно некое вступление.

Знач, таксс: Если ООП это метод, подход, способ, парадигма, философия написания программ и процедурное программирование тоже способ, метод, подход к написанию программ, то...:

- при изучении, вникании, понимании ООП проясняются такие вещи:

- класс - это то что записано в текстовом редакторе

- методы класса - возможности класса

- объект - некая херня, которая "оживает и живёт" во время выполнения программы.

Объект создается на основании (на основе) класса. То что создается называется экземпляр класса (или объект?).

(ВНИМАНИЕ, ВАЖНЫЙ МОМЕНТ!) Этот объект имеет методы которые располагаются в памяти компутера.

- Если создается клон, копия, еще один экземпляр класса, то его методы ссылаются на методы, которые для данного класса являются общими. Этот новый экземпляр класса, объект может иметь дополнительные методы и свойства, или не иметь тех методов и свойств, которые изначально записаны в определении класса.

Это мое, скорей всего неправильное, представление об ООП, но не в этом суть.

Вопрос вот в чем: Если для программы нет никакой разницы каким хандибубером ее написали, то КАК? можно увязать выполнение программы написанной в процедурном стиле с выполнением программы, написанной в стиле ООП?

Какие классы, методы, объекты в процедурщине? Как, с точки зрения самой исполняемой программы, она будет выполняться?

---
Модератор: Ссылку удалил, никакой дополнительной информации там нет, похоже на раскрутку сайта
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631116
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой-то полный бред

После сочитание слов "класс - это то что записано в текстовом редакторе", мозг вскипает, а руки отказываются нажимать на клавиатуру и кормить тролля

Превозмогая неуверенность в руках, все же постараюсь ответить:

Какие классы, методы, объекты в процедурщине
Исходя из Вашего подхода, в процедурщине все тоже самое, что и в ООП

Файлы написанные в текстовом редакторе; буковки, запятые, прочие знаки пряпинания, хренобулины и хандибуберы )))
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631118
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и да, на удивление, все это в процедурщине, так же как в ООП, так же "располагаются в памяти компутера"
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631119
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для взаимодействия между программами делают API .
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631135
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКакой-то полный бред

После сочитание слов "класс - это то что записано в текстовом редакторе", мозг вскипает, а руки отказываются нажимать на клавиатуру и кормить тролля

Превозмогая неуверенность в руках, все же постараюсь ответить:

Какие классы, методы, объекты в процедурщине
Исходя из Вашего подхода, в процедурщине все тоже самое, что и в ООП

Файлы написанные в текстовом редакторе; буковки, запятые, прочие знаки пряпинания, хренобулины и хандибуберы )))

Я не троль. На сколько я понимаю то в исполняющейся программе понятия класс - нет. Есть объект.

Я же написал КАК можно объяснить выполнение программы НАПИСАННОЙ В СТИЛЕ ООП И В ПРОЦЕДУРНОМ СТИЛЕ (с точки зрение самой программы, кода) ВО ВРЕМЯ ЕЕ ВЫПОЛНЕНИЯ?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631139
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TДля взаимодействия между программами делают API .
Вы не поняли вопрос?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631142
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinDima TДля взаимодействия между программами делают API .
Вы не поняли вопрос?
Похоже что нет. Поподробнее объясни суть вопроса.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631144
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
компилятор всё перегонит в обычные функции
ООП только для людей
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631146
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskin,
Поверим, что не тролль.
НИКАК.
В процедурном стиле можно
А. Написать подпрограмму, которая обрабатывает структуру - получим инкапсуляцию.
Б. Эту же подпрограмму вызывать из другой подпрограммы - получим наследование.
В. Передавать туда же адреса callback-функций - получим полиморфизм.
Разница будет лишь в размере текста в редакторе и читаемости оного.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631150
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78компилятор всё перегонит в обычные функции
ООП только для людей

вот и я так подумываю, и скорее всего объяснения про то как исполняется программа написанная на ООП - тоже строго только для людей. Ведь машинный код будет (должен быть!) идентичен для одной и той же программы написанной в ооп и в процед стиле.

Значит ли это что все пояснения про ООП об объектах, методах и пр. - не правда?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631151
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисaliskin,
Поверим, что не тролль.
НИКАК.
В процедурном стиле можно
А. Написать подпрограмму, которая обрабатывает структуру - получим инкапсуляцию.
Б. Эту же подпрограмму вызывать из другой подпрограммы - получим наследование.
В. Передавать туда же адреса callback-функций - получим полиморфизм.
Разница будет лишь в размере текста в редакторе и читаемости оного.

А как же объяснения в вузах, книгах?

Например в ооп создается объект Калькулятор (имеет один метод - сложить два числа, и вернуть результат).

В процедурном стиле НАВЕРНОЕ это будет функция которая складывает два числа и возвращает результат(?)

Если с одним объектом и одним методом более/менее понятно , то что и как ЕСЛИ у объекта Калькулятор будет множество методов?

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

Значит ли это что все пояснения про ООП об объектах, методах и пр. - не правда?

то есть эти обьяснения тоже только для людей.(?)
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631159
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinЕсли с одним объектом и одним методом более/менее понятно , то что и как ЕСЛИ у объекта Калькулятор будет множество методов?
Значит будет несколько функций
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631162
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinА как же объяснения в вузах, книгах? Что "как же"?
ООП и Flat - это разные концепции архитектуры исходного кода, а не исполнения.
Калькулятор, как и любое другое простенькое приложение, все равно как писать.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631175
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилaliskinЕсли с одним объектом и одним методом более/менее понятно , то что и как ЕСЛИ у объекта Калькулятор будет множество методов?
Значит будет несколько функций

Как в таком случае оюяснить (увязать, связать) создание объекта в ооп и отсуствин оного (его) в процедурщине?

В вузах и книгах рассказывают: "при создании объекта в памяти выделяется место для данных объкта и для его методов"...

А если прога написана не ООП’ом? Позже я приведу конкретный пример.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631182
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinА если прога написана не ООП’ом?
Тогда память выделяется malloc, например
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631192
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinИзопропилпропущено...

Значит будет несколько функций

Как в таком случае оюяснить (увязать, связать) создание объекта в ооп и отсуствин оного (его) в процедурщине?

В вузах и книгах рассказывают: "при создании объекта в памяти выделяется место для данных объкта и для его методов"...

А если прога написана не ООП’ом? Позже я приведу конкретный пример.

объет = переменная
метод = ф-я
для них также выделяется память
как и для всего в компе
даже сраной клавиатуре память подавай ^^
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631195
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinИзопропилпропущено...

Значит будет несколько функций

Как в таком случае оюяснить (увязать, связать) создание объекта в ооп и отсуствин оного (его) в процедурщине?

В вузах и книгах рассказывают: "при создании объекта в памяти выделяется место для данных объкта и для его методов"...

А если прога написана не ООП’ом? Позже я приведу конкретный пример.
Когда Иоганна Себастиана Баха спросили как он так прекрасно играет - он
ответил что всё очень просто. Надо всего-лишь своевременно нажимать
соответсвтующие клавиши.

К чему это я.

ООП - это метафора. Любая "прога" в конечном счете превращается в бинарный код который
манипулирует с регистрами процессора, I/O портами и памятью.

ООП не нужно процессору. Оно нужно человеку чтобы притянуть в код с десяток абстракций.

На ООП - спекулируют. Каждый ЯП имеет свою собственную реализацию ООП.

ООП часто ограничивает разработчика. Вместо решения бизнес задачи разработчик
играется ерундой перекладывая инкапсуляции из одного места в другое или комбинируя
классы и экземпляры в группы (шаблоны проектирования).

Обсуждение ООП часто разжигает религиозные войны между разработчиками.

ООП имеет кривую и до сих пор неопределённую терминологию (extend/inherit/implement/is_a,
class/type/object/trait).

Учебные примеры использования ООП (собака наследует волка) представляют собой фейерический
бред, который не выдержит критики со стороны зоолога или биолога.

Некоторые опции безопасности ООП (protected) оказались не нужны либо применяются не так
как хотели создатели. Некоторые тестировочные фреймворки хакают private/protected чтобы
провести тестовые сценарии.

Некоторые парадигмы инкапсуляции (EJB) являют собой нагромождение ненужного синтаксиса
от которого сегодня стонут и плачут но не могут ничего поделать.

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

ООП содержит парадоксы наследования (ромбовидное).

Попытка работать с БД с использованием ООП породила целый ряд монструозных фреймворков
которые сегодня являются "визитной карточкой" энтерпрайза (если вы не знаете Хибернейт
то вы скорее всего не пройдете собес).

Существуют альтернативные парадигмы где ООП вообще не имеет никакого значения но
значимо понятие функции и реентерабельности и еще целой кучи плюшек типа частичной вычислимости.

Отцы-основатели алгоритмических теорий (Никлаус Вирт, Дональд Кнут) недолюбливают
ООП в современном виде. Большинство литературы по теории алгоритмов написано
без ООП на процедурных языках. Господин Кнут вообще создал свой ассемблер.

И последнее мнение - моё собственное никем не подтверждённое.

Не существует никаких математически обоснованных утвержденний о том что ООП ускоряет
процесс разработки или уменьшает количество ошибок. Нет также сведений о сравнении двух
одинаковых или похожих проектов разработанных с ООП или без. Многие тезисы ООП мы принимаем
на веру как есть безо всякого доказательства.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631212
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton Не существует никаких математически обоснованных утвержденний о том что ООП ускоряет
процесс разработки или уменьшает количество ошибок. Нет также сведений о сравнении двух
одинаковых или похожих проектов разработанных с ООП или без.
Могу собственным опытом поделиться.
ООП не ускоряет процесс разработки, скорее наоборот. НО: он сильно упрощает сопровождение и модификацию кода.
И есть задачи, где без него совсем тяжело.
Недавно получил в наследство коды для прошивки Ардуинок, написанные без ООП - это АДъ. Притом, что сам код не так уж и плохо был написан, но разобраться в бесконечных ветвлениях под разные платы и состав компонентов прошивки стоило громадных усилий. Потом плюнул и все переписал под ООП.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631213
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aliskinНа сколько я понимаю то в исполняющейся программе понятия класс - нет. Есть объект.

В исполняющейся программе нет классов и объектов. Там обычные машинные команды, гоняющие значения по регистрам и оперативке.

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

в компьютере электроны по проводам бегают и п-н-п переходы переключают. ни про какие процедурные и ооп электроны ничего не знают.

когда их бенджамин франклин изобретал, он ни то что про ооп не думал, а даже и китайского смартфона у него не было. а как электроны изобрел, тут же стал у короля английского айфон требовать. а когда ему не дали - устроил американский майдан и полный кавардак.

думаю, все примерно так и происходило. имху.

п.с.
одного не понимаю, нафига нормальный китайский чай было в бостоне в море выкидывать. ((( майдан майданом, но нафига хорошие продукты переводить.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631236
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю кто/что знает ответ. Компиляторы и линковщики знают как и что. Потому что это они сжирают написанные символы и переваривают их в машинные инструкции.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631240
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ последнее мнение - моё собственное никем не подтверждённое.

Не существует никаких математически обоснованных утвержденний о том что ООП ускоряет
процесс разработки или уменьшает количество ошибок. Нет также сведений о сравнении двух
одинаковых или похожих проектов разработанных с ООП или без. Многие тезисы ООП мы принимаем
на веру как есть безо всякого доказательства
.

и при всем этом абсолютно все (или большинство) при упоминании про ООП, смотрят на задающего вопрос как на древнего динозавра, типа: "чё-чё, ты все никак не можешь осилить ооп?, та кто сейчас вообще прогнрамит не на ооп?"

Все-таки читабельность кода написанного на оопе :) высокая. Потому проще понять о чем этот код, отсюда следует вывод - сопровождение кода становится легче. И именно для этого придумали ООП(?)
---
"Нет также сведений о сравнении двух
одинаковых или похожих проектов разработанных с ООП или без.
Многие тезисы ООП мы принимаем
на веру как есть безо всякого доказательства
." - а мне интересно! Но, вынужден повториться, более/менее понятный ответ знают компиляторы и линковщики.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631242
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и при всем этом абсолютно все (или большинство) при упоминании о ПРОЦЕДУРНОМ стиле программир
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39631244
aliskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе.
...
Рейтинг: 0 / 0
ООП 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
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632512
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
1. Чтобы при конечной рекурсии переполнился стек на современной технике нужно ну очень сильно постараться. В принципе не исключено, но для таких случаев нужно нормально правило сформулировать.
2. Цикл циклу рознь. То, что исполняемому фрагменту может показаться бесконечным, с т.з. вызывающего может быть нормальным и наоборот. Всегда можно задать извне максимальное число итераций, а не заниматься самодеятельностью при неполной информации.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632527
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисDelphi, проект с со всеми плагинами порядка 2 млн. (может и больше, не считал).
Сразу отключаю предупреждения типа "unsafe typecast", за остальными слежу и не допускаю. Вплоть до того, что вставляю бессмысленные с т.з. кода конструкции чтобы компилятор не нервничал.

Аналогично. Хинты и предупреждения при ночной сборке - это предмет для разбирательства с программистом.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632750
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВсем участникам топика - посмотрите на свои собственные проекты. В части логов компилляции.
Действительно ли у вас компилляция всегда проходит без WARNINGS в включенными опциями
"на самых дотошных настройках" как описано в статье.

И прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS
вы получаете.
ну я не C, а ПХП (начинал вообще с bash, потом perl 2-3 года)
(кучу мелких проектов пропустим, парсеров всяких там, серверных скриптов, доргенов итд)
начал с простенькой CRM (5000 строк) для малого бизнеса на perl
ещё был игровой хостинг на нём же (примерно тот же объём)
а потом уже крутая ERP-система с нуля (на собственном фреймворке). Там в итоге неск. сотен тысяч строк получилось и много файлов.
Венец, на сегодня, это собственный магазин (заканчиваю на данный момент). Помимо самого магазина там также пишется и ERP, но уже со складом и прочими фишками - самый крупный проект на сегодняшний день (но далее есть задумки на ещё крупнее)
Ну а ещё я администрирую сервера с 2008 года.

Сразу отвечу на вопрос - почему не нанимаю команду писать всё это... Ну потому что ни одна команда не напишет это правильно. В магазине, например, нужно учитывать кучу маркетинговых фишек, которые ни один программист просто не знает. А ещё их всех надо отучать от Laravel...
Да и команда там, на самом деле, не нужна вовсе. Вот эти все раздутые IT-отделы по 200-300 программеров - я их вообще не понимаю. Нет там столько труда. Когда код нормальный (вот примерно какой мы обсуждаем), то вообще изи. Да и просто интересно программировать ;)
А делегировать можно, например, SMM.

Варнинги конечно по нулям. В вебе варнинги сразу фиксятся. Причём система шлёт на мыло найденную ошибку immediately.
Из правил вынес, что функции это клёво + про варнинги, а остальное там про память в основном.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39632984
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисmad_nazgul,
1. Чтобы при конечной рекурсии переполнился стек на современной технике нужно ну очень сильно постараться. В принципе не исключено, но для таких случаев нужно нормально правило сформулировать.


А что стараться.
В легкую. Практически любая NP-полная задача выест весь стек, еще добавки попросит. :-)
Тут иногда кучи не хватает, не говоря уже о стеке.

Соколинский Борис2. Цикл циклу рознь. То, что исполняемому фрагменту может показаться бесконечным, с т.з. вызывающего может быть нормальным и наоборот. Всегда можно задать извне максимальное число итераций, а не заниматься самодеятельностью при неполной информации.

См. законы Мерфи.
Иначе
Если цикл может быть бесконечным, он будет бесконечным.

А потом думай, какого фига программа зависает. :-)
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633008
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
А что стараться.
В легкую. Практически любая NP-полная задача выест весь стек, еще добавки попросит. :-)
Тут иногда кучи не хватает, не говоря уже о стеке.
[/quote]
Я с трудом представляю, зачем в NP-полной задаче нужна рекурсия. Но предположим.
Тогда правило должно формулироваться как "избегайте рекурсии если предполагаемое число итераций превышает N", а не "избегайте рекурсий всегда". Скажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки.

Соколинский БорисЕсли цикл может быть бесконечным, он будет бесконечным.
Уже вроде написал как нужно - для циклов с неопределенным числом итераций ограничения должны задаваться извне. А на что они устанавливаются - сходимость, итерации или время определяется "вызыватором", а не собственно реализацией.
Так обычно и делается, к примеру для упомянутых NP задач, решаемых эволюционными алгоритмами.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633019
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисСкажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки.
с рекурсией - это от бедности
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633040
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилСоколинский БорисСкажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки.
с рекурсией - это от бедности
скорее от лени )))

"Но не все так однозначно" ( C ) дочь офицера

Скажем делал поиск по графу (все существующие в мире авиамаршруты) на Java. Сначала хотел без рекурсии, но с рекурсией на _порядки_ быстрее. Т.к. вместо коллекций для хранения данных, используется аппаратный стек. В результате - получившийся код работал очень быстро, требовал мало памяти (3 атомик параметра в рекурсивной ф-ции) и практически не использовал heap (объект создавался фактически только для возврата результате)
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633230
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чуваки, топик-стартер исчез, как только модер удалил ссылку, которую он этим топиком пытался пиарить.
А вы до сих пор распинаетесь ))
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633335
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЧуваки, топик-стартер исчез, как только модер удалил ссылку, которую он этим топиком пытался пиарить.
А вы до сих пор распинаетесь ))

Даже интересно стало, что он мог тут пытаться пиарить - курсы войтивойти для умственно отсталых, рен тв, а может "ойти жто видите как сложно, а в онлайн-лохотроне Н вы поднимите бабла без мозга"?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633456
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

тссс.. на священных войнах отрезвляющим речам места нет!
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633519
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полагаю топик можно закрыть.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633672
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисЯ с трудом представляю, зачем в NP-полной задаче нужна рекурсия. Но предположим.
Тогда правило должно формулироваться как "избегайте рекурсии если предполагаемое число итераций превышает N", а не "избегайте рекурсий всегда". Скажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки.


Если бы мы жили в идеальном мире, то да.
А так проще не использовать рекурсию по умолчанию.
Тем более вангование на тему "предполагаемое число итераций" дело рискованное.

Соколинский БорисУже вроде написал как нужно - для циклов с неопределенным числом итераций ограничения должны задаваться извне. А на что они устанавливаются - сходимость, итерации или время определяется "вызыватором", а не собственно реализацией.
Так обычно и делается, к примеру для упомянутых NP задач, решаемых эволюционными алгоритмами.

Если есть ограничения на количество итераций, то это то что было предложено.
Т.е. мы можем доказать, что количество циклов будет конечно.

В противном случае внутр цикла вы никак не доберетесь.
Типа такого
Код: plaintext
1.
2.
3.
4.
int i = 1;
while(i > 0) {
   i++;
}
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633728
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Код: plaintext
1.
2.
3.
4.
int i = 1;
while(i > 0) {
   i++;
}


чё-та сложна..
во:
Код: plaintext
1.
2.
int i = 1;
while(i > 0) {}
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633734
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЕсли бы мы жили в идеальном мире, то да.
А так проще не использовать рекурсию по умолчанию.

Проще исключительно начальству, которая плохо себе представляет внутреннюю кухню. И по простоте душевной считает что сложные задачи можно решить простыми способами.

mad_nazgulТем более вангование на тему "предполагаемое число итераций" дело рискованное.

Отнюдь, в большинстве случаев это можно предварительно оценить. Если нельзя, то не делать рекурсии.

mad_nazgulВ противном случае внутр цикла вы никак не доберетесь.

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


Проще программистам, которые будут потом поддерживать проект.
Т.к. одной проблемой/контекстом меньше, которые нужно держать в голове.

Соколинский БорисОтнюдь, в большинстве случаев это можно предварительно оценить. Если нельзя, то не делать рекурсии.


На текущий момент времени.
Но при изменении требований/условий/окружения эти оценки можно выкинуть на помойку.

Соколинский БорисВ противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает.

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

Совсем не проще. Код без рекурсии будет содержать намного больше строк и промежуточных данных.

mad_nazgulНа текущий момент времени.
Но при изменении требований/условий/окружения эти оценки можно выкинуть на помойку.

Не надо ничего выкидывать. Оценку нужно делать по входным данным а не "разумным" предположением.


Соколинский БорисВ противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает.

mad_nazgulИли можно все таки сделать выход из цикла по определенным условиям, которые будут гарантированно срабатывать?
Если эти условия сработают до того, как будет найдено решение, с тем же успехом можно в цикл вообще не входить.
На примере: решаем мы NP задачу, допустим "коммивояжера". Как определить "разумное" итераций не зная ни требуемой точности, ни допустимого времени?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633893
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хвостовую будем рассматривать?
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633902
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В методичке сказано - рекурсию не использовать.
Мало ли что - может компилятор не умеет её оптимизировать.

P.S. Это был сарказм, если кто-то не догадался.
...
Рейтинг: 0 / 0
ООП vs процедурное - Никто не знает ответ на этот вопрос
    #39633930
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В nasa сидят бюрократы.

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


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