Это продолжение рассказа о книгах по C++. Начало можно найти тут: Хорошие книги по C++
Серия постов о книгах по С++ была начата давным-давно, надо ее закончить в этом году. Это последний кусок: просто список из книг, которые я не читала, но, судя по заявлениям знающих людей, эти книги должны быть хорошими.
"Стандарты программирования на С++", Герб Саттер, Андрей Александреску. Название оригинала: C++ Coding Standards: 101 Rules, Guidelines and Best Practices "Стандарты программирования на С++" на Ozon.ru |
"Эфективное програмирование на С++", Эндрю Кениг, Барбара Э. Му. Название оригинала: Accelerated C++ "Эфективное програмирование на С++" на Ozon.ru |
"Шаблоны C++. Справочник разработчика", Дэвид Вандевурд, Николаи М. Джосаттис. Название оригинала: C++ Templates. The Complete Guide Слышала весьма лестные отзывы. Упоминается как самая полная книга по шаблонам. "Шаблоны C++. Справочник разработчика" на Ozon.ru |
И еще пара книг, которые мне не удалось найти в русском переводе.
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond
The Annotated C++ Reference Manual - хорошая, но несколько устаревшая книга
13 коммент.:
По поводу "The annotated C++ Reference manual". Был в своё время перевод на русский:
М. Эллис, Б. Страуструп. Справочное руководство по языку программирования С++ с комментариями. М.: Мир. 1992
Книга действительно замечательная и вот тут:
http://kak-tot.narod.ru/ru/book-otd_bs2e.htm
можно эту книжку на русском скачать.
http://kak-tot.narod.ru/ru/book-otd_bs2e.htm
содержит не ARM (annotated reference manual), а полный перевод второго издания книги Страуструпа "The C++ Programming Lanuage". В конце этой книги было тоже приведено справочное руководство (но без комментариев) по С++.
Первые три книги читал, действительно Отличные Книги.
"Стандарты программирования на C++" — моя любимая книга по C++, даром, что самая тонкая на полке.
Требование прочетния "Стандартов" имхо должно быть необходимым условием при приёме на работу. Книгу Кёнига-Му, думаю, Алёне читать уже поздно :) Хоть эта книга уровня beginners, но очень хороша, жалею, что начинал изучение C++ со всяких дейтелов и шилдтов, а не с "Accelerated C++".
"Шаблоны C++" — must have всем, кто усиленно применяет шаблоны. Хоть она и заявлена как справочник, книга является скорее учебником, наиболее полно освещающем тему. Рекомендуется читать до попытки открыть Александреску "Modern C++ Design".
Книгу Абрахамса-Гуртового сейчас читаю. Вставляет.
Что касается Страуструпа — не люблю его. Самое интересное его произведение (и то с натяжкой) — это D&EC++, а TC++PL — стоит на полке исключительно понту ради. ARM не читал. И, скорее всего, не стану, манера излагать мысли не нравится. Но это имхо.
Рекомендуется читать до попытки открыть Александреску "Modern C++ Design".
Угу, я начала читать "Шаблоны С++" и уже успела погоревать, что взялась за Александреску до нее. Очень многое было бы понятнее.
Ну, горевать особо не о чем, всё равно перечитывать :) Не знаю правда, как у вас, но у меня с первого раза понимать книги маньяков вроде Александреску не получается, нужны 2—3 итерации.
Вместо "/* должно стоять "до" курсивом, не знаю, что за глюк с разметкой (руками?)
Если хотите стать толковыми программистами, или около того, то обязательно прочтите книгу: Верёвка достаточной длины... чтобы выстрелить сабе в ногу, Ален И. Голуб. В ней расмотрены более 100 правил программирование на С++. В бумажном обрамлении гнигу эту помоему уже не найдёшь, но в электронном виде её хоть отбавляй.
Ну, горевать особо не о чем, всё равно перечитывать :) Не знаю правда, как у вас, но у меня с первого раза понимать книги маньяков вроде Александреску не получается, нужны 2—3 итерации.
Перечитывать придется, это верно. :-)
Прочитать Голуба? Неужели, чтобы стать толковым программистом нужно заплатить столь ужасную цену? :)
Советы Голуба:
"61. В цикле со счётчиком его значение должно по возможности уменьшаться."
"90.1 Если проект не ориентирован на объекты, то используйте Си [вместо C++]."
"135. Суперобложки на Си++ для существующих интерфейсов редко хорошо работают."
Да, я это читал :( Слава богу, в бумажном виде Голуба уже не найдёшь :)
Примерно такое же впечатление оставила книга Кернигана-Пайка "Практика программирования". Чуть лучшее впечатления произвёл МакКоннелл "Code Complete". А вообще — ну их, этих философов. Всяк на свой лад советы дают.
Чуть лучшее впечатления произвёл МакКоннелл "Code Complete".
А мне эта книга понравилась. Хотя местами нудновата.
"Эфективное програмирование на С++", Эндрю Кениг, Барбара Э. Му.
очень рад что приобрел эту книжку. сейчас читаю её запоем!
"Эфективное програмирование на С++", Эндрю Кениг, Барбара Э. Му.
Я б ее в раздел для начинающих перенес, там как раз для нее место. Книга отличается тем, что на минимальном количестве страниц подает кучу идей.
Leopold
Здесь по моему не хватает Мейерса с его "Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ"
Effective C++: 55 Specific Ways to Improve Your Programs and Designs
К примеру:
Пока не прочитал его, даже не задумывался о значении аргументов по умолчанию виртуальной функции базового класса при вызове переопределённой функции наследника. :) Читал его я после Бьярна, и Мейерс объяснил мне "популярно" когда надо писать typedef typename T::SomeType SomeType; а когда typedef T::SomeFunc SomeFunc; в шаблонах.
Здесь тут Голуба упоминали. Ну что сказать. Некоторые советы из «Верёвки» и впрямь по нынешним временам могут показаться странными. Большинство всё же вполне вменяемые и полезные. Не стоит недооценивать автора.
Совет #61, про циклы. Это было актуально в 70-80-е, когда компиляторы Си слабо оптимизировали циклы, если вообще оптимизировали, а скорость работы подсистемы памяти примерно равнялась скорости работы процессора. Смысл в том, что на машинном уровне сравнивать переменную цикла с 0 «проще», чем с константой. Константу нужно хранить в регистре или читать из памяти на каждой итерации, а проверка на ноль происходит, так сказать, имплицитно. :) Сейчас такие «оптимизации» лучше предоставить компилятору.
Есть у Алена Голуба и другая весьма достойная книжка, «Compiler Design in C. 1990» называется, - разработка компилятора Си на себе самом :). Очень неплохо изложена классическая теория компиляции. Всё подкреплено примерами кода, все эти NFA to DFA, DFA minimization etc, так что если вам что-то мутно в теории, можно уразуметь из кода. В книге содержатся исходники как самого б.м. полноценного Си-компайлера, так и клонов Lex’а и Yacc’а.
Сам Голуб по сию пору читает курсы Си++ и ООП в Калифорнийском университете в Беркли.
Отправить комментарий