powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП vs процедурное - Никто не знает ответ на этот вопрос
19 сообщений из 69, страница 3 из 3
ООП 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
19 сообщений из 69, страница 3 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП vs процедурное - Никто не знает ответ на этот вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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