Книга «Scala. Профессиональное программирование»

    image Привет, Хаброжители! Наконец-то мы можем предложить вам результаты титанического труда наших переводчиков и редакторов – долгожданное классическое издание по языку Scala. Все, кому известна аббревиатура JVM и не чуждо функциональное программирование, несомненно, оценят эту книгу (переоценить ее невозможно). Основной автор этого фолианта — Мартин Одерски, разработчик и идеолог языка Scala, стоявший у самых его истоков. Эта книга станет незаменимым приобретением для всех серьезных специалистов, имеющих опыт работы с Java и JVM. Авторы преследовали цель научить читателя всему необходимому, чтобы уверенно писать на языке Scala работоспособные и даже боеспособные приложения. Все примеры в издании скомпилированы с использованием Scala версии 2.11.7, за исключением тех, что имеют пометку 2.12, — они скомпилированы с использованием версии 2.12.0-M3


    Для кого предназначена эта книга


    Книга в основном рассчитана на разработчиков, желающих научиться программировать или же создать очередной проект на Scala. Кроме того, издание должно заинтересовать тех, кто хочет расширить свой кругозор, изучив новые концепции. Если вы, к примеру, программируете на Java, то в этой книге найдете для себя множество понятий функционального программирования, а также передовых концепций из сферы объектно-ориентированного программирования. Мы уверены, что изучение Scala и заложенных в этот язык идей поможет вам повысить свой профессиональный уровень как программиста.

    Обзор содержимого


    • Глава 1 «Масштабируемый язык» представляет обзор конструкции языка Scala, а также связанные с ним логические обоснования и исторические события.

    • Глава 2 «Первые шаги в Scala» показывает, как в языке решаются основные задачи программирования, не вдаваясь в подробности, касающиеся особенностей работы механизмов языка. Цель этой главы — начало практической работы по набору и запуску кода Scala.

    • Глава 3 «Последующие шаги в Scala» демонстрирует более сложные функциональные возможности языка Scala. Изучив материал, вы сможете приступить к использованию Scala для написания сценариев, решающих простые задачи.

    • Глава 4 «Классы и объекты» — это начало углубленного рассмотрения языка Scala с описанием его основных объектно-ориентированных строительных блоков и указаниями по выполнению компиляции и запуску приложений Scala.

    • Глава 5 «Основные типы и операции» охватывает основные типы Scala, их литералы, операции, которые могут над ними проводиться, вопросы работы уровней приоритетности и ассоциативности и дает представление об обогащающих оболочках.

    • Глава 6 «Функциональные объекты» углубляет представление об объектно-ориентированных свойствах Scala, используя в качестве примера функциональные (то есть неизменяемые) рациональные числа.

    • Глава 7 «Встроенные структуры управления» показывает способы использования встроенных структур управления Scala if, while, for, try и match.

    • Глава 8 «Функции и замыкания» углубленно рассматривает функции как основные строительные блоки функциональных языков.

    • Глава 9 «Управляющие абстракции» демонстрирует пути совершенствования основных управляющих структур Scala путем определения ваших собственных управляющих абстракций.

    • Глава 10 «Композиция и наследование» рассматривает имеющуюся в Scala дополнительную поддержку объектно-ориентированного программирования. Затрагиваемые темы не носят такого же фундаментального характера, как те, что излагались в главе 4, но с рассматриваемыми в них вопросами часто приходится сталкиваться на практике.

    • Глава 11 «Иерархия в Scala» объясняет иерархию наследования в языке Scala и рассматривает универсальные методы и низшие типы.

    • Глава 12 «Трейты» охватывает существующий в Scala механизм создания подмешиваемых композиций. Показана работа трейтов, описываются примеры их наиболее частого использования и объясняется, как с помощью трейтов совершенствуется традиционное множественное наследование.

    • Глава 13 «Пакеты и импортируемый код» рассматривает вопросы программирования в целом, включая высокоуровневые пакеты, инструкции импортирования и модификаторы управления доступом, подобные protected и private.

    • Глава 14 «Утверждения и тесты» показывает существующий в Scala механизм утверждений и предоставляет обзор ряда инструментальных средств, доступных для написания тестов в Scala. Основное внимание уделено средству ScalaTest.

    • Глава 15 «Case-классы и поиск по шаблону» вводит двойные конструкции, поддерживающие ваши действия при написании обычных, неинкапсулированных структур данных. Case-классы и поиск по шаблону принесут особую пользу в ходе работы с древовидными рекурсивными данными.

    • Глава 16 «Работа со списками» подробно рассматривает списки, которые можно отнести, наверное, к самым востребованным структурам данных в программах на Scala.

    • Глава 17 «Работа с другими коллекциями» показывает способы использования основных коллекций Scala, таких как списки, массивы, кортежи, наборы и отображения.

    • Глава 18 «Изменяемые объекты» объясняет суть изменяемых объектов и обеспечиваемого Scala синтаксиса для выражения этих объектов. Глава завершается практическим примером моделирования дискретного события, в котором показан ряд изменяемых объектов в действии.

    • Глава 19 «Параметризация типов» на конкретных примерах объясняет некоторые из технологических приемов для сокрытия информации, представленных в главе 13, например создание класса для функциональных запросов. Материалы главы подводят к описанию вариантности параметров типа и способов их взаимодействия с сокрытием информации.

    • Глава 20 «Абстрактные элементы» описывает все разновидности поддерживаемых Scala абстрактных элементов — не только методов, но также полей и типов, которые могут объявляться абстрактными.

    • Глава 21 «Подразумеваемые преобразования и параметры» рассматривает две конструкции, способные помочь избавить исходный код от излишней детализации, позволяя предоставить ее самому компилятору.

    • Глава 22 «Реализация списков» описывает реализацию класса List. В ней рассматривается работа списков в Scala, в которой важно разбираться. Кроме того, реализация списков показывает, как используется ряд характерных особенностей языка Scala.

    • Глава 23 «Возвращение к выражениям for» показывает, как выражения for превращаются в вызовы методов map, flatMap, filter и foreach.

    • Глава 24 «Углубленное изучение коллекций» предлагает углубленный обзор библиотеки коллекций.

    • Глава 25 «Архитектура коллекций Scala» демонстрирует, как устроена библиотека коллекций и как можно реализовывать собственные коллекции.

    • Глава 26 «Экстракторы» показывает, как можно применять поиск по шаблонам в отношении не только case-классов, но и любых произвольных классов.

    • Глава 27 «Аннотации» показывает, как можно работать с расширениями языка посредством аннотаций. В главе дается описание нескольких стандартных аннотаций и показано, как создать собственные аннотации.

    • Глава 28 «Работа с XML» объясняет порядок обработки в Scala данных в формате XML. Показаны идиомы для создания XML, проведения синтаксического анализа данных в этом формате и обработки таких данных после анализа.

    • Глава 29 «Модульное программирование с использованием объектов» содержит описание способов использования объектов Scala в качестве модульной системы.

    • Глава 30 «Равенство объектов» высвечивает ряд проблемных вопросов, требующих рассмотрения при написании метода equals. Также описываются узкие места, которые следует обходить стороной.

    • Глава 31 «Сочетание кодов Scala и Java» рассматривает проблемы, возникающие при сочетании совместно используемых кодов на Scala и Java в одном и том же проекте, и предлагает способы, позволяющие находить их решения.

    • Глава 32 «Фьючерсы и многопоточные вычисления» показывает способы работы с классом Scala под названием Future. Хотя для программ на Scala могут использоваться примитивы многопоточных вычислений и библиотеки, применяемые на Java-платформе, фьючерсы помогут избежать возникновения условий взаимных блокировок и состязательных условий, являющихся проклятием традиционных подходов к многопоточным вычислениям в виде потоков и блокировок.

    • Глава 33 «Синтаксический анализ с применением комбинаторов» показывает способы создания парсеров с использованием имеющейся в Scala библиотеки парсер-комбинаторов.

    • Глава 34 «Программирование GUI» предлагает краткий обзор библиотеки Scala, упрощающей GUI-программирование с применением среды Swing.

    • Глава 35 «Электронная таблица SCells» связывает все вместе, показывая полнофункциональное приложение электронной таблицы, написанное на языке Scala.

    » Более подробно с книгой можно ознакомиться на сайте издательства
    » Оглавление
    » Отрывок

    Для Хаброжителей скидка 20% по купону — Scala

    Издательский дом «Питер»

    242,00

    Компания

    Поделиться публикацией

    Похожие публикации

    Комментарии 25
      +2
      Зашел на сайт с книгой, а там:
      «Перед вами — исчерпывающее руководство по Scala, элитарному языку программирования для JVM.»

      Вы серьезно?
        +7
        К черту лживую скромность
        0
        Все примеры в издании скомпилированы с использованием Scala версии 2.11.7.

        Есть ли что-то про 2.12? В 2.12 (вышедшей примерно год назад) есть интересные вещи по взаимодействию с java.

          0
          В самой книге написано, что она по 2.12.2 версии.
            0
            Да, исправили опечатку в посте.

            Все примеры в издании скомпилированы с использованием Scala версии 2.11.7, за исключением тех, что имеют пометку 2.12, — они скомпилированы с использованием версии 2.12.0-M3. Интеграция с Java 8 показана на примере 2.12, и в 32-й главе рассмотрены новые возможности 2.12.
          +2

          Спасибо за книгу! Листал оригинал, понравилось. А у вас дешевле =)
          Электронная версия только в Google Play? У вас нет возможности купившим pdf/epub/mobi отправить?

            0
            В данный момент только на Google Play.
              0
              Вообще с Play Books можно скачать pdf (или epub, не всегда) но он будет с Adobe DRM (4-й версии если это важно) если на карточки книги написано что она с DRM, а уж затем — в любую читалку с поддержкой этой DRM. У меня электронная версия куплена.
                0

                Да, это я знаю, но многовато возни. Можно даже файл получить без DRM. Но для Adobe DRM нужна софтина, существующая только для Windows.
                На piter.com уже есть версия не только для Play Books.

              0
              а какое отношение scala имеет к js???
                0
                А где вы это прочитали? Может быть я был не достаточно внимателен?
                0
                +1
                Хорошая книга! Уже треть прочитал. Правда некоторые моменты в переводе режут глаз, вроде «концевой рекурсии» вместо «хвостовой рекурсии» или «выдачи исключения» вместо «выбрасывания исключения»
                  +1

                  Мне бросилось в глаза "набор" вместо "множество" (set), "отображение" вместо "таблица" (map).

                    0
                    тогда уж «ассоциативный массив». впрочем в контексте скалы — нефакт
                      0

                      Очень редко Map — это массив. Классически, сбалансированное дерево или хэш-таблица.

                        0
                        Вы говорите про имплементацию, она может быть любой. А интерфейс map — это именно отображение.
                  0
                  не нашел на сайте, обложка твердая?
                    0
                    Мягкая
                    0

                    Вопрос к тем, кто читал эту книгу и "Scala для нетерпеливых" Хорстмана — есть ли между ними большая разница, стоит посмотреть на обе или можно остановиться на одной?

                      +2
                      Эту ещё не начал читать, но «нетерпеливая» — это такой курс молодого бойца, без лирики, размышлений и исторических экскурсов. Мне нравится.
                        0

                        Спасибо!

                      0

                      Жаль что вы ее продаете в электронном виде только через гугл букс. 900 руб на вашем сайте — 20 пц скидки это 720 руб = 10 евро. Захожу на гугл букс ссылку а там мне цена в 15 евро. Не нафиг, что за жульничество.

                        0
                        На нашем сайте нет скидки на данную электронную версию, некорректен приведенный расчет. Из-за особенностей прав, в данный момент, продажа только на Гугл Букс.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое