commit a448f866213da99c8eb42c7ac2f9dd97db862d48 Author: Alexander Zhirov Date: Sun Apr 13 21:54:59 2025 +0300 init diff --git a/README.md b/README.md new file mode 100644 index 0000000..7778ef6 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Книга рецептов D + +![book](data/book.jpg) + +## Содержание + +- [Предисловие](book/00-предисловие) diff --git a/book/00-предисловие/README.md b/book/00-предисловие/README.md new file mode 100644 index 0000000..ff6107c --- /dev/null +++ b/book/00-предисловие/README.md @@ -0,0 +1,39 @@ +# Предисловие + +Популярность языка программирования D стремительно растёт. Благодаря гармоничному сочетанию удобства высокоуровневого программирования с мощью и эффективностью низкоуровневого, D подходит для продуктивного решения практически любых задач программирования. Эта книга основана на годах реального опыта использования D и тщательного отслеживания развития языка и его библиотек. Она поможет вам быстро освоить этот захватывающий язык и его активно развивающуюся экосистему. + +## Что охватывает эта книга + +Глава 1. Основные задачи. Начало работы с D и обзор задач, которые можно выполнять с использованием уникальных возможностей языка, отличающихся от других популярных языков программирования. + +Глава 2. Phobos – стандартная библиотека. Знакомство со стандартной библиотекой D для выполнения распространённых задач, таких как генерация случайных чисел, написание сетевых клиентов и серверов, а также преобразование типов. + +Глава 3. Диапазоны. Объяснение концепции диапазонов, центральной для алгоритмов D. Диапазоны позволяют создавать и использовать генераторы, представления различных коллекций и выполнять общие преобразования данных. + +Глава 4. Интеграция. Исследование интеграции D с внешним миром, включая создание приложений для Windows, использование библиотек на C и расширение приложений на C++ с помощью D. + +Глава 5. Управление ресурсами. Обсуждение управления памятью и другими ресурсами в D, включая советы о том, почему, когда и как эффективно использовать сборщик мусора. + +Глава 6. Обёрнутые типы. Погружение в мир пользовательских типов, демонстрация того, как расширять и ограничивать типы с помощью лёгких абстракций-обёрток. + +Глава 7. Проверка корректности. Демонстрация использования функций D для поиска ошибок, таких как тестирование, утверждения и документация, а также правильный подход к условной компиляции. + +Глава 8. Рефлексия. Обучение богатым возможностям интроспекции, которые предоставляет D, включая советы, основанные на многолетнем опыте, которые раздвигают границы языка. + +Глава 9. Генерация кода. Демонстрация техник автоматизации создания нового кода для написания эффективного, универсального и специализированного кода, включая введение в создание собственных мини-языков внутри D. + +Глава 10. Многозадачность. Знакомство с возможностями D для параллелизма и конкурентности. + +Глава 11. D для программирования ядра. Начало работы с написанием кода непосредственно для "голого железа" в D, исключая библиотеку времени выполнения, чтобы вывести приветствие прямо через видеоконтроллер ПК, а затем обрабатывать прерывания от клавиатуры с использованием низкоуровневых возможностей D. + +Глава 12. Веб и программирование GUI. Обзор библиотек, созданных мной за годы работы, которые показывают, как создавать динамические веб-сайты и графические окна для десктопов, а также обсуждение моего практического опыта написания этих библиотек, что даст вам преимущество при написании собственного кода. + +Приложение. Дополнение. Краткий обзор использования D на процессорах ARM, включая системы без операционной системы, и другие небольшие темы, не вошедшие в основную часть книги. + +## Что нужно для этой книги + +Вам нужен ПК с Windows или Mac, способный запускать компилятор DMD, доступный на сайте http://dlang.org/. + +## Для кого эта книга + +Эта книга предназначена для программистов, которые хотят продолжить своё профессиональное развитие, изучая D. Независимо от того, знакомитесь ли вы с D впервые или уже использовали его и хотите узнать больше, в этой книге найдётся что-то полезное для вас. diff --git a/book/README.md b/book/README.md new file mode 100644 index 0000000..a3fd89c --- /dev/null +++ b/book/README.md @@ -0,0 +1,7 @@ +# Книга рецептов D + +![book](../data/book.jpg) + +## Содержание + +- [Предисловие](00-предисловие) diff --git a/data/book.jpg b/data/book.jpg new file mode 100644 index 0000000..cc440dd Binary files /dev/null and b/data/book.jpg differ