C/C++ must read books
От: AbramKotkin  
Дата: 07.09.09 05:19
Оценка:
Какие по вашему мнению книги по C/C++ являются must read.
Нагуглил вот этот списочек
http://www.artima.com/cppsource/top_cpp_books.html
но, кажется, он не полон.
Re: C/C++ must read books
От: jazzer Россия Skype: enerjazzer
Дата: 07.09.09 05:25
Оценка:
Здравствуйте, AbramKotkin, Вы писали:

AK>Какие по вашему мнению книги по C/C++ являются must read.

AK>Нагуглил вот этот списочек
AK>http://www.artima.com/cppsource/top_cpp_books.html
AK>но, кажется, он не полон.

http://www.accu.informika.ru/accu/bookreviews/public/reviews/0sb/advanced_c__.htm
ну и другие категории, там много разного
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: C/C++ must read books
От: igna Россия  
Дата: 07.09.09 06:28
Оценка:
Здравствуйте, AbramKotkin, Вы писали:

AK>http://www.artima.com/cppsource/top_cpp_books.html

AK>но, кажется, он не полон.

А он ведь и не претендует на полноту и называется соответственно The Five Most Important C++ Books, а вовсе не C/C++ must read books. И пять книг выбраны на мой взгляд наиболее удачно.
Re[2]: C/C++ must read books
От: igna Россия  
Дата: 07.09.09 06:29
Оценка:
Здравствуйте, jazzer, Вы писали:

J>http://www.accu.informika.ru/accu/bookreviews/public/reviews/0sb/advanced_c__.htm

J>ну и другие категории, там много разного

Так можно и в амазоне "C++" поискать, еще больше найдешь.
Re: C/C++ must read books
От: Чили Россия  
Дата: 07.09.09 07:08
Оценка: +1
Здравствуйте, AbramKotkin, Вы писали:

Бьерн Страуструп. Язык программирования C++ — как Библия!!!
Re: C/C++ must read books
От: ArtK  
Дата: 07.09.09 08:15
Оценка:
Здравствуйте, AbramKotkin, Вы писали:

AK>Какие по вашему мнению книги по C/C++ являются must read.

AK>Нагуглил вот этот списочек
AK>http://www.artima.com/cppsource/top_cpp_books.html
AK>но, кажется, он не полон.

Список очень хорош.
Добавил бы ещё Саттера — Стандарты программирования на C++. Очень полезная книга.
Re[3]: C/C++ must read books
От: jazzer Россия Skype: enerjazzer
Дата: 07.09.09 08:24
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


J>>http://www.accu.informika.ru/accu/bookreviews/public/reviews/0sb/advanced_c__.htm

J>>ну и другие категории, там много разного

I>Так можно и в амазоне "C++" поискать, еще больше найдешь.


А на амазоне разве есть ревью от экспертов?
На ACCU, напирмер, добрая половина ревью написала Фрэнсисом Глассборо.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: C/C++ must read books
От: igna Россия  
Дата: 07.09.09 08:35
Оценка:
Здравствуйте, Чили, Вы писали:

Ч>Бьерн Страуструп. Язык программирования C++ — как Библия!!!


Но содержание (Contents) какое-то кастрированное, приходится пользоваться предметным указателем.
Re[4]: C/C++ must read books
От: igna Россия  
Дата: 07.09.09 08:50
Оценка:
Здравствуйте, jazzer, Вы писали:

J>А на амазоне разве есть ревью от экспертов?

J>На ACCU, напирмер, добрая половина ревью написала Фрэнсисом Глассборо.

Хорошо, смотрим: The C++ Standard Library by Nicolai Josuttis — Highly Recommended, Reviewed by Francis Glassborow.

А теперь сюда:

http://www.josuttis.com/libbook/errata1_01.html
http://www.josuttis.com/libbook/errata1_03.html
http://www.josuttis.com/libbook/errata1_05.html
http://www.josuttis.com/libbook/errata1_14.html
http://www.josuttis.com/libbook/errata1_22.html

Исправляя одни ошибки, автор добавляет новые. Процесс исправления вряд ли закончится когда-нибудь, по некоторым не зависящим от доброй или злой воли автора причинам. Эта книга никак не может быть названа Highly Recommended.
Re[5]: C/C++ must read books
От: jazzer Россия Skype: enerjazzer
Дата: 07.09.09 09:12
Оценка:
Здравствуйте, igna, Вы писали:

I>Исправляя одни ошибки, автор добавляет новые. Процесс исправления вряд ли закончится когда-нибудь, по некоторым не зависящим от доброй или злой воли автора причинам. Эта книга никак не может быть названа Highly Recommended.


Гы. Ну знаешь ли, даже в Стандарте есть ошибки, там вон целый комитет работает над их исправлением.

А книга Йосуттиса, имхо, лучшая по СТЛ (хотя я ее прочитал по диагонали, сам я всегда читаю непосредственно Стандарт, он у меня все время открытый висит, так что для меня лично Highly Recommended — это собственно Стандарт).
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Top 5 C/C++ must read books
От: Константин Россия  
Дата: 07.09.09 09:22
Оценка:
Здравствуйте, AbramKotkin, Вы писали:

AK>Какие по вашему мнению книги по C/C++ являются must read.

AK>Нагуглил вот этот списочек
AK>http://www.artima.com/cppsource/top_cpp_books.html
AK>но, кажется, он не полон.

Для top-5 мне кажется нужно выкинуть Александреску и стандарт. Первое — более-менее бесполезные игрушки, которые стоит читать только людям с окрепшей психикой. Второе — отличный справочник, но не книга для чтения.
В качестве замены взял бы:

Herb Sutter, Andrei Alexandrescu. C++ Coding Standards : 101 Rules, Guidelines, and Best Practices
Herb Sutter. Exceptional C++


Подумал бы ещё о STL:

Скотт Мейерс. Эффективное использование STL
Николай Джосьютис. C++. Стандартная библиотека

Re[2]: Top 5 C/C++ must read books
От: igna Россия  
Дата: 07.09.09 09:50
Оценка:
Здравствуйте, Константин, Вы писали:

К>Для top-5 мне кажется нужно выкинуть Александреску и стандарт. Первое — более-менее бесполезные игрушки, которые стоит читать только людям с окрепшей психикой.


Не надо выкидывать Александреску, это в некотором смысле лучшая книга по C++; автору удалось понятно написать о сложных вещах. Сравни, например со Страуструпом, где рассматриваются хоть и непростые, но все же не настолько сложные как у Александреску, вещи. Или с книгой Абрахамса и Гуртового про (якобы) метапрограммирование (на самом деле про Boost.Mpl).
Re[6]: C/C++ must read books
От: igna Россия  
Дата: 07.09.09 10:29
Оценка:
Здравствуйте, jazzer, Вы писали:

J>А книга Йосуттиса, имхо, лучшая по СТЛ (хотя я ее прочитал по диагонали, ...


Да? А для меня лучшая пока по STL пока-что The C++ Standard Template Library.

Кстати, "ревью от эксперта": здесь.
Re[7]: C/C++ must read books
От: jazzer Россия Skype: enerjazzer
Дата: 07.09.09 12:34
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


J>>А книга Йосуттиса, имхо, лучшая по СТЛ (хотя я ее прочитал по диагонали, ...


I>Да? А для меня лучшая пока по STL пока-что The C++ Standard Template Library.


Не читал.
Мне стандарта вполне хватает.
Как я уже сказал, я и Йосуттиса по диагонали прочитал.

I>Кстати, "ревью от эксперта": здесь.


И с чем ты там не согласен? Вроде все претензии адекватны.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: C/C++ must read books
От: LaptevVV Россия  
Дата: 07.09.09 13:19
Оценка:
Здравствуйте, AbramKotkin, Вы писали:

AK>Какие по вашему мнению книги по C/C++ являются must read.

AK>Нагуглил вот этот списочек
AK>http://www.artima.com/cppsource/top_cpp_books.html
AK>но, кажется, он не полон.
Вместо Александреску я б поставил:
1. Джоссатисс. Стандартная библиотека С++
2. Вандерурд, Джосаттис. Шаблоны в С++
3. Герб Саттер. Сложные задачи по С++ (объединенная книга).
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: C/C++ must read books
От: igna Россия  
Дата: 07.09.09 13:34
Оценка:
Здравствуйте, jazzer, Вы писали:

J>И с чем ты там не согласен? Вроде все претензии адекватны.


С общей оценкой. Претензии адекватны, но это не ляпсусы как у Josuttis-а, а далеко не очевидные ошибки аналогичные, скажем, ошибкам стандарта.
Re[2]: C/C++ must read books
От: igna Россия  
Дата: 07.09.09 13:46
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>1. Джоссатисс. Стандартная библиотека С++


Может быть у меня старое издание этой книги, но на странице 341 читаю про std::find:

... returns the position of the first element in the range [beg,end) that has a value equal to value.


А на странице 411 про std::includes:

... for each element in [searchBeg,searchEnd) there must be an equal element in [beg,end).


И кажется мне, что equal в первом предложение означает как бы не совсем то, что equal во предложении втором. Это только кажется?
Re[3]: Top 5 C/C++ must read books
От: Константин Россия  
Дата: 07.09.09 15:03
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Константин, Вы писали:


К>>Для top-5 мне кажется нужно выкинуть Александреску и стандарт. Первое — более-менее бесполезные игрушки, которые стоит читать только людям с окрепшей психикой.


I>Не надо выкидывать Александреску, это в некотором смысле лучшая книга по C++; автору удалось понятно написать о сложных вещах.


У меня скорее претензии не к тому как написана эта книга. Написана она хорошо, и читается легко. Для самообразования, чтобы не закиснуть, прочитать полезно. Только вот зачем они, эти сложные вещи? Они кому-нибудь помогли в работе?
Re[4]: Top 5 C/C++ must read books
От: Faust Россия  
Дата: 07.09.09 15:47
Оценка:
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, igna, Вы писали:


I>>Здравствуйте, Константин, Вы писали:


К>>>Для top-5 мне кажется нужно выкинуть Александреску и стандарт. Первое — более-менее бесполезные игрушки, которые стоит читать только людям с окрепшей психикой.


I>>Не надо выкидывать Александреску, это в некотором смысле лучшая книга по C++; автору удалось понятно написать о сложных вещах.


К>У меня скорее претензии не к тому как написана эта книга. Написана она хорошо, и читается легко. Для самообразования, чтобы не закиснуть, прочитать полезно. Только вот зачем они, эти сложные вещи? Они кому-нибудь помогли в работе?

конечно!!!
1. многого стоит одна лишь структура Type2Type
2. глава про стратегии вообще меняет подход к разработке кода, особенно библиотечного
Мой компьютер прогоняет бесконечный цикл за 9 секунд, но, мне кажется, он мог бы сделать это быстрее...
Re[5]: Top 5 C/C++ must read books
От: Константин Россия  
Дата: 07.09.09 15:57
Оценка:
Здравствуйте, Faust, Вы писали:

К>>У меня скорее претензии не к тому как написана эта книга. Написана она хорошо, и читается легко. Для самообразования, чтобы не закиснуть, прочитать полезно. Только вот зачем они, эти сложные вещи? Они кому-нибудь помогли в работе?

F>конечно!!!
F>1. многого стоит одна лишь структура Type2Type
F>2. глава про стратегии вообще меняет подход к разработке кода, особенно библиотечного

Насчёт разработки библиотек общего назначения наверное соглашусь. Собственно там мне и видится применение всех этих техник. Хотя умный указатель типа boost::shared_ptr мне кажется более жизнеспособным, чем предлагаемый Александреску policy-based указатель.

Вот интересно, были ли применения за рамками библиотечного кода и если были, то какие?
Особенно интересует описанное в главах 3, 5-11. Насчёт глав 1,2,4 согласен, что они интересные и могут находить применения.
Re[6]: Top 5 C/C++ must read books
От: Faust Россия  
Дата: 07.09.09 16:11
Оценка:
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, Faust, Вы писали:


К>>>У меня скорее претензии не к тому как написана эта книга. Написана она хорошо, и читается легко. Для самообразования, чтобы не закиснуть, прочитать полезно. Только вот зачем они, эти сложные вещи? Они кому-нибудь помогли в работе?

F>>конечно!!!
F>>1. многого стоит одна лишь структура Type2Type
F>>2. глава про стратегии вообще меняет подход к разработке кода, особенно библиотечного

К>Хотя умный указатель типа boost::shared_ptr мне кажется более жизнеспособным, чем предлагаемый Александреску policy-based указатель.

boost::shared_ptr не реализует стратегию многопоточности, а иногда необходимость в этом возникает...

К>Вот интересно, были ли применения за рамками библиотечного кода и если были, то какие?

К>Особенно интересует описанное в главах 3, 5-11. Насчёт глав 1,2,4 согласен, что они интересные и могут находить применения.
не помню главы по нумерации... в коммерческих проектах использовал Loki::SmallObject, Loki::SmartPtr, Loki::Singleton, Loki::Factory
Мой компьютер прогоняет бесконечный цикл за 9 секунд, но, мне кажется, он мог бы сделать это быстрее...
Re[7]: Top 5 C/C++ must read books
От: Faust Россия  
Дата: 07.09.09 16:38
Оценка:
Здравствуйте, Faust, Вы писали:

F>Здравствуйте, Константин, Вы писали:


К>>Здравствуйте, Faust, Вы писали:


К>>>>У меня скорее претензии не к тому как написана эта книга. Написана она хорошо, и читается легко. Для самообразования, чтобы не закиснуть, прочитать полезно. Только вот зачем они, эти сложные вещи? Они кому-нибудь помогли в работе?

F>>>конечно!!!
F>>>1. многого стоит одна лишь структура Type2Type
F>>>2. глава про стратегии вообще меняет подход к разработке кода, особенно библиотечного

К>>Хотя умный указатель типа boost::shared_ptr мне кажется более жизнеспособным, чем предлагаемый Александреску policy-based указатель.

F>boost::shared_ptr не реализует стратегию многопоточности, а иногда необходимость в этом возникает...

К>>Вот интересно, были ли применения за рамками библиотечного кода и если были, то какие?

К>>Особенно интересует описанное в главах 3, 5-11. Насчёт глав 1,2,4 согласен, что они интересные и могут находить применения.
F>не помню главы по нумерации... в коммерческих проектах использовал Loki::SmallObject, Loki::SmartPtr, Loki::Singleton, Loki::Factory
более того, самописный класс string, реализованный с применением Loki::SmallObject, в gui-шном приложении, интенсивно использующем опрос контролов, возвращающих значение в виде строки не боле 64 байт, дал прирост производительности в 20-30 процентов. хотя именно в отношении класса Loki::SmallObject я испытывал наибольший скептицизм.
Мой компьютер прогоняет бесконечный цикл за 9 секунд, но, мне кажется, он мог бы сделать это быстрее...
Re[3]: C/C++ must read books
От: LaptevVV Россия  
Дата: 08.09.09 06:40
Оценка:
Здравствуйте, igna, Вы писали:

LVV>>1. Джоссатисс. Стандартная библиотека С++

I>Может быть у меня старое издание этой книги, но на странице 341 читаю про std::find:
I>

I>... returns the position of the first element in the range [beg,end) that has a value equal to value.

find тупо ищет заданный элемент в интервале. Если найден, то итератор указывает на него. Если не найден, то итератор равен end().
I>А на странице 411 про std::includes:
I>

I>... for each element in [searchBeg,searchEnd) there must be an equal element in [beg,end).

I>И кажется мне, что equal в первом предложение означает как бы не совсем то, что equal во предложении втором. Это только кажется?
А includes тупо проверяет, все ли элементы одного интервала входят во второй. Если все -то ок, если нет, то false.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: C/C++ must read books
От: igna Россия  
Дата: 08.09.09 08:27
Оценка:
Здравствуйте, LaptevVV, Вы писали:

I>>И кажется мне, что equal в первом предложение означает как бы не совсем то, что equal во предложении втором. Это только кажется?

LVV>А includes тупо проверяет, все ли элементы одного интервала входят во второй. Если все -то ок, если нет, то false.

Видимо я чересчур туманно выразился. Открытым текстом: equal в первом предложении означает x == y, equal во втором предложении означает !(x < y || y < x). Прошу привести ссылку на то место в книге Josuttis-а, где на это различие обращается внимание.
Re[5]: C/C++ must read books
От: LaptevVV Россия  
Дата: 08.09.09 13:14
Оценка: 8 (1)
Здравствуйте, igna, Вы писали:

I>Здравствуйте, LaptevVV, Вы писали:


I>>>И кажется мне, что equal в первом предложение означает как бы не совсем то, что equal во предложении втором. Это только кажется?

LVV>>А includes тупо проверяет, все ли элементы одного интервала входят во второй. Если все -то ок, если нет, то false.

I>Видимо я чересчур туманно выразился. Открытым текстом: equal в первом предложении означает x == y, equal во втором предложении означает !(x < y || y < x). Прошу привести ссылку на то место в книге Josuttis-а, где на это различие обращается внимание.

Дома поищу.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: C/C++ must read books
От: LaptevVV Россия  
Дата: 10.09.09 05:53
Оценка:
Здравствуйте, igna, Вы писали:

I>Может быть у меня старое издание этой книги, но на странице 341 читаю про std::find:

I>

I>... returns the position of the first element in the range [beg,end) that has a value equal to value.

В русском переводе на стр. 340 написано так:

возвращает позицию первого элемента со значением value в интервале [begin, end).

I>А на странице 411 про std::includes:
I>

I>... for each element in [searchBeg,searchEnd) there must be an equal element in [beg,end).

В русском переводе на стр. 401 написано так:

для каждого элемента интервала [searchBeg,searchEnd) должен существовать равный элемент в интервале [beg,end)

ИМХО, нормально написано.

Открытым текстом: equal в первом предложении означает x == y, equal во втором предложении означает !(x < y || y < x). Прошу привести ссылку на то место в книге Josuttis-а, где на это различие обращается внимание.

Не нашел. Но видимо объясняется тем, что для inludes интервалы должны быть сортированы (b тогда можно сравнивать на больше-меньше), а find выполняет поиск в несортированной последовательности (годится только явное точное сравнение).
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: C/C++ must read books
От: igna Россия  
Дата: 10.09.09 07:46
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>В русском переводе на стр. 401 написано так:

LVV>для каждого элемента интервала [searchBeg,searchEnd) должен существовать равный элемент в интервале [beg,end)

LVV>ИМХО, нормально написано.

Нормально, нормально. Просто x равный y означает здесь не x == y, а !(x < y || y < x). Всего-то.

LVV>Не нашел. Но видимо объясняется тем, что для inludes интервалы должны быть сортированы (b тогда можно сравнивать на больше-меньше), а find выполняет поиск в несортированной последовательности (годится только явное точное сравнение).


Ну конечно же, читатель сам должен догадаться.

Нет, серьезно, даже если рассматривать эту книгу как книгу для новичков, как можно до такой степени упрощать? Читатель может ведь получить ложное чувство того, что все понял и во всем разобрался, а потом и программировать в таком же духе, наобум. Или у автора договоренность с Мейерсом, чтобы оставить часть знаний для поднявшихся на следующую ступень посвящения?

PS. Из этой книги, вернее из ее предшественницы на немецком языке я узнал про STL в 1997 году. То есть скорее можно было бы ожидать, что мое субъективное пристрастное отношение к ней будет положительным. Ан нет, не сложилось. STL — да, Josuttis — нет.

PPS. Вот правильная книга.
Re[5]: C/C++ must read books
От: LaptevVV Россия  
Дата: 10.09.09 08:45
Оценка:
Здравствуйте, igna, Вы писали:

I>PS. Из этой книги, вернее из ее предшественницы на немецком языке я узнал про STL в 1997 году. То есть скорее можно было бы ожидать, что мое субъективное пристрастное отношение к ней будет положительным. Ан нет, не сложилось. STL — да, Josuttis — нет.

Я использую как справочник.
I>PPS. Вот правильная книга.
Перевод тоже был. Но учить по ней невозможно. Еще более справочник, чем Josuttis
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: C/C++ must read books
От: igna Россия  
Дата: 10.09.09 09:31
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Я использую как справочник.

I>>PPS. Вот правильная книга.
LVV>Перевод тоже был. Но учить по ней невозможно. Еще более справочник, чем Josuttis

По чему же учить-то?
Re[9]: C/C++ must read books
От: jazzer Россия Skype: enerjazzer
Дата: 10.09.09 10:03
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


J>>И с чем ты там не согласен? Вроде все претензии адекватны.


I>С общей оценкой. Претензии адекватны, но это не ляпсусы как у Josuttis-а, а далеко не очевидные ошибки аналогичные, скажем, ошибкам стандарта.

Ничего не могу сказать, не читал.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[10]: C/C++ must read books
От: igna Россия  
Дата: 10.09.09 10:29
Оценка:
Здравствуйте, jazzer, Вы писали:

I>>С общей оценкой. Претензии адекватны, но это не ляпсусы как у Josuttis-а, а далеко не очевидные ошибки аналогичные, скажем, ошибкам стандарта.

J>Ничего не могу сказать, не читал.

Претензии-то там, на странице, ссылку на которую ты дал:

The most unsatisfactory thing about the book is that its contents deviate from what the Standard says and, what is dangerous, it authoritatively miss-states things. For example the book claims that

1. "For all the container classes defined by STL, if an exception is thrown during calls to the following member functions insert (single element insert), push_back, push_front the container is left unaltered and the exception is rethrown". Whereas the C++ Standard gives such strong guarantee for the overloaded member functions insert of classes vector and deque only on condition that the copy constructor and the copy assignment operator of the type T used to instantiate the container do not throw while inserting, see 23.2.1.3/2 and 23.2.4.3/1 of the Standard.

2. "For all the container classes defined by STL, no exception is thrown during calls to the following member functions erase (single element erase), pop_back, pop_front". Again the book fails to acknowledge that the C++ Standard gives the no-throw guarantee for the overloaded member functions erase of classes vector and deque only on condition that the copy constructor and the copy assignment operator of the type T used to instantiate the container do not throw while erasing, see 23.2.1.3/6 and 23.2.4.3/5 of the Standard.

The above over-confident statements could be partially justified, had the STL part of Dinkumware's Standard C++ library presented in the book delivered what the book claims. But, having studied the code of vector and deque, I can say that is not the case.

3. "The member function swap makes additional promises for all container classes defined by STL the member function throws an exception only if the container stores an allocator object al, and al throws an exception when copied". That's another mistake, for the Standard promises something completely different "no swap function throws an exception unless that exception is thrown by the copy constructor or assignment operator of the container's Compare object" (23.1/10).

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.