|
Тема для тупого флуда
|
|
|
| Дата: Среда, 24.06.2020, 14:04 | Сообщение # 3681 |
Admin
Сообщений: 15615
|
Просто если несколько уровней вложений (до 4-5 у меня бывало) мне кажется с этими отступами замучаешься их отслеживать. А в более менее прямолинейных программах может быть это жизнеспособный подход
Warcraft 3 - это уже легенда WC3 - это мини-легенда Дота - это альтернативный путь развития варкрафта
|
| |
|
|
|
| Дата: Среда, 24.06.2020, 14:13 | Сообщение # 3682 |
Генералиссимус
Сообщений: 2234
|
На самом деле считается хорошим тоном в стиле программирования не делать множество вложенных отступов и циклов. Если появляется много вложенных циклов, то обычно код можно переписать в таком стиле, чтобы смотрелось это человекопонятно - разбить код по функциям, например, и т.д. Добавлено (24.06.2020, 14:15) --------------------------------------------- Так-то ты и в коде со скобками делаешь разные отступы. Так же есть опасность не в том месте поставить скобку, и всё, код работает не так, как надо))
|
| |
|
|
|
| Дата: Среда, 24.06.2020, 20:50 | Сообщение # 3683 |
Admin
Сообщений: 15615
|
Цитата Salamandr (  ) чтобы смотрелось это человекопонятно - разбить код по функциям, например, и т.д. это не всегда удобно, когда пишешь функцию для какого-нибудь редкого уникального расчета его обычно лучше объединить в одну функцию
Цитата Salamandr (  ) Так же есть опасность не в том месте поставить скобку, и всё, код работает не так, как надо)) не, скобки у программистов "в крови", а вот отступы вместо них - это чужеродный искусственный элемент ))
Warcraft 3 - это уже легенда WC3 - это мини-легенда Дота - это альтернативный путь развития варкрафта
|
| |
|
|
|
| Дата: Четверг, 25.06.2020, 14:41 | Сообщение # 3684 |
Генералиссимус
Сообщений: 13551
|
Цитата Admin (  ) не, скобки у программистов "в крови", а вот отступы вместо них - это чужеродный искусственный элемент )) Если не будет отступов, то код будет не читаемый, даже со скобками. Ещё когда у меня была книжка по Делфи, да и что-то постарее где-то находил, в любом листинге кода были отступы. Вот войну про то, что отступы должны быть либо из 4ёх пробелов либо из одного таба, это знаю. А что отступы не нужны вообще, какая-то наркомания =) Либо ещё одно, это когда открывающая фигурная скобка тела if'а ставится на той же строке, что и условия, либо переносится на следующую =) Это ещё один вечный спор =)
Цитата Admin (  ) это не всегда удобно, когда пишешь функцию для какого-нибудь редкого уникального расчета его обычно лучше объединить в одну функцию Есть такая штука, как обращение к базе, и можно этот вызов закинуть в какой нибудь while, потом в foreach, потом ещё куда-то и всё это новая и новая вложенность. Ну и нагрузка на базу соответственно. Вместо 1кк обращений к базе, нужно собрать инфу в один массив и нормально составленным запросом один раз обратиться к базе, получив всё нужное. В случаях, когда структура базы идиотская и такое не прокатывает... ну тут уже ничего не попишешь. Ну и думаю Саламандр говорит не про 3-5 вложенностей, а про 10-20, а то и больше. Если такая матрёшка получается, то явно что-то не правильно продуманно. И да, это не про 10 ифов, которые стоят друг за другом, т.к. находятся на одном уровне вложенности =)
Цитата Salamandr (  ) Так же есть опасность не в том месте поставить скобку, и всё, код работает не так, как надо)) Вот кстати да =) Но тут что так, что эдак, везде можно накосячит. Глупые ошибки перестаёшь делать со временем =) А если и возникают, то чаще из-за усталости, когда над одной задачей просидел уже 12 часов =) Я так в js вместо alert("Текст"); писал alarm("Текст"); и не понимал, почему такой функции типа нет =) Если что первая выводит окошко в браузере с сообщением, а второй не существует =)
|
| |
|
|
|
| Дата: Четверг, 25.06.2020, 16:31 | Сообщение # 3685 |
Admin
Сообщений: 15615
|
Цитата XOPYC (  ) Если не будет отступов, то код будет не читаемый, даже со скобками отступы, конечно, нужны для читаемости кода, но одно дело когда ставишь их по собственному желанию, а другое - когда это обязаловка
Цитата XOPYC (  ) нужно собрать инфу в один массив и нормально составленным запросом один раз обратиться к базе в той программе, которую я 5 лет писал на работе, это все не нужно. Она узко специализированная расчетная, аналогов нет
Warcraft 3 - это уже легенда WC3 - это мини-легенда Дота - это альтернативный путь развития варкрафта
|
| |
|
|
|
| Дата: Четверг, 25.06.2020, 17:55 | Сообщение # 3686 |
Генералиссимус
Сообщений: 13551
|
Цитата Admin (  ) отступы, конечно, нужны для читаемости кода, но одно дело когда ставишь их по собственному желанию, а другое - когда это обязаловка Это не обязаловка, а логика =) Вероятно тебе же когда-то придётся что-то поправить/добавить, а если этот код не читаемый, то будет крайне сложно в нём разобраться. Более того, современные IDE уже давно сами всё подставляют так, чтобы было логично и понятно. Так что сложности могут возникнуть разве что в блокноте =)
Цитата Admin (  ) в той программе, которую я 5 лет писал на работе, это все не нужно. Она узко специализированная расчетная, аналогов нет Ну я привёл пример, где излишняя вложенность это плохо. Да ну пускай это будет не база, но у тебя к примеру есть массив с 1 миллионом значений. Ты его перебираешь в цикле, пока не кончатся элементы. Внутри этого цикла ты к примеру сравниваешь его показатели с другим массивом, у которого тоже 1 миллион значений. Получается 1 000 000 000 000 операций = ) А если там будет ещё массивчик с 10ю хотя бы элементами, который нужно будет сравнить с всеми значениями внутри второго массива, то умнож кол-во операций на 10 =) И такие задачи вполне могут быть =) Или реализация где-то, всякое бывает =)
|
| |
|
|
|
| Дата: Четверг, 25.06.2020, 20:37 | Сообщение # 3687 |
Генералиссимус
Сообщений: 2234
|
Цитата XOPYC (  ) Я так в js вместо alert("Текст"); писал alarm("Текст"); и не понимал, почему такой функции типа нет =) Если что первая выводит окошко в браузере с сообщением, а второй не существует =) Прикол. Да, бывает периодически подобное. Возможно даже, тоже писал alarm как-то, уже не помню 
Цитата Admin (  ) отступы, конечно, нужны для читаемости кода, но одно дело когда ставишь их по собственному желанию, а другое - когда это обязаловка Вот кстати, чем больше стилистических приёмов остаются "по желанию", тем больше страдает читаемость кода. Потому что когда открываешь чужой код, то удобнее искать в нём общепринятый или единственно возможный стиль, чем творчески выработанный)
Я просто работая на Питоне почти никогда не встречаю каких-то умопомрачительных вложенных отступов, когда код уходит за экран. Такое бывает только в объективно очень плохом коде, обычно написанном впопыхах и\или новичком Общепринято стараться писать функции не больше 50 строк и избегать множественных вложенных циклов, по крайней мере в рамках одной функции
Сообщение отредактировал Salamandr - Четверг, 25.06.2020, 20:38 |
| |
|
|
|
| Дата: Четверг, 25.06.2020, 21:32 | Сообщение # 3688 |
Admin
Сообщений: 15615
|
кстати, а у Питона то IDE есть? почему в этой статье https://microkontroller.ru/arduino-projects/ispolzovanie-yazyka-programmirovaniya-python-vmeste-s-arduino/ оболочка Python похожа на какой то доисторический Бейсик?
Цитата XOPYC (  ) Получается 1 000 000 000 000 операций = ) А если там будет ещё массивчик с 10ю хотя бы элементами, который нужно будет сравнить с всеми значениями внутри второго массива, то умнож кол-во операций на 10 =) и как эту задачу выполнить с помощью базы? Я в своих программах работал только с файлами и массивами, которые хранились в оперативной памяти. Причем на старых по тем меркам компьютеров ОЗУ не хватало для запуска моей программы
Warcraft 3 - это уже легенда WC3 - это мини-легенда Дота - это альтернативный путь развития варкрафта
|
| |
|
|
|
| Дата: Четверг, 25.06.2020, 23:47 | Сообщение # 3689 |
Генералиссимус
Сообщений: 2234
|
Цитата Admin (  ) кстати, а у Питона то IDE есть? почему в этой статье https://microkontroller.ru/arduino-projects/ispolzovanie-yazyka-programmirovaniya-python-vmeste-s-arduino/ оболочка Python похожа на какой то доисторический Бейсик? Так, ну во-первых это доисторическая версия питона, которую перестали поддерживать в январе этого года) Во-вторых - IDE есть: PyCharm, Anaconda. Я ими не пользуюсь, пользуюсь обычным текстовым редактором Sublime Text со встроенными плагинами для языка. То окошко, что на скринах в статье, в работе никогда не используется. Хотя я именно через него запускал свои первые программы, когда первые месяцы учился
Сообщение отредактировал Salamandr - Пятница, 26.06.2020, 01:29 |
| |
|
|
|
| Дата: Пятница, 26.06.2020, 13:27 | Сообщение # 3690 |
Генералиссимус
Сообщений: 13551
|
Цитата Admin (  ) и как эту задачу выполнить с помощью базы? База тут не при чём, нужно понять, почему вообще у тебя так много данных получилось, явно какая-то фигня. Понять, исправить и жить радостным дальше =)
|
| |
|
|