войти зарегистрироваться

Совершенный кодШпионские страсти и PHP или паттерн SecureContainer

Не слишком вдаваясь в подробности хочу поделиться шаблоном проектирования, который использую в своей работе. Этот шаблон я называю SecureContainer, представим себе ситуацию: у нас есть некие данные, которые при передаче от одного объекта до другого, должны оставаться неизменными, допустим мы передаем внутри кода данные которые не должны увидеть или модифицировать другие разработчики, по причине того что эти данные сверхсеретны, в общем ситуация полнейшей паранойи. Так как же обеспечить неизменность данных при передаче от одного объекта другому?
Для этого и применяется паттерн SecureContainer, который позволяет валидировать не только отправителя, но и получателя данных, на пхп это легко делается через debug_backtrace. Все что нам нужно — проследить откуда был вызван конструктор и кем были запрошены данные, при этом как отправителей, так и получателей может быть несколько. Давайте реализуем то о чем я сейчас говорил:

JavaScript Оптимизация JavaScript: Scope, Low level ES vs ES5 Array methods

Сегодня мы будем тестировать 2 блока кода, выполняющие следующую операцию:
Дается массив, необходимо выбрать все элементы, степень 2 которых больше 5.

В синем углу Вариант А: Низкоуровневый код — старый и страшный (поддающийся частичной оптимизации)
  1.    for (i = 0, res = []; i < c; i++) {
  2.        t = a[i];
  3.        if (t >= 2.236067) {
  4.            continue;
  5.        } else {
  6.            res.push(t * t);
  7.        }
  8.    }

В красном углу Вариант Б: Высокоуровневый код — молодой и красивый (не поддающийся частичной оптимизации)
  1. a.map(function (t) { return t * t}).filter(function (t) { return t > 5});

Битвы будут происходить на 3 аренах.
1. AO args — Параметры объекта активации функции.
2. AO — Локальные переменные объекта активации функции.
3. Global — Глобальные переменные.

JavaScriptПравильный захват контекста в Javascript

Довольно часто во многих статьях я вижу, как люди захватывают контекст this для использования в анонимной функции и удивляюсь — то, что уже стало стандартом — просто ужасная практика, которая противоречит всем канонам программирования. Вам знакома такая запись?
var self this;
Может вам тоже стоит переосмыслить этот аспект?

JavaScriptОбласть видимости переменной в Javascript (ликбез)

Для меня одним из самых проблемных мест Javascript было управление переменными. Излагаю простым русским языком.

OperaСпецификации протокола Scope

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

Сегодня мы рады представить спецификации протокола Scope. Этот протокол используется для связи Оперы с отладчиком Dragonfly. Он также используется в компании Опера для автоматизированного тестирования браузера.

Веб-разработкаПрактический HTML: работаем с таблицами

Примечание: ниже находится перевод статьи «Bring on the tables», в которой рассматривается использование таблиц по прямому назначению и некоторые методы по увеличению их доступности.

UPD: текст статьи полностью убран в связи с его неконтролируемыми преобразованиями с момента публикации.