Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, 1. Чтобы при конечной рекурсии переполнился стек на современной технике нужно ну очень сильно постараться. В принципе не исключено, но для таких случаев нужно нормально правило сформулировать. 2. Цикл циклу рознь. То, что исполняемому фрагменту может показаться бесконечным, с т.з. вызывающего может быть нормальным и наоборот. Всегда можно задать извне максимальное число итераций, а не заниматься самодеятельностью при неполной информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 14:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисDelphi, проект с со всеми плагинами порядка 2 млн. (может и больше, не считал). Сразу отключаю предупреждения типа "unsafe typecast", за остальными слежу и не допускаю. Вплоть до того, что вставляю бессмысленные с т.з. кода конструкции чтобы компилятор не нервничал. Аналогично. Хинты и предупреждения при ночной сборке - это предмет для разбирательства с программистом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 14:35 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
maytonВсем участникам топика - посмотрите на свои собственные проекты. В части логов компилляции. Действительно ли у вас компилляция всегда проходит без WARNINGS в включенными опциями "на самых дотошных настройках" как описано в статье. И прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS вы получаете. ну я не C, а ПХП (начинал вообще с bash, потом perl 2-3 года) (кучу мелких проектов пропустим, парсеров всяких там, серверных скриптов, доргенов итд) начал с простенькой CRM (5000 строк) для малого бизнеса на perl ещё был игровой хостинг на нём же (примерно тот же объём) а потом уже крутая ERP-система с нуля (на собственном фреймворке). Там в итоге неск. сотен тысяч строк получилось и много файлов. Венец, на сегодня, это собственный магазин (заканчиваю на данный момент). Помимо самого магазина там также пишется и ERP, но уже со складом и прочими фишками - самый крупный проект на сегодняшний день (но далее есть задумки на ещё крупнее) Ну а ещё я администрирую сервера с 2008 года. Сразу отвечу на вопрос - почему не нанимаю команду писать всё это... Ну потому что ни одна команда не напишет это правильно. В магазине, например, нужно учитывать кучу маркетинговых фишек, которые ни один программист просто не знает. А ещё их всех надо отучать от Laravel... Да и команда там, на самом деле, не нужна вовсе. Вот эти все раздутые IT-отделы по 200-300 программеров - я их вообще не понимаю. Нет там столько труда. Когда код нормальный (вот примерно какой мы обсуждаем), то вообще изи. Да и просто интересно программировать ;) А делегировать можно, например, SMM. Варнинги конечно по нулям. В вебе варнинги сразу фиксятся. Причём система шлёт на мыло найденную ошибку immediately. Из правил вынес, что функции это клёво + про варнинги, а остальное там про память в основном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 18:12 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский Борисmad_nazgul, 1. Чтобы при конечной рекурсии переполнился стек на современной технике нужно ну очень сильно постараться. В принципе не исключено, но для таких случаев нужно нормально правило сформулировать. А что стараться. В легкую. Практически любая NP-полная задача выест весь стек, еще добавки попросит. :-) Тут иногда кучи не хватает, не говоря уже о стеке. Соколинский Борис2. Цикл циклу рознь. То, что исполняемому фрагменту может показаться бесконечным, с т.з. вызывающего может быть нормальным и наоборот. Всегда можно задать извне максимальное число итераций, а не заниматься самодеятельностью при неполной информации. См. законы Мерфи. Иначе Если цикл может быть бесконечным, он будет бесконечным. А потом думай, какого фига программа зависает. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 10:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, А что стараться. В легкую. Практически любая NP-полная задача выест весь стек, еще добавки попросит. :-) Тут иногда кучи не хватает, не говоря уже о стеке. [/quote] Я с трудом представляю, зачем в NP-полной задаче нужна рекурсия. Но предположим. Тогда правило должно формулироваться как "избегайте рекурсии если предполагаемое число итераций превышает N", а не "избегайте рекурсий всегда". Скажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. Соколинский БорисЕсли цикл может быть бесконечным, он будет бесконечным. Уже вроде написал как нужно - для циклов с неопределенным числом итераций ограничения должны задаваться извне. А на что они устанавливаются - сходимость, итерации или время определяется "вызыватором", а не собственно реализацией. Так обычно и делается, к примеру для упомянутых NP задач, решаемых эволюционными алгоритмами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 10:41 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисСкажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. с рекурсией - это от бедности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 10:56 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
ИзопропилСоколинский БорисСкажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. с рекурсией - это от бедности скорее от лени ))) "Но не все так однозначно" ( C ) дочь офицера Скажем делал поиск по графу (все существующие в мире авиамаршруты) на Java. Сначала хотел без рекурсии, но с рекурсией на _порядки_ быстрее. Т.к. вместо коллекций для хранения данных, используется аппаратный стек. В результате - получившийся код работал очень быстро, требовал мало памяти (3 атомик параметра в рекурсивной ф-ции) и практически не использовал heap (объект создавался фактически только для возврата результате) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 11:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Чуваки, топик-стартер исчез, как только модер удалил ссылку, которую он этим топиком пытался пиарить. А вы до сих пор распинаетесь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 14:59 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЧуваки, топик-стартер исчез, как только модер удалил ссылку, которую он этим топиком пытался пиарить. А вы до сих пор распинаетесь )) Даже интересно стало, что он мог тут пытаться пиарить - курсы войтивойти для умственно отсталых, рен тв, а может "ойти жто видите как сложно, а в онлайн-лохотроне Н вы поднимите бабла без мозга"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 17:13 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, тссс.. на священных войнах отрезвляющим речам места нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 00:06 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Полагаю топик можно закрыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 09:01 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисЯ с трудом представляю, зачем в NP-полной задаче нужна рекурсия. Но предположим. Тогда правило должно формулироваться как "избегайте рекурсии если предполагаемое число итераций превышает N", а не "избегайте рекурсий всегда". Скажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. Если бы мы жили в идеальном мире, то да. А так проще не использовать рекурсию по умолчанию. Тем более вангование на тему "предполагаемое число итераций" дело рискованное. Соколинский БорисУже вроде написал как нужно - для циклов с неопределенным числом итераций ограничения должны задаваться извне. А на что они устанавливаются - сходимость, итерации или время определяется "вызыватором", а не собственно реализацией. Так обычно и делается, к примеру для упомянутых NP задач, решаемых эволюционными алгоритмами. Если есть ограничения на количество итераций, то это то что было предложено. Т.е. мы можем доказать, что количество циклов будет конечно. В противном случае внутр цикла вы никак не доберетесь. Типа такого Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 12:03 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Код: plaintext 1. 2. 3. 4. чё-та сложна.. во: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 13:09 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЕсли бы мы жили в идеальном мире, то да. А так проще не использовать рекурсию по умолчанию. Проще исключительно начальству, которая плохо себе представляет внутреннюю кухню. И по простоте душевной считает что сложные задачи можно решить простыми способами. mad_nazgulТем более вангование на тему "предполагаемое число итераций" дело рискованное. Отнюдь, в большинстве случаев это можно предварительно оценить. Если нельзя, то не делать рекурсии. mad_nazgulВ противном случае внутр цикла вы никак не доберетесь. В противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 13:20 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисПроще исключительно начальству, которая плохо себе представляет внутреннюю кухню. И по простоте душевной считает что сложные задачи можно решить простыми способами. Проще программистам, которые будут потом поддерживать проект. Т.к. одной проблемой/контекстом меньше, которые нужно держать в голове. Соколинский БорисОтнюдь, в большинстве случаев это можно предварительно оценить. Если нельзя, то не делать рекурсии. На текущий момент времени. Но при изменении требований/условий/окружения эти оценки можно выкинуть на помойку. Соколинский БорисВ противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает. Еще одно лишнее усложнение, ради чего?! Зачем нужен бесконечный цикл? Или можно все таки сделать выход из цикла по определенным условиям, которые будут гарантированно срабатывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 14:56 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgulПроще программистам, которые будут потом поддерживать проект. Совсем не проще. Код без рекурсии будет содержать намного больше строк и промежуточных данных. mad_nazgulНа текущий момент времени. Но при изменении требований/условий/окружения эти оценки можно выкинуть на помойку. Не надо ничего выкидывать. Оценку нужно делать по входным данным а не "разумным" предположением. Соколинский БорисВ противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает. mad_nazgulИли можно все таки сделать выход из цикла по определенным условиям, которые будут гарантированно срабатывать? Если эти условия сработают до того, как будет найдено решение, с тем же успехом можно в цикл вообще не входить. На примере: решаем мы NP задачу, допустим "коммивояжера". Как определить "разумное" итераций не зная ни требуемой точности, ни допустимого времени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 15:51 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Хвостовую будем рассматривать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 17:08 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
В методичке сказано - рекурсию не использовать. Мало ли что - может компилятор не умеет её оптимизировать. P.S. Это был сарказм, если кто-то не догадался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 17:16 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39633902&tid=1340130]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 306ms |
| total: | 597ms |

| 0 / 0 |
