goto - с любимыми не расставайтесь, или break не тащит

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение sign » 21.10.2020 11:43:55

jsa писал(а):
И как оказалось в итоге, без GoTo код не превращается в какашку. Совсем. Наоборот стал более читаем. Прост. Логичен.
А вот с ним, даже ваш утрированный пример выглядит как бред. Совершенно не читабелен. Боюсь "представить процедуру с таким кодом длиной в несколько экранов".

Совершенно согласен.

Лично я, при несколько подряд проверках использую немного иную конструкцию.
Демонстрирую на базе данного примера
Код: Выделить всё
  if w3>10 and not(w3>11) then p...(q2, w3) else
  if w3<7 then p...(q2, w3) else ...
sign
энтузиаст
 
Сообщения: 1129
Зарегистрирован: 30.08.2009 09:20:53

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 21.10.2020 13:41:49

jsa, в свете "нового" поколения и неограниченных ресурсов, вы конечно можете обойтись без безусловного перехода. Но всё же, тем кто хочет!!! Именно хочет развиваться! Я бы посоветовал изучить ассемблер и попробовать разные варианты программы на паскале: с вызовом процедур, с использованием безусловного перехода, завёрнутые циклы, и многое другое. И посмотреть этот же код в ассемблере, когда скомпилируете эти программы на паскале.
Я думаю, вы можете очень сильно удивится, когда вдруг окажется, что некоторый ваш код, программа сама за вас сделает безусловный переход. А в другом варианте, программа с безусловным переходом окажется той программой, которая мало того что окажется лучшим вариантом среди всех по времени исполнения, так она вдруг ещё и меньше всего места занимает. Странно? Почему? Я бы вам посоветовал поиграться!!!

Ну, и теперь, самое важное. Где мы не сможем не использовать оператор безусловного перехода? (конечно же всегда сможем, но как мы перед заказчиком отчитаемся, почему наша программа не работает должным образом?).
Критические логические программы кода. Что же это такое? Это когда нам надо построить логику и чтоб она работала максимально быстро.
Чтобы программа работала максимально быстро, вы не имеете права использовать процедуры/функции, если это не повторяющийся кусок кода (заменяют макросами, лишь бы работало быстрее и без лишних вызовов, хоть и во вред занятой памяти). Избавляются от всех циклов, насколько возможно.
Сильнейшая логическая задача - максимально развёрнута! Без вызовов процедур и циклов. От вас требуется как можно меньше времени её работы.

Теперь, скажите мне пожалуйста, как вы, без использования процедур и циклов, собираетесь ещё и выкинуть безусловный переход?

Надо знать, что и для чего нужно. И не надо писать, что такого ни кому в наше время не нужно. Не нужно, только по той причине, что вы просто не сталкивались. :)
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Снег Север » 21.10.2020 14:50:44

Seenkao писал(а):Но всё же, тем кто хочет!!! Именно хочет развиваться!

Всем, кто хочет изучать занятие сексом в гамаке. :D

Моя позиция - жизнь слишком коротка, чтобы её тратить на изучение херни, которая мне никогда не понадобится в жизни. И которая, как верно замечал выше jsa, относится к реликтам, затрудняющим понимание текста программ. Ибо и меня, еще много десятилетий назад, четко научили, что программы пишут не для машины а для чтения человеком.
А если вдруг жизнь заставит программировать для чипов с микроскопическими ресурсами, то тогда только появится смысл осваивать ассемблер и внутреннюю кухню языков высокого уровня. Но это для меня столь же вероятно, как приглашение в отряд космонавтов... :mrgreen:
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2672
Зарегистрирован: 27.11.2007 16:14:47

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение SSerge » 21.10.2020 16:35:07

Снег Север писал(а): то тогда только появится смысл осваивать ассемблер и внутреннюю кухню языков высокого уровня.


Отнюдь. В приложении к среде программирования, с которой мы тут все так или иначе имеем дело, элементарные манипуляции со строковыми данными уже требуют освоения ассемблера и понимания, во что превратит исходный код компилятор, чтобы не допустить падения производительности в разы и десятки раз на - как их там назвали - критичных участках. В то время как кое-где вне этого можно просто соблюдать элементарную логику и не следить за деталями и последовательностями.
SSerge
энтузиаст
 
Сообщения: 909
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 21.10.2020 16:48:41

Снег Север писал(а):Ибо и меня, еще много десятилетий назад, четко научили, что программы пишут не для машины а для чтения человеком.

Seenkao писал(а):И не надо писать, что такого ни кому в наше время не нужно. Не нужно, только по той причине, что вы просто не сталкивались.

Выборочно читаем? :)

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

Но! Это нужно... почти ни кому. Таким образом, вы ни чего не создаёте. Ваша программа не нужна. Зачем мне ваша программа, если вы мне даёте читать что там происходит внутри? Меня интересует конечный результат!!!

Так что, Север, это утопия. Код, который ты создаёшь, должен уметь читать только ты сам! :) Он должен быть понятен тебе! А пользователю нужен конечный результат. 8)
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Снег Север » 21.10.2020 19:19:53

SSerge писал(а):элементарные манипуляции со строковыми данными уже требуют освоения ассемблера и понимания... чтобы не допустить падения производительности в разы и десятки раз

И где это актуально - на серверах Гугла? Так там ПО не на паскале написано.

Добавлено спустя 2 минуты 33 секунды:
Seenkao писал(а):Код, который ты создаёшь, должен уметь читать только ты сам! Он должен быть понятен тебе! А пользователю нужен конечный результат.

Сразу виден "кустарь-одиночка с мотором", который никогда в жизни не работал в команде! :mrgreen: А я большую часть времени работал как раз в составе команд. И любой, что считал так, как вы, немедленно из команды вылетал. Со свистом.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2672
Зарегистрирован: 27.11.2007 16:14:47

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 21.10.2020 19:32:40

Снег Север писал(а):А я большую часть времени работал как раз в составе команд. И любой, что считал так, как вы, немедленно из команды вылетал. Со свистом.

Seenkao писал(а):Конечно зависит от того, кто писал код, чтоб он был достаточно доступен. Ведь вполне достаточно комментировать и вводить, понятные для других, переменные (понятные имена данных и процедур).

Я точно в пустоту писал... Кто-то читает только то, что хочет увидеть...

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

Конечно тебя будут держать, ведь ты умеешь писать красиво код. Подумаешь он полгода будет работать. А вот того, в очках "профессора" выкинут. Ну и что, что у него практически не вылетает код, но он там непонятные каракули рисует в коде и код через какие-то непонятные места работает, но вылетать не хочет. Пшёл он вон. :twisted:

Продолжай дальше судить людей по одёжке! :)
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Снег Север » 21.10.2020 19:46:29

Seenkao писал(а):И, прежде чем говорить о том, что кто-то вылетит со свистом, надо знать, что умеют люди, а что нет.

Если человек не умеет или не хочет писать программный код так, что бы его модули были понятны другим, то все прочие его умения никакого значения не имеют. Пусть он хоть какой гений (а кто себя таким считает, то, опять же по большому опыту, вылетает в числе первых) :mrgreen:
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2672
Зарегистрирован: 27.11.2007 16:14:47

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение SSerge » 21.10.2020 19:46:39

Снег Север писал(а):И где это актуально - на серверах Гугла? Так там ПО не на паскале написано.


Вот не поверишь - оказалось актуальным на конверторе, перегоняющем один здоровенный текстовый файл в другой, с этими же данными, но оформленными по-другому.
SSerge
энтузиаст
 
Сообщения: 909
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 21.10.2020 20:32:22

Снег Север, поверь, если бы ты оказался у меня на фирме, и я услышал бы такие слова, ты бы у меня со свистом вылетел. Я бы даже не посмотрел, как хорошо ты разбираешься в программировании.

Я оцениваю людей по тому как они делают код (работают с ним), а не по тому, как они "красиво" его пишут.

Жаль, что подобных заказчиков и глав фирм мало (точнее мало видно и сложно найти).
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение скалогрыз » 21.10.2020 22:09:03

Seenkao писал(а):А вот того, в очках "профессора" выкинут. Ну и что, что у него практически не вылетает код, но он там непонятные каракули рисует в коде и код через какие-то непонятные места работает, но вылетать не хочет. Пшёл он вон

а что будет если "профессор" уйдёт сам?
кто будет поддерживать код, который никто кроме автора (да и не факт что и сам автор) понимает.
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Снег Север » 21.10.2020 22:09:42

Seenkao писал(а):поверь, если бы ты оказался у меня на фирме, и я услышал бы такие слова, ты бы у меня со свистом вылетел. Я бы даже не посмотрел, как хорошо ты разбираешься в программировании.

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

Добавлено спустя 1 минуту 10 секунд:
скалогрыз писал(а):кто будет поддерживать код, который никто кроме автора (да и не факт что и сам автор) понимает.

+100500

Добавлено спустя 7 минут 34 секунды:
SSerge писал(а):Вот не поверишь - оказалось актуальным на конверторе, перегоняющем один здоровенный текстовый файл в другой, с этими же данными, но оформленными по-другому.

Ну почему же - верю. Если нужно каждый рабочий день перегонять сотни таких файлов.
А если задача разовая или запускается изредка, то возня с её оптимизацией - пустая потеря времени.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2672
Зарегистрирован: 27.11.2007 16:14:47

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 22.10.2020 01:12:06

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

"Профессор", в любом случае, будет стремится, чтобы комментировать код и делать его понятным для себя (выше писал :idea: ), и , даже когда он будет уходить, останется то, что он сделал и то, что он комментировал в том, что он делал.
Так же помним, что в любом случае, к программисту идут требования на входные и выходные данные. Поэтому, зачастую, его код не нуждается в правке, если это мелкая задача. А состыковка кода много времени не занимает, если всё делалось по проекту. И даже без разницы на каком языке программирования.

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

А придёт такой же молодой профессор, который не умеет комментировать код, будет учится и совершенствоваться. И если он с головой, то пусть лучше это будут закорючки, мало кому понятные, но будем знать, что всё хорошо работает! Чем тонна текста и 1% работы.

И! Это не значит, что документацию на многое делать не надо! Это значит, что людям надо давать шанс, а быдло, которое считает себя лучше всех, можно гнать взашей. Это быдло, всё равно много не принесёт плода. (хотя время показало, что люди умеют меняться... могёт быть я не прав?)
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение скалогрыз » 22.10.2020 03:46:38

Seenkao писал(а):"Профессор", в любом случае, будет стремится

погоди, но ведь это же допущения!
входные данные такой:
Seenkao писал(а):Ну и что, что у него практически не вылетает код, но он там непонятные каракули рисует в коде и код через какие-то непонятные места работает, но вылетать не хочет

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

Если убрать все "хорошие допущения", а оставить только "нечитаемый сложный код, который работает", то как работать с таким кодом? и как работать с таким человеком?
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 22.10.2020 09:10:38

скалогрыз, откуда такие выводы?
Я этого не говорил, а ты уже могилу человеку вырыл, даже не дав ему ни одного шанса.
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru