|
|
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
TJ001если стоит задача заменить лампочку, один программер ...проблема аппаратная, программно не решается, при чём тут программер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:35 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
softwarerТак вот, важно понимать следующее: программируя, мы формулируем решение задачи на некотором языке. Определяя подпрограмму - мы определяем новое слово (понятие, термин) на этом языке. Это и есть ответ на Ваш вопрос: подпрограмма выделяется тогда, когда удобно и разумно определить некий термин. Он может переиспользоваться (ну скажем, как в математике понятие интеграла - позволяет не повторять прорву слов каждый раз), но в принципе не обязан (как в той же математике - чтобы доказать эту теорему, давайте докажем парочку лемм). Важно то, что решение задачи удобно сформулировать с использованием этого нового термина. //чисто занудства ради - конструктивное решение задачи на некотором языке. угу. А более подробно, с объяснением причин выделения подпрограмм, растолковал Майерс в шестой главе Надежности программного обеспечения (перевод издан в районе 1980 года). Если не удастся найти всю монографию можно посмотреть отдельную 6 главу. // http://www.realcoding.net/articles/maiers-kompozitsionnoe-proektirovanie-prilozheniya.html сорри, это плохая версия с моим переводом это оригинальный перевод Кауфмана от 1981 года http://agp1.hx0.ru/arts/G.Myers.pdf ///update ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:55 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
ибо решение от противного не подходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:56 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
maytonДля ассемблера развертывание цикла (по сути дублирование тела) это даже благо. В некоторых условиях. Инлайнинг функций тоже иногда полезен. Допускаю, что выросло целое поколение не очень задумывающееся о накладных расходах вызова и передачи-возврата параметров. А для наглядности кода были есть и будут ещё макросы дублирующие код как издержки или как благо в зависимости от контекста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:56 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
причем, согласно Майерса, этика программирования тут не причем. В крайнем случае настолько причем, насколько причем к этике программирования процедура нормализации схемы бд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:58 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
softwarerИмхо такие случаи означают "надо сдизайнить код по-другому, получше". Возможно, из этого куска кода надо сделать две-три функции, или, например, включить его в базовый класс, кастомизируемый в наследниках. от части согласен, но я имел ввиду ситуации, когда двумя словами не описать, требуется штук пять без "И" т.е. имя не этоИвотЭтоИвонТо))))) а что-то типа ПроверкаСереневенькогоСПодвыподвертомНабекрень() уже получается мутант какой-то)))) AlexandrPlusну и что - а если это заготовки и потом функция2 и функция3 будут дописываться много и разно? ну, в конкретном случае это были не заготовки, код просуществовал в таком виде несколько лет и по сей день даже не представляется с какой целью можно было бы его расширить да, бывают случаи кога пишешь на перспективу, потому что знаешь или ввиду опыта предполагаешь что вот-вот придется туду что-то вкрутить, пользователи наверняка после запуска нового проекта захотят еще один бантик, тогда -да, написал все так, чтобы через полгодика добавить пару строк и вуаля! egorychпроблема аппаратная, программно не решается, при чём тут программер? действительно))))) pureproftДопускаю, что выросло целое поколение не очень задумывающееся о накладных расходах вызова и передачи-возврата параметров. ооо, это вообще отдельный и больной вопрос в наше время! ресурсы считать уже не модно... что? у тебя программа тормозит? - купи новый комп! а что она такого делает, чего не делали 10 лет назад? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 20:24 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
Vladimir BaskakovkmawОснование - если несколько раз вызывается. Если один раз - не помещаю если есть вероятность повторного использования, логически обособленного. но тут допустим - позже выяснилось, что во втором варианте использования чуть изменились условия, и нужно - почти такое же. Вносить это в логику, или клонировать процедуру? Вот этический вопрос. если есть вероятность - значит она объективно есть. и это уже не вероятность а требование задачи. тогда, конечно, лучше оформить функцией. в противном случае - функция на "прозапас" - дело вкуса. что касается "почти" одинакового кода - это, пожалуй, проблема. она значит, что скорее всего, на момент написания кода нет ясного понимания сути задачи, в голове все еще по полочкам не разложено ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 20:33 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
pureproftДопускаю, что выросло целое поколение не очень задумывающееся о накладных расходах вызова и передачи-возврата параметров. А для наглядности кода были есть и будут ещё макросы дублирующие код как издержки или как благо в зависимости от контекста. Я смутно подозреваю, что там, где используется выделение "логически завершённого блока" в отдельную процедуру, время выполнения команды PUSH пренебрежимо мало по сравнению со времени ожидания движения мыши. PS Кто посмел зарегистрировать мой любимый ник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 23:26 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
maytonДля ассемблера развертывание цикла (по сути дублирование тела) это даже благо. В некоторых условиях. Инлайнинг функций тоже иногда полезен. ....... Такое же творческое решение как и уровень нормализации БД. По сути - схожие проблемы, и схожая логика развертывания смыслов при принятии решения. Ну и ==вселенский бардак== как неотъемлимая часть жизни.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 09:27 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
kmawчто касается "почти" одинакового кода - это, пожалуй, проблема. она значит, что скорее всего, на момент написания кода нет ясного понимания сути задачи, в голове у заказчика, центробанка, правительства РФ и тд все еще по полочкам не разложено ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 09:42 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
TJ001Расскажите, на каком основании вы принимаете решение поместить какой-то код в функцию/процедуру? Помещаете ли вы код в функцию/процедуру при каких-то обстоятельствах, не смотря на то, что он вызывается только один раз? Если да, то в каких случаях? Как завещал нам великий Ленин Чёрч: все есть функция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:22 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
maytonЩас вот-вот сюда заглянет настоящий ТруЪ-функциональщик. Он всех смешает с навозом.да, ТруЪ-функциональщики они такие... хорошо что я джавист )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:25 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
maytonДля ассемблера развертывание цикла (по сути дублирование тела) это даже благо. В некоторых условиях. Инлайнинг функций тоже иногда полезен. ну и про хвостовой вызов не забываем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:27 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNTJ001Расскажите, на каком основании вы принимаете решение поместить какой-то код в функцию/процедуру? Помещаете ли вы код в функцию/процедуру при каких-то обстоятельствах, не смотря на то, что он вызывается только один раз? Если да, то в каких случаях? Как завещал нам великий Ленин Чёрч: все есть функция. Я вспоминаю один роман Набокова в котором главный герой решил что все люди есть суть - шахматы и решил прервать игру сиганув в окошко. Вот такие делы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 15:49 |
|
||
|
Этика программирования: Что может являться основанием для создания функции/процедуры?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonЩас вот-вот сюда заглянет настоящий ТруЪ-функциональщик. Он всех смешает с навозом.да, ТруЪ-функциональщики они такие... хорошо что я джавист )) Хехе. Джавист из города Киерка? Это что уже стольный град переименовали. А я не вкурсе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 15:50 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38222556&tid=1341851]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 518ms |

| 0 / 0 |
