Разумно ли полагаться на стандартные функции языка программирования? - PullRequest
2 голосов
/ 17 марта 2010

Должен ли я часто полагаться на значения по умолчанию?

Например, в PHP, если у вас есть следующее:

<?php

$var .= "Value";

?>

Это прекрасно - работает. Но что, если подобное присвоение ранее неиспользованной переменной позже исключается из языка? (Я не , имея в виду просто общее присвоение неиспользуемой переменной.)

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

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

Как правильно с этим справляться?

Ответы [ 3 ]

5 голосов
/ 17 марта 2010

По моему мнению, шансы на то, что язык резко изменится, как только он достигнет определенного уровня принятия, довольно низки.

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

3 голосов
/ 17 марта 2010

Функции по умолчанию для языка программирования, если на самом деле это документированная часть стандарта, а не просто случайность реализации (как было много прошлых «инициализаций по умолчанию»), ничем не отличаются от любых других функций программирования язык. С тем же успехом вы можете спросить, разумно ли полагаться на что-либо еще в языке, и ответ, независимо от мудрости, заключается в том, что выбора нет - вы должны полагаться на что-то, и что-либо гипотетически может быть изменено в будущей версии. *

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

Итак, это общий ответ. Конкретный ответ о значениях по умолчанию заключается в том, что это зависит от конкретного случая, языка и т. Д. Вы можете абсолютно уверенно полагать, что глобальные статические переменные в C будут равны нулю при запуске программы. Некоторые другие случаи значительно менее надежны.

0 голосов
/ 17 марта 2010

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

Вам следует опасаться полагаться на функциональность, когда вы попадаете в области, где вы имеете дело с поведением, которое либо не определено, либо если вы «неправильно используете» функцию, используя ее для чего-то совершенно другого, чем то, что оно был предназначен для.

Поскольку «значение строки по умолчанию» в значительной степени является сценарием магистрали, это, вероятно, безопасно. Более опасным является то, что если вы случайно объявите эту переменную раньше, вы можете получить удар по ней, изменив ожидаемое значение как непреднамеренный побочный эффект.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...