Должен ли я читать Исключительные книги на C++, если я прочитал эффективную серию С++

Я занимаюсь программированием на С++ (на Unix и gcc 3.x) в течение последних 6-7 лет. Я прочитал Скотта Мейера "Эффективный С++", "Эффективный С++" и "Эффективный STL-обложка", а также использовал и использовал свои идеи и методы вместе с Boost. Я бы хотел перейти к более продвинутым аспектам С++ - что-то вроде "Modern С++ Design" Андрея Александреску. Однако, прежде чем начинать читать это, мне интересно, стоит ли мне тратить время на чтение Исходных книг на С++. Как бы вы сравнили эффективную серию С++ с книгами Sutter?

Большое спасибо за ваш ответ.

Ответы

Ответ 1

Читайте как можно больше - разные перспективы всегда ценны.

Ответ 2

Да, абсолютно. Herb Sutter охватывает множество очень важных, но в целом плохо понятых областей языка и предоставляет множество полезных рекомендаций для написания более надежного кода.

Хотя верно, что большая часть материала возникла на сайте gotw, он расширен и лучше организован в книгах. Если вы можете правильно ответить на все проблемы, вы обнаружите, что очень редко сталкиваетесь с кодом, который вы не понимаете, почему он ведет себя так, как будто это происходит. Вы также можете столкнуться со многими потенциальными проблемами, которые вы обнаружите в коде, прежде чем они станут реальными проблемами.

Я получил намного больше от Exceptional С++ книг, чем я сделал из Effective С++, но это будет очень личная вещь.

Ответ 3

Откровенно говоря, Herb Sutter сильно замалчивает безопасность исключений с момента введения идеи в один из журналов до 2000 года. Тот факт, что он много использовал для репликации и транзакционных систем, имеет смысл, и если вы не являетесь огромным последователем и не заинтересованы только в программном обеспечении такого "безопасного" вида, вам будет скучно. Мейерс гораздо более практичен и интересен.

Кроме того, если вы хотите двигаться дальше, в этой серии есть другие книги, в частности из легенд, а не писателей ради написания. Посмотрите кусочки от Николая Йосуттиса (С++ Templates: Полное руководство), Алексей Гуртовой (С++ Template Metaprogramming) и совсем недавно "Папа 2" Степанов. По моему мнению, они более влиятельны, ноучены, практичны и формируют, чем что-либо DDJ или вызванные безопасностью записи, вызванные безопасностью...

И, конечно, если вам когда-нибудь понадобится вернуться к основам (и всегда есть причина), одна из лучших книг по этому вопросу принадлежит самому папе: Язык программирования С++ (наиболее недооценивается и просматривается там).

Ответ 4

Мне нравится стандартная книга кодирования С++, потому что это просто стандарт кодирования.

Эффективный С++ представляет важные идеи, и я тоже был первым. Стандарты кодирования С++, однако, имеют форму стандартного кодирования, который должен иметь программирование любого человека. Существует ряд других стандартов кодирования, Sutter имеет преимущество в том, чтобы быть кратким и хорошо объясненным (всего 100 позиций, которые очень аккуратно классифицированы).

Я бы потратил время, если бы вы были на вас, чтобы прочитать Стандарты кодирования С++ и записи Guru of the Week, прежде чем двигаться дальше к мета-шаблону программирования.

Интересно метапрограммное программирование. Я любил Modern С++ Programming и его подходы. Однако, на мой взгляд, он менее практичен, на мой взгляд, укрепить основы настолько, насколько это возможно, тогда вы всегда можете поиграть с "новыми" идеями.

Ответ 6

Я бы абсолютно рекомендовал книги Exceptional С++, если вы хотите перейти на более продвинутый С++. Я считаю, что чтение обеих серий - это то, что эффективные книги на С++ рассказывают вам, как писать код, который не полностью сосут, а книги Exceptional С++ рассказывают вам, как писать код, прочный и пуленепробиваемый. Я был менее воспринят с Modern С++ Design; если вы хотите попасть в серьезный шаблон метапрограммирования его в значительной степени окончательной работы, но я нашел его немного... там для моего вкуса, особенно там, где он строит эту славно сложную структуру шаблона, которая принесет вам слезы с ее а затем упоминает "О да, это на самом деле не работает на любом компиляторе, который в настоящее время доступен".

Ответ 7

Я нашел обе книги интересными и полезными. Есть много общих тем, и вы, возможно, уже знаете их, но, безусловно, это поможет.