ES5: «use Occam’s razor»;

В связи с предстоящим выходом ES5, хочу обратить внимание на одну чудную конструкцию — «use strict»; лишающую половины сахара. Кто не в курсе о том что она дает может прочитать на английском, например, вот тут. Так вот у меня есть предложение ввести еще и «use Occam’s razor»; немного длинно звучит но хорошо отображает суть. Смысл этой конструкции не допускать повторного использования ключевого слова var в одной области видимости. Привет Pascal и Delphi.

Уже вижу два замечания. Первое звучит примерно так:

Вы только представьте: У нас есть функция в 300 строк кода. Где-нибудь на 200-й строке нам надо поменять две переменные местами. Для этого мы лезем на 200 сток выше в начало функции, объявляем переменную temp, которая не имеет никакого отношения ко всей функции, а используется только один раз в одном месте, потом опять возвращаемся к 200-й строке и меняем переменные местами… По-моему, это просто кошмар.

Я думаю в этом случаи надо поработать над архитектурой… создать пару утилитных функций или классов, в общем порефакторить ваш мега паттерн

Второе замечание менее себялюбивое.

Не надо объявлять переменные пока не можешь дать им какое-либо начальное значение.

Не знаю как у вас у меня обычно получается, откройте любую мою статью и посмотрите (кроме последней Raphaël Overlay, там надо работать над архитектурой и очень долго). Вообще, я считаю, что при надлежащем уровне знания и хорошо продуманной архитектуре можно вообще обойтись без объявления переменных пожертвовав читаемостью кода. Но жертвовать мы ничем не будем поэтому оставим одно в начале области видимости.

2 Комментарии “ES5: «use Occam’s razor»;

  1. А мне не нравится когда из состоявшегося языка начинают делать какой-то новый добавляя фишки зарекомендовавшие себе в других языках

  2. как по мне так очень не удобно что изза arguments.callee нельяз обойти циклом for-in массив аргументов, с другой стороны сама по себе arguments.callee очень удобная.

Комментарии закрыты