![]() |
|
||||||||||
|
|||||
|
Modus ponens
|
Глобальным в принципе может быть то, что не нужно менять (т.е. не переменные), а функции, например, которые не зависят от контекста (parseInt - в любом месте программы должна делать одно и то же и всегда вернет один и тот же результат, буде один и тот же ввод). Цифры
символы строк, элементы энумераторов и т.п. могут быть глобальными т.как нет смысла делать 2 разных. Там, где в принципе может быть два разных, глобальные лучше не делать. Если вы хотите немного глубже понять проблему - есть такой тезис, что переменные, вообще, как таковые - один из главных источников ошибок программ. Т.о. существует понятие программ без побочных эффектов - очень грубо говоря, программ, в которых переменные не используются в принципе (в теории, так можно действительно написать любую программу, но это очень непрактично). В любом случае, количество переменных нужно стараться сводить к минимуму т.как переменные хранят состояние, а это значит, что функции становятся зависимыми от состояния и на ваши плечи ложится ответсвенность за то, чтобы протестировать функции во всех возможных состояниях, что, очень часто не возможно в принципе. Но вы можете с этим бороться сводя область использования каждой конкретной переменной к минимуму - таким образом уменьшая количество вариантов, которые нужно тестировать, и, таким образом, вы пишете более надежный код.
__________________
Hell is the possibility of sanity |
|
|||||
|
[+4 06.05.14]
|
Цитата:
__________________
Марк Tween |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
Уже пошло as-кунг-фу.
![]() Например функцию вычисления факториала, можно написать без переменных? |
|
|||||
|
[+4 06.05.14]
|
Да не ну бред яж сказал) Просто wvxvw товаришь начитанный, умный, давно на форуме, и как говорится не лыком шыт, но в данный момент - его слова стоят под глубочайшим сомнением))) Хотя меня коробит слово в ТЕОРИИ , может он и хотел сказать , что в теории и бог существует, только его никто не видел
__________________
Марк Tween |
|
|||||
|
Господа. Может, всё таки, потрудитесь открыть новую тему для выяснения этого вопроса? Вы название темы то читали?
@wvxvw. Не уверен, что всё понял. То есть ты считаешь, что контекстная зависимость объектов, в случае с глобальными полями, и "мусор" в родительских объектах при протаскивании данных в дочерние - это вопросы "десятые", так? Главное - сохранять контроль над изменением значений переменных (параметризующих приложение, например)? |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
Функция принимает одни параметры и возвращает другие. Переменных в языке нет вообще - только константы. Цитата:
аналог (не проверял, написал тут прям) Переменных нет - только параметры - Я думаю разница между этими двумя понятиями ясна.
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 15.08.2011 в 13:37. |
|
|||||
|
Modus ponens
|
Да, это в принципе особенность всех декларативных языков такого плана, Erlang, ML (и наследники CaML / Obj-CamML), Scheme и т.п. в них не используются переменные. Если вы будете размышлять логично, то значение любой вашей переменной вычисляется (т.е. его можно описать функцией), либо задается один раз (константа). Проблема которую решают переменные заключается в том, что иногда не практично много раз вызывать функцию (т.как результат уже один раз был получен). Но, хороший код старается избегать повторных вызовов функций (конечно, иногда это неизбежно), но, тем не менее, к этому нужно стремится
![]() fish_r: Это теория немного другого плана, отношение к глобальным переменным в ней - это следствие (одно из). Следуя ей, естесственным образом не будет возникать проблем с глобальными переменными т.как контекст переменной будет всегда определятся областью, в которой она может быть только одна, и, естесственным образом же, не будет возможных конфликтов, когда `кто-то неизвестный меняет значение'. Но это теория, а не практическое руководство к действию. Ее нужно осознать и сделать максимально похоже ![]()
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
Цитата:
Вот сдесь: Фактически создается переменная n, разве нет? |
|
|||||
|
Регистрация: May 2010
Сообщений: 543
|
Цитата:
От параметра зависит результат работы функции, но сам он остается неизменным.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|