Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 690887)
Контекстум

Язык C. Мастерство программирования. Принципы, практики и паттерны (4000,00 руб.)

0   0
Первый авторПрешерн К.
ИздательствоBooks.kz
Страниц302
ID947526
АннотацияВ этом практическом руководстве начинающие и опытные программисты на C найдут наставления по принятию проектных решений, включая пошаговое применение паттернов к сквозным примерам. Автор, один из ведущих членов сообщества паттернов проектирования, объясняет, как организовать программу на C, как обрабатывать ошибки и проектировать гибкие интерфейсы. В части I вы научитесь реализовывать проверенные практикой подходы к программированию на языке C; часть II показывает, как паттерны программирования на C применяются к реализации более крупных программ.
ISBN978-6-01810-340-7
УДК004.4
ББК32.372
Прешерн, К. . Язык C. Мастерство программирования. Принципы, практики и паттерны / К. . Прешерн .— : Books.kz, 2023 .— 302 с. : ил. — ISBN 978-6-01810-340-7 .— URL: https://rucont.ru/efd/947526 (дата обращения: 01.03.2026)

Предпросмотр (выдержки из произведения)

Язык_C._Мастерство_программирования._Принципы,_практики_и_паттерны.pdf
Прешерн К. Язык С Мастерство программирования Принципы, практики и паттерны
Стр.2
Fluent C Principles, Practices, and Patterns Christopher Preschern Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo
Стр.3
Язык С Мастерство программирования Принципы, практики и паттерны Прешерн К. 2023
Стр.4
УДК 004.4 ББК 32.372 П71 П71 Прешерн К. Язык С. Мастерство программирования. Принципы, практики и паттерны / пер. с англ. А. А. Слинкина – М.: ДМК Пресс, 2023. – 300 с.: ил. ISBN 978-6-01810-340-7 В этом практическом руководстве начинающие и опытные программисты на C найдут наставления по принятию проектных решений, включая пошаговое применение паттернов к сквозным примерам. Автор, один из ведущих членов сообщества паттернов проектирования, объясняет, как организовать программу на C, как обрабатывать ошибки и проектировать гибкие интерфейсы. В части I вы научитесь реализовывать проверенные практикой подходы к программированию на языке C; часть II показывает, как паттерны программирования на C применяются к реализации более крупных программ. Copyright © 2023 Books.kz Limited Liability Partnership. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978­1­49210­973­3 (англ.) © Christopher Preschern, 2023 ISBN 978­6­01810­340­7 (казах.) © Оформление, перевод на русский язык, издание, Books.kz, 2023
Стр.5
Оглавление Предисловие ...................................................................................................8 ЧАСТЬ I. Паттерны на C ..............................................................................25 Глава 1. Обработка ошибок ........................................................................26 Сквозной пример..............................................................................................27 Разбиение функции ...............................................................................................29 Проверка условий ...................................................................................................32 Принцип самурая ...................................................................................................35 Переход к обработке ошибки ................................................................................39 Запись об очистке ...................................................................................................42 Объектная обработка ошибок ...............................................................................45 Резюме ...............................................................................................................48 Для дополнительного чтения ..........................................................................49 Что дальше ........................................................................................................50 Глава 2. Возврат информации об ошибке ................................................51 Сквозной пример..............................................................................................52 Возврат кода состояния .........................................................................................54 Возврат существенной информации об ошибке ..................................................61 Специальное возвращаемое значение .................................................................67 Протоколирование ошибок ...................................................................................70 Резюме ...............................................................................................................77 Для дополнительного чтения ..........................................................................77 Что дальше ........................................................................................................77 Глава 3. Управление памятью ....................................................................78 Хранение данных и проблемы с динамической памятью .............................80 Сквозной пример ...................................................................................................83 Сначала стек ...........................................................................................................83 Вечная память ........................................................................................................86 Последствия ............................................................................................................88 Отложенная очистка ..............................................................................................90 Единоличное владение ..........................................................................................94 Обертка выделения ................................................................................................97 Проверка указателя ..............................................................................................102 Пул памяти............................................................................................................105 Резюме .............................................................................................................111 Для дополнительного чтения ........................................................................111 Что дальше ......................................................................................................112 Глава 4. Возврат данных из C-функций ..................................................113 Сквозной пример............................................................................................115 Возвращаемое значение ......................................................................................116
Стр.6
6  Оглавление Выходные параметры ..........................................................................................119 Агрегат ..................................................................................................................123 Неизменяемый экземпляр ..................................................................................128 Буфер, принадлежащий вызывающей стороне .................................................131 Вызываемая сторона выделяет память ..............................................................135 Резюме .............................................................................................................139 Что дальше ......................................................................................................140 Глава 5. Время жизни и владение данными .........................................141 Сквозной пример............................................................................................143 Программный модуль без состояния ..................................................................144 Программный модуль с глобальным состоянием ..............................................148 Экземпляр, принадлежащий вызывающей стороне .........................................152 Разделяемый экземпляр ......................................................................................158 Резюме .............................................................................................................164 Для дополнительного чтения ........................................................................165 Что дальше ......................................................................................................166 Глава 6. Гибкие API .....................................................................................167 Сквозной пример............................................................................................169 Заголовочные файлы ...........................................................................................169 Описатель .............................................................................................................172 Динамический интерфейс ...................................................................................176 Управление функцией .........................................................................................179 Резюме .............................................................................................................183 Для дополнительного чтения ........................................................................183 Что дальше ......................................................................................................184 Глава 7. Гибкие интерфейсы итераторов ................................................185 Сквозной пример............................................................................................187 Доступ по индексу ................................................................................................188 Курсор ....................................................................................................................192 Итератор обратного вызова ................................................................................197 Резюме .............................................................................................................202 Для дополнительного чтения ........................................................................203 Что дальше ......................................................................................................204 Глава 8. Организация файлов в модульных программах ...................205 Сквозной пример............................................................................................207 Охрана включения ...............................................................................................209 Каталоги программных модулей ........................................................................212 Глобальный каталог include .................................................................................217 Автономный компонент ......................................................................................221 Копия API ..............................................................................................................226 Резюме .............................................................................................................235 Что дальше ......................................................................................................235 Глава 9. Бегство из ада #ifdef ...................................................................236 Сквозной пример............................................................................................238 Избегание вариантов ...........................................................................................240
Стр.7
Оглавление  7 Изолированные примитивы................................................................................243 Атомарные примитивы .......................................................................................246 Уровень абстракции .............................................................................................250 Разделение реализаций вариантов .....................................................................255 Резюме .............................................................................................................261 Для дополнительного чтения ........................................................................261 Что дальше ......................................................................................................262 ЧАСТЬ II. Истории о паттернах ...............................................................263 Глава 10. Реализация протоколирования ..............................................264 История о паттернах ......................................................................................264 Организация файлов ............................................................................................265 Центральная функция протоколирования .........................................................266 Фильтрация источника сообщений ....................................................................267 Условное протоколирование ...............................................................................269 Несколько мест протоколирования ....................................................................270 Протоколирование в файл ...................................................................................272 Кросс­платформенная обработка файлов ..........................................................273 Использование средства протоколирования .....................................................277 Резюме .............................................................................................................277 Глава 11. Построение системы управления пользователями ............279 История о паттернах ......................................................................................279 Организация данных ...........................................................................................279 Организация файлов ............................................................................................281 Аутентификация: обработка ошибок .................................................................282 Аутентификация: протоколирование ошибок ...................................................284 Добавление пользователей: обработка ошибок.................................................285 Итерирование .......................................................................................................287 Применение системы управления пользователями ..........................................290 Резюме .............................................................................................................291 Глава 12. Заключение ................................................................................293 Чему вы научились .........................................................................................293 Для дополнительного чтения ........................................................................293 Заключительные замечания ..........................................................................294 Об авторе ....................................................................................................295 Об иллюстрации на обложке ...................................................................295 Предметный указатель .............................................................................296
Стр.8

Облако ключевых слов *


* - вычисляется автоматически