powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Этика программирования: Что может являться основанием для создания функции/процедуры?
15 сообщений из 40, страница 2 из 2
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222556
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TJ001если стоит задача заменить лампочку, один программер ...проблема аппаратная, программно не решается, при чём тут программер?
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222590
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerТак вот, важно понимать следующее: программируя, мы формулируем решение задачи на некотором языке. Определяя подпрограмму - мы определяем новое слово (понятие, термин) на этом языке. Это и есть ответ на Ваш вопрос: подпрограмма выделяется тогда, когда удобно и разумно определить некий термин. Он может переиспользоваться (ну скажем, как в математике понятие интеграла - позволяет не повторять прорву слов каждый раз), но в принципе не обязан (как в той же математике - чтобы доказать эту теорему, давайте докажем парочку лемм). Важно то, что решение задачи удобно сформулировать с использованием этого нового термина.

//чисто занудства ради - конструктивное решение задачи на некотором языке.

угу. А более подробно, с объяснением причин выделения подпрограмм, растолковал Майерс в шестой главе Надежности программного обеспечения (перевод издан в районе 1980 года).
Если не удастся найти всю монографию можно посмотреть отдельную 6 главу.
// http://www.realcoding.net/articles/maiers-kompozitsionnoe-proektirovanie-prilozheniya.html
сорри, это плохая версия с моим переводом


это оригинальный перевод Кауфмана от 1981 года

http://agp1.hx0.ru/arts/G.Myers.pdf

///update
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222591
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ибо решение от противного не подходит
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222594
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДля ассемблера развертывание цикла (по сути дублирование тела)
это даже благо. В некоторых условиях.

Инлайнинг функций тоже иногда полезен.

Допускаю, что выросло целое поколение не очень задумывающееся о накладных расходах вызова и передачи-возврата параметров.
А для наглядности кода были есть и будут ещё макросы дублирующие код как издержки или как благо в зависимости от контекста.
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222595
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
причем, согласно Майерса, этика программирования тут не причем.
В крайнем случае настолько причем, насколько причем к этике программирования процедура нормализации схемы бд.
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222671
TJ001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerИмхо такие случаи означают "надо сдизайнить код по-другому, получше". Возможно, из этого куска кода надо сделать две-три функции, или, например, включить его в базовый класс, кастомизируемый в наследниках.
от части согласен, но я имел ввиду ситуации, когда двумя словами не описать, требуется штук пять без "И" т.е. имя не этоИвотЭтоИвонТо))))) а что-то типа ПроверкаСереневенькогоСПодвыподвертомНабекрень() уже получается мутант какой-то))))

AlexandrPlusну и что - а если это заготовки и потом функция2 и функция3 будут дописываться много и разно?
ну, в конкретном случае это были не заготовки, код просуществовал в таком виде несколько лет и по сей день даже не представляется с какой целью можно было бы его расширить

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

egorychпроблема аппаратная, программно не решается, при чём тут программер?
действительно)))))

pureproftДопускаю, что выросло целое поколение не очень задумывающееся о накладных расходах вызова и передачи-возврата параметров.
ооо, это вообще отдельный и больной вопрос в наше время! ресурсы считать уже не модно... что? у тебя программа тормозит? - купи новый комп! а что она такого делает, чего не делали 10 лет назад?
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222680
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovkmawОснование - если несколько раз вызывается. Если один раз - не помещаю
если есть вероятность повторного использования, логически обособленного.
но тут допустим - позже выяснилось, что во втором варианте использования чуть изменились условия, и нужно - почти такое же. Вносить это в логику, или клонировать процедуру?
Вот этический вопрос.

если есть вероятность - значит она объективно есть. и это уже не вероятность а требование задачи. тогда, конечно, лучше оформить функцией. в противном случае - функция на "прозапас" - дело вкуса.

что касается "почти" одинакового кода - это, пожалуй, проблема. она значит, что скорее всего, на момент написания кода нет ясного понимания сути задачи, в голове все еще по полочкам не разложено
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222778
jmp_original
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pureproftДопускаю, что выросло целое поколение не очень задумывающееся о накладных расходах вызова и передачи-возврата параметров.
А для наглядности кода были есть и будут ещё макросы дублирующие код как издержки или как благо в зависимости от контекста.
Я смутно подозреваю, что там, где используется выделение "логически завершённого блока" в отдельную процедуру, время выполнения команды PUSH пренебрежимо мало по сравнению со времени ожидания движения мыши.

PS
Кто посмел зарегистрировать мой любимый ник?
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222949
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДля ассемблера развертывание цикла (по сути дублирование тела)
это даже благо. В некоторых условиях.

Инлайнинг функций тоже иногда полезен.
....... Такое же творческое решение как и уровень нормализации БД. По сути - схожие проблемы, и схожая логика развертывания смыслов при принятии решения. Ну и ==вселенский бардак== как неотъемлимая часть жизни....
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38222966
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawчто касается "почти" одинакового кода - это, пожалуй, проблема. она значит, что скорее всего, на момент написания кода нет ясного понимания сути задачи, в голове у заказчика, центробанка, правительства РФ и тд все еще по полочкам не разложено
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38223489
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TJ001Расскажите, на каком основании вы принимаете решение поместить какой-то код в функцию/процедуру?

Помещаете ли вы код в функцию/процедуру при каких-то обстоятельствах, не смотря на то, что он вызывается только один раз? Если да, то в каких случаях?
Как завещал нам великий Ленин Чёрч: все есть функция.
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38223492
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЩас вот-вот сюда заглянет настоящий ТруЪ-функциональщик. Он всех
смешает с навозом.да, ТруЪ-функциональщики они такие...
хорошо что я джавист ))
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38223494
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДля ассемблера развертывание цикла (по сути дублирование тела)
это даже благо. В некоторых условиях.

Инлайнинг функций тоже иногда полезен.
ну и про хвостовой вызов не забываем...
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38223687
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNTJ001Расскажите, на каком основании вы принимаете решение поместить какой-то код в функцию/процедуру?

Помещаете ли вы код в функцию/процедуру при каких-то обстоятельствах, не смотря на то, что он вызывается только один раз? Если да, то в каких случаях?
Как завещал нам великий Ленин Чёрч: все есть функция.
Я вспоминаю один роман Набокова в котором главный герой
решил что все люди есть суть - шахматы и решил прервать
игру сиганув в окошко. Вот такие делы.
...
Рейтинг: 0 / 0
Этика программирования: Что может являться основанием для создания функции/процедуры?
    #38223688
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNmaytonЩас вот-вот сюда заглянет настоящий ТруЪ-функциональщик. Он всех
смешает с навозом.да, ТруЪ-функциональщики они такие...
хорошо что я джавист ))
Хехе. Джавист из города Киерка? Это что уже стольный град переименовали. А я не вкурсе!
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Этика программирования: Что может являться основанием для создания функции/процедуры?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]