Обзор книги «Beginning F#»
Недавно Александр Краковецкий предложил всем желающим написать ревью некоторых книг издательства APRESS в обмен на бумажные версии этих книг. Так как я веду цикл статей о F#, я заинтересовался книгой «Beginning F#».
Название «Beginning F#» является несколько неточным — я бы назвал книгу «Beginning, Advancing and Getting Astounded by F#». Эта книга последовательно описывает все более и более сложные тематики, вызывая у читателя удивление и невольное уважение к скрытым возможностям нового языка программирования под платформу Microsoft .NET — F#.
Вот краткая сводка по основным главам:
-
Главы «Functional Programming, «Imperative Programming», «Object-Oriented Programming» последовательно рассматривают три известных парадигмы программирования, акцентируя на их плюсах и минусах, и демонстрируют соответствующие возможности F#. Хорошее начало, чтобы просто разобраться, что к чему.
-
Глава «Organizing, Annotating and Quoting Code» описывает специфические для F# возможности организации кода в модули, пространства имен; описывает различные типы комментариев и автогенерацию документации по ним; знакомит с цитированием (quotation) кода, позволяющим делать вывод не только типов, но и деревьев выражений.
-
Глава «F# Libraries» — описывает основные библиотеки языка, дает краткие характеристики содержащихся там функций. Также описывается очень мощная библиотека FSharp.PowerPack, дающая доступ к богатому выбору математических функций и компилятору языка.
-
Глава «User Interface» описывает работу с пользовательским интерфейсом из кода; при этом описываются как WinForms, так и WPF. Радует, что описывается не только платформа Windows/.NET, но и Linux/Mono.
-
Глава «Data Access» — базы данных, ADO.NET, Data Bindings, LINQ. Этим всё сказано :)
-
Глава «Parallel Programming» описывает крайне важную, по моему мнению, тему — параллельное программирование. Даны основы работы с потоками, описаны механизмы блокировки (locking), параллельность относительно данных (Data Parallelism), асинхронное программирование. Необычайно полезный с методической точки зрения раздел, который стоит прочитать, даже если вы не будете писать на F# большую часть времени.
-
Глава «Distributed Applications» дают представление о использовании F# при написании клиент-серверных приложений с использованием сокетов, HTTP и WCF. Также описана возможность вызовов F# из ASP.NET.
-
Глава «Language-Oriented Programming» знакомит читателя с техникой использования DSL (domain-specific languages) и основами метапрограммирования на основе написания простенького компилятора и интерпретатора.
-
Глава «Parsing Test» — для меня наиболее увлекательный раздел. В нем описан парсинг EBNF-грамматик, рассмотрена open-source библиотека FParsec (изящный поклон в сторону Haskell).
-
Глава «Compatibility and Advanced Interoperation» — вызовы F# из других .NET-языков, в частности, из C#; вызовы COM-объектов; использование P/Invoke и встраивание IL-кода.
Вывод напрашивается только один: книга — безусловный «must have» не только для тех, кто интересуется функциональным программированием, но и для тех, кто сталкивается со сложными задачами вроде парсинга текстов, сложных научных расчетов, распределенных задач. «Beginning F#» написана легким и понятным языком и читается буквально взахлёб! Я считаю, что эта книга достойно украсит полку любого программиста, желающего стать настоящим профессионалом.
Компании из статьи
Apress
|
Apress is a technical publisher devoted to meeting the needs of IT professionals, software developers, and programmers, with more than 700 books in print and a continually expanding portfolio of publi... |
Microsoft Украина | Украинское подразделение компании Microsoft. |