|
Программирование >> Оптимизация возвращаемого значения
Приложение 1 Список рекомендуемой литературы Итак, ваш аппетит к информации о языке С++ остался неудовлетворенным. Утолить его помогут источники, описанные в этом приложении. Конечно, характеристики, которые я даю книгам и журналам, субъективны, но в любом cnjae помогут вам сориентироваться в море информации по С++. Книги Существуют сотни, а возможно, и тысячи книг по С++, и их число постоянно увеличивается. Я не видел всех этих книг, а читал и того меньше, поэтому далее следует список книг, к которым я сам обращался, когда у меня возникали вопросы по разработке программ на С++. Я уверен, что есть и другие хорошие книги, но я использую эти, и именно их могу искренне рекомендовать вам. Начать стоит с книг, описывающих сам язык. The Annotated С++ Reference Manual, Margaret A. Ellis and Bjarne Stroustrup (Маргарет A. Эллис и Бьерн Страуструп. Справочное руководство по С++ с комментариями), Addison-Wesley 1990, ISBN 0-201-51459-1. The Design and Evolution of С++, Bjarne Stroustrup (Бьерн Страуструп. Разработка и эволюция С++), Addison-Wesley 1994, ISBN 0-201-54330-3. Эти книги содержат не просто описание того, что находится в языке, они также приводят логическое обоснование выбора принятых решений, чего вы не найдете в официальных стандартах. Книга Справочное руководство по С++ с комментариями немного устарела (со времени ее публикации в язык были добавлены новые возможности - см. правило 35), но до сих пор остается наилучшим руководством по основным составляющим языка, включая шаблоны и исключения. Книга Разработка и эволюция С++ охватывает многие темы, отсутствующие в книге Справочное руководство по С++ с комментариями ; в ней не хватает только описания стандартной библиотеки шаблонов (см. снова правило 35). Эти книги являются не учебниками, а справочными руководствами, но если вы понимаете изложенный в них материал, вы поймете С++. В качестве более общего справочника по языку, стандартной библиотеке и их применению лучше всего использовать книгу, написанную основоположником С++: The С++ Programming Language (Third Edition), Bjarne Stroustrup (Бьерн Страуструп. Язык программирования С++ (Третье издание)). Addison-Wesley, 1997, ISBN 0-201-88954-4. Страуструп был тесно связан с разработкой, реализацией, применением и стандартизацией языка с момента его возникновения, и он, возможно, знает о языке больше, чем кто-либо еще. Его описание свойств читать нелегко, но главным образом из-за того, что оно содержит так много информации. Главы о стандартной библиотеке С++ особенно полезны. Если вы готовы перейти от изучения самого языка к его эффективному при менению, можете обратиться к моей предыдущей книге: Effective С++, Second Edition: 50 Specific Ways to Improve Your Programs and Designs, Scott Meyers (Скотт Мейерс. Эффективное использование С++: 50 способов улучшить ваши программы и проекты. - ДМК, 2000.) Addison-Wesley 1998, ISBN 0-201-92488-9. Эта книга аналогична той, которую вы сейчас читаете, но охватывает другие (возможно, более фундаментальные) вопросы. Примерно на том же уровне, как и мои книги об эффективном использовании С++, находится и книга С++ Strategies and Tactics, Robert Murray (Роберт Мюррей. Стратегия и тактика С++), Addison-Wesley, 1993, ISBN 0-201-56382-7, но она охватывает другие темы. Книга Мюррея особенно сильна в том, что касается основ разработки шаблонов. Она также содержит главу, посвященную важной теме миграции от С к С++. Большая часть моих рассуждений о подсчете ссылок (см. правило 29) основана на идеях из книги Стратегия и тактика С++ . Если вы относитесь к тем, кто предпочитает изучать программирование, читая код, то вам наверняка понравится книга С++ Programming Style, Tom Cargill (Том Каргилл. Стиль программирования на С++), Addison-Wesley 1992, ISBN 0-201-56365-7. Все главы этой книги открываются кодом С++. Затем Каргилл начинает анатомирование - нет, скорее вивисекцию - каждой из программ, определяя места возможных проблем, неудачный подход к разработке, неудачную реализацию и просто явные ошибки. Постепенно переписывая каждый пример, устраняя слабые места, он в результате создает более устойчивый, легкий в поддержке, эффективный и переносимый код, который решает исходную задачу. Всем программистам на С++ стоило бы обратить внимание на уроки из этой книги, но особенно важна она для тех, кто занимается проверкой кода. В книге Каргилла не рассматриваются исключения. Этой теме посвящена его статья Exception Handling: А False Sense of Security (Обработка исключений: ложное чувство безопасности) С++ Report, Volume 6, Number 9, November-December 1994, pages 21-24. Если вы не можете достать старые выпуски журнала С++ Report, посетите Web-сайт издательства Addison-Wesley, где она размещена по адресу http: www.awl.com/cp/mec++.html. Если вы предпочитаете использовать FTP, то можете найти статью в каталоге ср/тес++ сайта ftp.awl.com.) Тем, кто уже овладел основами С++ и готов двигаться дальше, рекомендую познакомиться с книгой Advanced С++: Programming Styles and Idioms, James Coplien (Джеймс Копль-ен. Современный С++. Стили программирования и диалекты языка), Addison-Wesley 1992, ISBN 0-201-54855-0. Я называю эту книгу психоделической , так как она имеет фиолетовую обложку и расширяет сознание. Копльен рассматривает и простые вопросы, но в основном его интересует, как сделать на С++ веши, которые кажутся невозможными. Вы хотите создавать объекты на основе других объектов? Обходить строгую проверку типов? Добавить данные и функции к классам, которые выполняют ваши программы? Копльен объяснит вам, как это сделать. В большинстве случаев вам лучше избегать описываемых им методов, но иногда только они позволяют решить сложную проблему, с которой вы столкнулись. Эта книга может испугать вас или ослепить, но если вы ее прочтете, уже никогда не будете смотреть на С++ по-старому. Если вы имеете отношение к разработке и реализации библиотек С++, с вашей стороны было бы безрассудно не обратить внимания на книгу Designing and Coding Reusable С++, Martin D. Carroll and Margaret A. Ellis (Мартин Д. Кэрролл и Маргарет А. Эллис. Разработка и создание повторно используемого кода на С++), Addison-Wesley 1995, ISBN 0-201-51284-Х. Кэрролл и Эллис анализируют множество практических аспектов разработки и реализации библиотек, которые просто игнорируются остальными. Хорошая библиотека должна быть компактной, быстрой, расширяемой, легко обновляться, элегантной при создании экземпляров шаблонов, мошной и устойчивой. Невозможно выполнять оптимизацию по всем этим критериям, поэтому нужно выбирать компромиссные варианты, улучшающие одни стороны библиотеки за счет других. Книга Разработка и создание повторно используемого кода на С++ рассматривает эти компромиссы и предлагает практические советы по их выполнению. Независимо от того, для каких приложений вы пишете свои программы, вы обязательно должны взглянуть на книгу Scientific and Engineering С++, John J. Barton and Lee R. Nackman (Джон Дж. Бартон и Ли К. Нэкман. С++ для ученых и инженеров), Addison-Wesley, 1994, ISBN 0-201-53393-6. Первая часть книги рассказывает о С++ программистам на Fortran (незавидная участь в настоящее время), но вторая часть описывает методы, которые пригодятся всем. Исчерпывающий материал по шаблонам почти революционен; возможно, это самое подробное из существующих исследований, и я полагаю, что когда вы увидите чудеса, которые можно делать при помощи шаблонов, вы не будете больше думать о них как просто об улучшенных макрокомандах. И наконец, возникающая в разработке объектно-ориентированного программного обеспечения дисциплина паттернов описана в книге Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (Эрих Гамма, Ричард Хелм,
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |