Если вы уже умеете писать на JavaScript, на CoffeeScript вы сможете делать это лучше. А поскольку программный код на CoffeeScript "компилируется" в программный код на JavaScript, он легко впишется практически в любое веб-окружение. В книге автор рассказывает веб-разработчикам, почему язык CoffeeScript так удобен и как он позволяет избежать проблем, часто способствующих появлению ошибок в программном коде на JavaScript и усложняющих его сопровождение. Он познакомит вас со всеми особенностями и приемами, которые необходимо знать, чтобы писать качественный программный код на CoffeeScript, и покажет, как использовать преимущества еще более надежного набора инструментов, входящих в состав языка CoffeeScript. Издание предназначено в первую очередь веб-разработчикам, использующим JavaScript, а также всем тем, кто хочет писать качественный и понятный код.
Благодарности Об авторе Предисловие Что такое CoffeeScript? Кому адресована эта книга? Как читать эту книгу Структура книги Часть I: Основы CoffeeScript Часть II: Практическое применение CoffeeScript Установка CoffeeScript Как запускать примеры Примечания Часть I. Основы CoffeeScript 1. Введение Интерактивная среда CoffeeScript Компиляция в браузере Предостережение Компиляция в командной строке Флаг -compile Интерфейс командной строки CoffeeScript Флаг-output Флаг -bare Флаг -print Флаг -watch Выполнение файлов CoffeeScript Прочие флаги В заключение Примечания 2. Основы Синтаксис Значимые пробелы Ключевое слово function Круглые скобки Переменные и области видимости Видимость переменных в JavaScript Видимость переменных в CoffeeScript Анонимная функция-обертка Интерполяция Интерполяция строк Интерполируемые строки Строковые литералы Встроенные документы Комментарии Встроенные комментарии Блочные комментарии Расширенный синтаксис регулярных выражений В заключение Примечания 3. Управляющие конструкции Операторы и псевдонимы Арифметические операторы Присваивание Сравнение Строки Оператор проверки существования Псевдонимы Псевдонимы is и isnt Псевдоним not Псевдонимы and и or Псевдонимы логических значений Псевдоним @ Условные инструкции if/unless Инструкция if Инструкция if/else Инструкция if/else if Инструкция unless Встроенные условные инструкции Инструкции switch/when В заключение Примечания 4. Функции и аргументы Основы функций Аргументы Аргументы со значениями по умолчанию Групповые аргументы В заключение Примечания 5. Коллекции и итерации Массивы Проверка на вхождение Присваивание с перестановкой Множественное, или реструктурирующее присваивание Диапазоны Срезы массивов Замена значений в массиве Вставка значений Объекты/хеши Получение и изменение атрибутов Реструктурирующее присваивание Циклы и итерации Итерации по элементам массивов Ключевое слово by Ключевое слово when Итерации по атрибутам объектов Ключевое слово by Ключевое слово when Ключевое слово own Цикл while Цикл until Генераторы Ключевое слово do В заключение Примечания 6. Классы Определение классов Определение функций Функция constructor Область видимости в классах Наследование классов Функции класса Функции прототипа Привязка (-> и =>) В заключение Примечания Часть II: Практическое применение CoffeeScript Примечания 7. Инструмент сборки Cake и файлы сборки Cakefile Вступление Создание заданий для Cake Выполнение заданий Использование параметров Вызов других заданий В заключение Примечания 8. Тестирование с помощью Jasmine Установка Jasmine Настройка Jasmine Введение в Jasmine Модульное тестирование Дои после Собственные методы сопоставления В заключение Примечания 9. Введение в Node.js Что такое Node.js? Установка Node Введение Потоковые ответы Создание сервера CoffeeScript Опробование сервера В заключение Примечания 10. Пример: список задач, часть 1 (серверная) Установка и настройка фреймворка Express Настройка MongoDB с помощью Mongoose Создание Todo API Выполнение запросов с помощью Mongoose Извлечение всех задач Создание новых задач Получение, изменение и удаление задачи Реорганизация контроллера В заключение Примечания 11. Пример: список задач, часть (клиент на основе jQuery) Подготовка HTML с помощью Twitter Bootstrap Организация взаимодействий с помощью jQuery Добавление формы создания новой задачи Отображение списка задач с помощью шаблонов Underscore.js Вывод списка имеющихся задач Изменение задач Удаление задач В заключение Примечания 12. Пример: список задач, часть (клиент на основе Backbone.js) Что такое Backbone.js? Подготовка Настройка фреймворка Backbone.js Создание модели Todo и коллекции ее экземпляров Вывод списка задач с помощью представления Создание новых задач Представление для отображения отдельной задачи Изменение и проверка моделей в представлениях Проверка Удаление моделей из представлений В заключение Примечания Предметный указатель