ГлавнаяБлогКарты Warcraft 3Гайды для первой ДотыГайды для Доты 2 [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: XOPYC, russsix  
Тема для тупого флуда
Дата: Среда, 24.06.2020, 14:04 | Сообщение # 3681
Admin
Администраторы
Сообщений: 15615
Награды: 43
Репутация: 189
Просто если несколько уровней вложений (до 4-5 у меня бывало) мне кажется с этими отступами замучаешься их отслеживать. А в более менее прямолинейных программах может быть это жизнеспособный подход

Warcraft 3 - это уже легенда
WC3 - это мини-легенда
Дота - это альтернативный путь развития варкрафта
 
Дата: Среда, 24.06.2020, 14:13 | Сообщение # 3682
Генералиссимус
Проверенные
Сообщений: 2234
Награды: 3
Репутация: 37
На самом деле считается хорошим тоном в стиле программирования не делать множество вложенных отступов и циклов. Если появляется много вложенных циклов, то обычно код можно переписать в таком стиле, чтобы смотрелось это человекопонятно - разбить код по функциям, например, и т.д.

Добавлено (24.06.2020, 14:15)
---------------------------------------------
Так-то ты и в коде со скобками делаешь разные отступы. Так же есть опасность не в том месте поставить скобку, и всё, код работает не так, как надо))

 
Дата: Среда, 24.06.2020, 20:50 | Сообщение # 3683
Admin
Администраторы
Сообщений: 15615
Награды: 43
Репутация: 189
Цитата Salamandr ()
чтобы смотрелось это человекопонятно - разбить код по функциям, например, и т.д.

это не всегда удобно, когда пишешь функцию для какого-нибудь редкого уникального расчета его обычно лучше объединить в одну функцию

Цитата Salamandr ()
Так же есть опасность не в том месте поставить скобку, и всё, код работает не так, как надо))

не, скобки у программистов "в крови", а вот отступы вместо них - это чужеродный искусственный элемент ))


Warcraft 3 - это уже легенда
WC3 - это мини-легенда
Дота - это альтернативный путь развития варкрафта
 
Дата: Четверг, 25.06.2020, 14:41 | Сообщение # 3684
Генералиссимус
Модераторы
Сообщений: 13551
Награды: 23
Репутация: 142
Цитата 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
Награды: 43
Репутация: 189
Цитата XOPYC ()
Если не будет отступов, то код будет не читаемый, даже со скобками

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

Цитата XOPYC ()
нужно собрать инфу в один массив и нормально составленным запросом один раз обратиться к базе

в той программе, которую я 5 лет писал на работе, это все не нужно. Она узко специализированная расчетная, аналогов нет


Warcraft 3 - это уже легенда
WC3 - это мини-легенда
Дота - это альтернативный путь развития варкрафта
 
Дата: Четверг, 25.06.2020, 17:55 | Сообщение # 3686
Генералиссимус
Модераторы
Сообщений: 13551
Награды: 23
Репутация: 142
Цитата Admin ()
отступы, конечно, нужны для читаемости кода, но одно дело когда ставишь их по собственному желанию, а другое - когда это обязаловка

Это не обязаловка, а логика =) Вероятно тебе же когда-то придётся что-то поправить/добавить, а если этот код не читаемый, то будет крайне сложно в нём разобраться.
Более того, современные IDE уже давно сами всё подставляют так, чтобы было логично и понятно. Так что сложности могут возникнуть разве что в блокноте =)

Цитата Admin ()
в той программе, которую я 5 лет писал на работе, это все не нужно. Она узко специализированная расчетная, аналогов нет

Ну я привёл пример, где излишняя вложенность это плохо. Да ну пускай это будет не база, но у тебя к примеру есть массив с 1 миллионом значений. Ты его перебираешь в цикле, пока не кончатся элементы.
Внутри этого цикла ты к примеру сравниваешь его показатели с другим массивом, у которого тоже 1 миллион значений. Получается 1 000 000 000 000 операций = ) А если там будет ещё массивчик с 10ю хотя бы элементами, который нужно будет сравнить с всеми значениями внутри второго массива, то умнож кол-во операций на 10 =)
И такие задачи вполне могут быть =) Или реализация где-то, всякое бывает =)
 
Дата: Четверг, 25.06.2020, 20:37 | Сообщение # 3687
Генералиссимус
Проверенные
Сообщений: 2234
Награды: 3
Репутация: 37
Цитата XOPYC ()
Я так в js вместо alert("Текст"); писал alarm("Текст"); и не понимал, почему такой функции типа нет =) Если что первая выводит окошко в браузере с сообщением, а второй не существует =)

Прикол. Да, бывает периодически подобное. Возможно даже, тоже писал alarm как-то, уже не помню :Q

Цитата Admin ()
отступы, конечно, нужны для читаемости кода, но одно дело когда ставишь их по собственному желанию, а другое - когда это обязаловка

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

Я просто работая на Питоне почти никогда не встречаю каких-то умопомрачительных вложенных отступов, когда код уходит за экран. Такое бывает только в объективно очень плохом коде, обычно написанном впопыхах и\или новичком
Общепринято стараться писать функции не больше 50 строк и избегать множественных вложенных циклов, по крайней мере в рамках одной функции


Сообщение отредактировал Salamandr - Четверг, 25.06.2020, 20:38
 
Дата: Четверг, 25.06.2020, 21:32 | Сообщение # 3688
Admin
Администраторы
Сообщений: 15615
Награды: 43
Репутация: 189
кстати, а у Питона то 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
Награды: 3
Репутация: 37
Цитата 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
Награды: 23
Репутация: 142
Цитата Admin ()
и как эту задачу выполнить с помощью базы?

База тут не при чём, нужно понять, почему вообще у тебя так много данных получилось, явно какая-то фигня. Понять, исправить и жить радостным дальше =)
 
Поиск: