kniga.biz.ua

Функціональний дизайн. Принципи, патерни і практики

Код: 2100029356
Купити Функціональний дизайн. Принципи, патерни і практики Роберт Мартін
720 грн
Є на складі

В бажані
Доставка
БЕЗКОШТОВНА при вартості замовлення від 990 грн
Нова Пошта на відділення/поштомат та доставка кур'єром;
Укрпошта на відділення — за тарифами компанії-перевізника Детальніше

Оплата
Готівкою або на термінал при отриманні, Безготівкова, Visa/MasterCard
Автор Роберт Мартін
Видавництво Фабула
Сторінок 320
Рік 2025
ISBN 978-617-522-321-5
Обкладинка тверда
Мова Українська
Формат 70x100/16 (165х235 мм.)

Про книгу Функціональний дизайн. Принципи, патерни і практики

У книжці «Функціональний дизайн: принципи, патерни і практики» відомий інженер-програміст Роберт С. Мартін (Дядечко Боб) пояснює, чому варто використовувати функціональне програмування для створення кращих систем для реальних користувачів.

Він порівнює традиційні об’єктно-орієнтовані структури кодування на Java зі структурами функціональних мов, визначає найкращі ролі для кожної з них і показує, як створювати довершені системи, розумно використовуючи їх у контексті.

Р. Мартін мінімізує теорію на користь розв’язання нагальних проблем, і завдяки цьому прагматичному підходу діючі розробники на яскравих прикладах дізнаються, як мова Clojure, проста для вивчення і семантично багата, зможе допомогти їм підвищити чистоту коду, покращити дизайн і досягти найкращих результатів.

Також автор розглядає принципи SOLID і дизайн-патерни з функціональної точки зору, показуючи, чому саме патерни залишаються надзвичайно цінними для функціональних програмістів.

pdf Уривок з книги


Додати свій відгук про книгу

Зміст Функціональний дизайн. Принципи, патерни і практики

Присвята
Вступне слово
Передмова
Подяки
Про автора
 
Частина І. ФУНКЦІОНАЛЬНІ ОСНОВИ
1. НЕЗМІННІСТЬ
Що таке функціональне програмування?
Проблема із присвоюванням
То чому ж воно називається функціональним?
Без зміни стану?
Незмінність
 
2. ПОСТІЙНІ ДАНІ
Про шахрайство
Виготовлення копій
Структурний розподіл
 
3. РЕКУРСІЯ ТА ІТЕРАЦІЯ
Ітерація
Дуже короткий підручник із Clojure
Ітерація
ТСО. Clojure та JVM
Рекурсія
 
4. ЛІНЬ
Ліниве накопичення
Гаразд, але чому?
Кода
 
5. СТАБІЛЬНИЙ СТАН
Коли ми мусимо мутувати
Програмна транзакційна пам'ять ISTM)
Життя складне, програмне забезпечення іще складніше
 
Частина II. ПОРІВНЯЛЬНИЙ АНАЛІЗ
6. «PRIME FACTORS»
Версія Java
Версія на Clojure
Висновок
 
7. «ГРА У БОУЛІНГ»
Версія Java
Версія на Clojure
Висновок
 
8. «ПЛІТКИ ВОДІЇВ АВТОБУСІВ»
Рішення на Java
Driver
Route
Stop
Rumor
Simulation
Clojure
Висновок
 
9. ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ
Функціональна реалізація Payroll (Розрахунок заробітної
платні)
Простори імен та вихідні файли
Висновок
 
10. ТИПИ
Висновок
 
Частина III. ФУНКЦІОНАЛЬНИЙ ДИЗАЙН
11. ПОТІК ДАНИХ
 
12. SOLID
Принцип єдиної відповідальності (SRP)
Принцип відкритості-закритості (ОСР)
Функції
Об'єкти з Vtables
Мультиметоди
Незалежне розгортання
Принцип заміщення Лісков (LSP)
Правило ISA
Ні!
Правило представлення
Принцип розділення інтерфейсів (ISP)
Не залежте від речей, що вам не потрібні
Чому?
Висновок
Принцип інверсії залежностей (DIP)
Вибух із минулого
Порушення DIP
Висновок
 
Частина IV. ФУНКЦІОНАЛЬНА ПРАГМАТИКА
13. ТЕСТИ
А як щодо REPL?
А що з моками?
Тестування на основі властивостей
Метод діагностики
Функціональний підхід
 
16. ГРАФІЧНИЙ ІНТЕРФЕЙС
Turtle-Graphics у Quil
 
15. КОНКУРЕНТНІСТЬ
Висновок
 
Частина V. ДИЗАЙН-ПАТЕРНИ
16. ОГЛЯД ДИЗАЙН-ПАТЕРНІВ
Патерни у функціональному програмуванні
Абстрактний сервер
Адаптер
Чи справді це об'єкт адаптера?
Command
Відміна
Composite
Функціональний?
Декоратор
Візитер
Close чи Clojure?
Проблема повороту на 90 градусів
Абстрактна фабрика
Знову поворот на 90 градусів
Безпека типів?
Висновок
Постскриптум: отруєне ОП?
 
Частина VI. ПРИКЛАД ІЗ ЖИТТЯ
17. WA-TOR
Позбавляємося сверблячки
Душ вирішує проблеми
Час дикого розмноження
А як щодо shark?
 
Висновок
Післямова від Джини Мартіні
Покажчик
 
 


Залишити свій відгук:

Сьогодні купили