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

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

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

Ответить
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Сообщение sign »

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

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

Лично я, при несколько подряд проверках использую немного иную конструкцию.
Демонстрирую на базе данного примера

Код: Выделить всё

  if w3>10 and not(w3>11) then p...(q2, w3) else
  if w3<7 then p...(q2, w3) else ...
Seenkao
энтузиаст
Сообщения: 568
Зарегистрирован: 01.04.2020 02:37:12
Контактная информация:

Сообщение Seenkao »

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

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

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

Надо знать, что и для чего нужно. И не надо писать, что такого ни кому в наше время не нужно. Не нужно, только по той причине, что вы просто не сталкивались. :)
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

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

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

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

Сообщение SSerge »

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


Отнюдь. В приложении к среде программирования, с которой мы тут все так или иначе имеем дело, элементарные манипуляции со строковыми данными уже требуют освоения ассемблера и понимания, во что превратит исходный код компилятор, чтобы не допустить падения производительности в разы и десятки раз на - как их там назвали - критичных участках. В то время как кое-где вне этого можно просто соблюдать элементарную логику и не следить за деталями и последовательностями.
Seenkao
энтузиаст
Сообщения: 568
Зарегистрирован: 01.04.2020 02:37:12
Контактная информация:

Сообщение Seenkao »

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

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

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

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

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

Так что, Север, это утопия. Код, который ты создаёшь, должен уметь читать только ты сам! :) Он должен быть понятен тебе! А пользователю нужен конечный результат. 8)
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

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

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

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

Сразу виден "кустарь-одиночка с мотором", который никогда в жизни не работал в команде! :mrgreen: А я большую часть времени работал как раз в составе команд. И любой, что считал так, как вы, немедленно из команды вылетал. Со свистом.
Seenkao
энтузиаст
Сообщения: 568
Зарегистрирован: 01.04.2020 02:37:12
Контактная информация:

Сообщение Seenkao »

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

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

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

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

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

Продолжай дальше судить людей по одёжке! :)
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

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

Если человек не умеет или не хочет писать программный код так, что бы его модули были понятны другим, то все прочие его умения никакого значения не имеют. Пусть он хоть какой гений (а кто себя таким считает, то, опять же по большому опыту, вылетает в числе первых) :mrgreen:
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

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


Вот не поверишь - оказалось актуальным на конверторе, перегоняющем один здоровенный текстовый файл в другой, с этими же данными, но оформленными по-другому.
Seenkao
энтузиаст
Сообщения: 568
Зарегистрирован: 01.04.2020 02:37:12
Контактная информация:

Сообщение Seenkao »

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

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

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

Сообщение скалогрыз »

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

а что будет если "профессор" уйдёт сам?
кто будет поддерживать код, который никто кроме автора (да и не факт что и сам автор) понимает.
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3067
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

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

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

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

+100500

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

Ну почему же - верю. Если нужно каждый рабочий день перегонять сотни таких файлов.
А если задача разовая или запускается изредка, то возня с её оптимизацией - пустая потеря времени.
Seenkao
энтузиаст
Сообщения: 568
Зарегистрирован: 01.04.2020 02:37:12
Контактная информация:

Сообщение Seenkao »

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

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

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

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

И! Это не значит, что документацию на многое делать не надо! Это значит, что людям надо давать шанс, а быдло, которое считает себя лучше всех, можно гнать взашей. Это быдло, всё равно много не принесёт плода. (хотя время показало, что люди умеют меняться... могёт быть я не прав?)
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

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

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

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

Если убрать все "хорошие допущения", а оставить только "нечитаемый сложный код, который работает", то как работать с таким кодом? и как работать с таким человеком?
Seenkao
энтузиаст
Сообщения: 568
Зарегистрирован: 01.04.2020 02:37:12
Контактная информация:

Сообщение Seenkao »

скалогрыз, откуда такие выводы?
Я этого не говорил, а ты уже могилу человеку вырыл, даже не дав ему ни одного шанса.
Ответить