Тестовые задания по JavaScript. Замыкания

Category: Задачи

Все публикуемые тестовые задания — эксперимент по подготовке одного человека :-)

Замыкание — когда функции представляют собой комбинацию кода и области видимости, в которой этот код исполняется.
Все JavaScript функции являются замыканиями. Основной фан при экспорте вложенной функции за пределы области видимости, в которой она была определена.

Теоретическую информацию можно прочесть в блоге Дмитрия Сошникова о замыканиях в ECMA.

Разбор задач, а также вторая порция по этой теме, будут опубликованы в понедельник.

  1. Что окажется в консоли?
    var i;
    for(i=0; i<10; i++) {
        setTimeout(function(){console.log(i);}, 1000);
    }
  2. Каким будет результат?
    var x = "глобальная";
    function g_func() {
        var x = "локальная";
        function l_func() { alert(x); }
        return l_func;
    }
    func = g_func();
    func();
    Почему?
  3. Какое значение будет у arr[2](), arr[arr.length]()?
    function create(number) {
        var arr = [];
        for (var i=1; i<number; i++) {
            arr[i] = function() { alert(i*i) };
        }
        return arr;
    }
    var arr = create(100);

Continue reading » No comments

10 ошибок XSLT-программистов

Category: Статьи об XSLT

Перевод статьи «The ten most common XSLT programming mistakes», ссылка на которую недавно опубликована в клубе XSLT на Я.ру.

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

Continue reading » No comments

Bespin Embedded с белой темой

Category: Заметки

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

Continue reading » No comments

2.4 Структура преобразования

Category: Первое преобразование, введение

В заключительной частьи нашего представления XSLT мы посмотрим на содержание самих преобразований. Мы поясним всё в наших преобразованиях и обсудим другие подходы, которые мы могли бы применить.

2.4.1 Элемент <xsl:stylesheet>

Элемннт xsl:stylesheet — это обычно корневой элемент XSLT-преобразования.

<xsl:stylesheet
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">

Continue reading » No comments

Эффективное использование рекурсии в XSL

Category: Статьи об XSLT

Перевод статьи Use recursion effectively in XSL.
Введение в XSL-рекурсию и приёмы для оптимизации её использования.

Эффективное и рациональное использование XSL-преобразований требует понимания, как использовать XSL в качестве функционального языка, что означает понимание рекурсии. Эта статья знакомит с ключевыми идеями рекурсии и особенностей её использования в XSL. Также объяснены приёмы для оптимизации преобразования XML и избегания ошибок при использовании рекурсии. Каждая идея или метод сопровождаются примерами кода.

Continue reading » No comments

XSLT — результативные технологии программирования

Category: Статьи об XSLT

Перевод документа XSLT — Efficient Programming Techniques, который мне очень помог.

С ростом популярности XML как средства взаимодействия с различными системами, все больше и больше организаций приходят к XML, чтобы решить свои вопросы функциональной совместимости. Вместе с попытками архитекторов достигнуть ясного разделения между отображением и бизнес-логикой, XSLT становится важнее. XSL, по сути, — это XML-документ (дерево, согласно спецификации DTD), который применяется к древовидным структурам данных (XML-документ), чтобы выработать результирующее дерево.

Continue reading » 1 Comment

Глава 2. Неизменный «Hello, world»

Category: Первое преобразование, введение

Сначала напомню, что это перевод глав из книги «XSLT» издательсва O'Reilly.
В следующих главах мы потратим много времени на XSLT, XPath и различные продвинутые функции, используемые для преобразования XML-документов. Сначала, несмотря ни на что, мы погрузимся в короткий пример, чтобы проиллюстрировать, как работают преобразования.

Continue reading » No comments

Шаблон «Hello, world!»

Category: Мастер класс

Первый написанный XSLT-шаблоны — это страница, выводящая надпись «Hello, world!». Для работы с кодом используем программу IntelliJIDEA. В блоге Вадима Макишвили о работе с ней рассказано достаточно подробно.

Свой первый шаблон мы ассоциируем с главной страницей.

Continue reading » No comments

Сайт на XSL. Подготовка

Category: Мастер класс

Итак, мы делаем сайт и учим XSLT.
Сайт у нас будет на тему «календарь менструального цикла», потому что мы типа профессионалы, и для нас нет запретных тем.
Движок на PHP, а шаблоны на XSLT. Их я и буду описывать.

Continue reading » No comments

Простые числа и XPath

Category: Задачи

Иногда мы на работе решаем интересные задачки. Вот, например, одна (почти первая) в постановке nop`а:

Частный случай:
Дан такой xml:

<items>
   <item>1</item>
   <item>2</item>
   ...
   <item>N-1</item>
   <item>N</item>
</items>

т.е. выписаны все натуральные числа от 1 до N включительно. Про N ничего заранее не известно —
большое, маленькое, еще какое-то — мы не знаем.

Нужно. Написать xpath, выбирающий все item'ы с простыми числами.
Подчеркиваю — xpath.

Continue reading » No comments