Шикарная книга по С++
От: LaptevVV Россия  
Дата: 14.08.24 13:31
Оценка: 10 (2) +1
В издательстве БХВ
В магазинах не нашел

https://bhv.ru/product/proektirovanie-programm-na-c/

Содержание и полистать: https://online.anyflip.com/ulhe/cclk/mobile/index.html

Что понравилось:
Детально на примерах разбирает SOLID.
Причем, выясняется, что границы между ними размыты, они диффундируют друг в друга

Прекрасно разбирает паттерны как некоторый уровень архитектуры.
Опять прекрасно показывает разнообразные варианты реализации и сравнивает их. Показывает плюсы и минусы всех паттернов.
Описывает Затирание типа и Внешний полиморфизм.
Прекрасно разъяснил CRTP в сравнеии с виртуальными функциями.
СУПЕР!

В общем еще не дочитал, но впечатления — прекрасные.
Взять к нему Федора Пикуса и Чистую архитектуру Мартина — супер для уяснения неясных вещей.

С++ вплоть до С++20.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Шикарная книга по С++
От: SomeOne_TT  
Дата: 14.08.24 15:00
Оценка: -1
Здравствуйте, LaptevVV, Вы писали:

LVV>В издательстве БХВ

LVV>В магазинах не нашел

LVV>https://bhv.ru/product/proektirovanie-programm-na-c/


Один только вопрос: какая бумага у этой книги? Все книги от bhv, что я встречал/покупал были на тонкой серой говнобумаге.

P.S.
Она же на озоне (с доставкой!) дешевле, чем на сайте издательства
https://www.ozon.ru/product/proektirovanie-programm-na-c-1615279665
Отредактировано 14.08.2024 15:43 SomeOne_TT . Предыдущая версия .
Re[2]: Шикарная книга по С++
От: LaptevVV Россия  
Дата: 14.08.24 17:10
Оценка:
LVV>>https://bhv.ru/product/proektirovanie-programm-na-c/
SO_>Один только вопрос: какая бумага у этой книги? Все книги от bhv, что я встречал/покупал были на тонкой серой говнобумаге.
Бумага — белая. Как у всех книг О'Reilly
SO_>P.S.
SO_>Она же на озоне (с доставкой!) дешевле, чем на сайте издательства
SO_>https://www.ozon.ru/product/proektirovanie-programm-na-c-1615279665
C озоном стараюсь дел не иметь.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Шикарная книга по С++
От: SomeOne_TT  
Дата: 14.08.24 20:45
Оценка: -1
Здравствуйте, LaptevVV, Вы писали:

LVV>>>https://bhv.ru/product/proektirovanie-programm-na-c/

SO_>>Один только вопрос: какая бумага у этой книги? Все книги от bhv, что я встречал/покупал были на тонкой серой говнобумаге.
LVV>Бумага — белая. Как у всех книг О'Reilly

Хм, интересно, спасибо. Видимо, статистики маловато.

SO_>>P.S.

SO_>>Она же на озоне (с доставкой!) дешевле, чем на сайте издательства
SO_>>https://www.ozon.ru/product/proektirovanie-programm-na-c-1615279665
LVV>C озоном стараюсь дел не иметь.

А я заказал. Озон для меня еще более удобен, нежели яндекс маркет, а с вб я дел и вовсе не имел.
Re[4]: Шикарная книга по С++
От: LaptevVV Россия  
Дата: 15.08.24 03:28
Оценка:
SO_>А я заказал. Озон для меня еще более удобен, нежели яндекс маркет, а с вб я дел и вовсе не имел.
Я в Читай-городе, непосредственно в издательствах.
Ну, и в Лабиринте — там довольно давно не заказывал. У них тоже какие-то проблемы были.
С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Шикарная книга по С++
От: SomeOne_TT  
Дата: 15.08.24 04:17
Оценка: -1
Здравствуйте, LaptevVV, Вы писали:


LVV>С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии...


О, известная песня. Я там букинистику по две недели ждал с отменой доставки.
На новых книгах у меня такого опыта не было (да и не заказывал я там еще книги).
Остальные же товары почти всегда приходят в срок или с умеренным ожиданием.
Re[6]: Шикарная книга по С++
От: LaptevVV Россия  
Дата: 15.08.24 04:45
Оценка:
LVV>>С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии...
SO_>О, известная песня. Я там букинистику по две недели ждал с отменой доставки.
Да, именно это.
SO_>На новых книгах у меня такого опыта не было (да и не заказывал я там еще книги).
С новыми тоже не замечал
SO_>Остальные же товары почти всегда приходят в срок или с умеренным ожиданием.
Остальные товары — да, в строк.
Но я там амло заказывал — пару-тройку раз всего
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Шикарная книга по С++
От: sergii.p  
Дата: 15.08.24 14:39
Оценка:
Здравствуйте, LaptevVV, Вы писали:

полистал, на такое наткнулся

struct Circle: Shape
{
    using DrawStrategy = std::function...;

    Circle(DrawStrategy drawer) : drawer{std::move(drawer)} {}

    void draw() const override {
        drawer_(*this);
    }

private:
    DrawStratagy drawer_
};


сейчас такое модно? По-моему, лютый оверинжиниринг.

Ещё как пример для принципа Лискоу использовали избитый пример квадрата и прямоугольника. Ну ёлы-палы, если пишешь книгу, ну придумай свой пример. Да и как-то таких мелких замечаний много. Код не экономит (вышеприведённый пример он развалил на две страницы). Код у него занимает до половины полезного места. Это кмк показывает не совсем добросовестный подход. Прямо себя вспомнил когда диплом писал — как бы поширше расставить, чтобы объем набрать.
Re: Шикарная книга по С++
От: qqqqq  
Дата: 15.08.24 16:22
Оценка: 4 (1) +1
Оригинальная книга на англ: C++ Software Design by Klaus Iglberger, Oreilly. У них там даже есть список исправлений https://www.oreilly.com/catalog/errata.csp?isbn=0636920600909
Может в русской версии уже исправили конечно, но глянуть не помешает.
Re[2]: Шикарная книга по С++
От: B0FEE664  
Дата: 16.08.24 00:52
Оценка: +1
Здравствуйте, sergii.p, Вы писали:

  Скрытый текст
SP>полистал, на такое наткнулся

SP>
SP>struct Circle: Shape
SP>{
SP>    using DrawStrategy = std::function...;

SP>    Circle(DrawStrategy drawer) : drawer{std::move(drawer)} {}

SP>    void draw() const override {
SP>        drawer_(*this);
SP>    }

SP>private:
SP>    DrawStratagy drawer_
SP>};
SP>


SP>сейчас такое модно?

Судя по тому, что члены классов не инициализируются при декларации — нет, дело не в моде.

SP>По-моему, лютый оверинжиниринг.

Почему? Из-за дороговизны std::function?
Видите ли, C++ не поддерживает шаблонных виртуальных функций, а из-за этого приходится заниматься стиранием типа, что, конечно, дорого: либо через std::function, либо посредством signal-slot механизма.
И каждый день — без права на ошибку...
Re[3]: Шикарная книга по С++
От: sergii.p  
Дата: 16.08.24 11:04
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

SP>>По-моему, лютый оверинжиниринг.

BFE>Почему? Из-за дороговизны std::function?

видимо уже не лютый
Два уровня абстракции: виртальные функции и std::function. Тогда как стоит одна задача: просто отрисовать фигуру. Тут либо запихивать всю логику отрисовки в метод draw, либо переходить на ФП и std::visit и убирать виртуальные функции.
Re[4]: Шикарная книга по С++
От: LaptevVV Россия  
Дата: 16.08.24 16:29
Оценка:
SP>>>По-моему, лютый оверинжиниринг.
BFE>>Почему? Из-за дороговизны std::function?
SP>видимо уже не лютый
SP>Два уровня абстракции: виртальные функции и std::function. Тогда как стоит одна задача: просто отрисовать фигуру. Тут либо запихивать всю логику отрисовки в метод draw, либо переходить на ФП и std::visit и убирать виртуальные функции.
А ты почитай.
Автор там самыми разными способами с помощью паттернов демонстрирует разрыв зависимостей.
И даже показывает измерения производительности разных конструкций в двух компиляторах: gcc и clang
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Шикарная книга по С++
От: SomeOne_TT  
Дата: 20.08.24 11:30
Оценка: -2
Здравствуйте, LaptevVV, Вы писали:

LVV>>>https://bhv.ru/product/proektirovanie-programm-na-c/

SO_>>Один только вопрос: какая бумага у этой книги? Все книги от bhv, что я встречал/покупал были на тонкой серой говнобумаге.
LVV>Бумага — белая. Как у всех книг О'Reilly

Книга пришла.

Что можно сказать о бумаге:
У БХВ очень популярна серая очень тонкая бумага.
С другой стороны, есть издательства, которые издают на бумаге очень белой, твердой (плотной), такую и листать-то трудно.
А большинство издают на бумаге средней плотности, которую приятно листать.

Данная книга превзошла мои ожидания, цвет страниц НЕ серый, он белый, что весьма здорово.
Плотность страницы выше, чем у крайности, описанной первой, но не дотягивает до стандарта — ее несложно смять.
В принципе, норм.
Отредактировано 20.08.2024 11:31 SomeOne_TT . Предыдущая версия .
Re[5]: Шикарная книга по С++
От: CEMb  
Дата: 22.08.24 04:19
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии...

Это проблема не всего озона, а только конкретного продавца

Кстати, интересно, а есть магазины, где можно PDF покупать? Я не люблю физические книги, так как в них проблемно правки вносить. Теоретически, если ты купил электронную книгу, которая потом обновилась — ты можешь получить исправленную версию.
Ну, т.е. это не обязательно PDF, а мог быть какой-то проприетарный формат + читалка. Или он-лайн что-то, с регистрацией.
Re[6]: Шикарная книга по С++
От: LaptevVV Россия  
Дата: 22.08.24 06:09
Оценка:
CEM>Кстати, интересно, а есть магазины, где можно PDF покупать? Я не люблю физические книги, так как в них проблемно правки вносить. Теоретически, если ты купил электронную книгу, которая потом обновилась — ты можешь получить исправленную версию.
Ну, можно зайти на любой сайт издательства и там вполне продают pdf
Хоть Питер, хоть БХВ, хоть ДМК Пресс.
У некоторых pdf стоит дешевле. У некоторых — столько же.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Шикарная книга по С++
От: B0FEE664  
Дата: 22.08.24 10:03
Оценка:
Здравствуйте, sergii.p, Вы писали:

SP>Два уровня абстракции: виртальные функции и std::function. Тогда как стоит одна задача: просто отрисовать фигуру. Тут либо запихивать всю логику отрисовки в метод draw, либо переходить на ФП и std::visit и убирать виртуальные функции.


Допустим вы сделали отрисовку и она работает на экране. Теперь то же самое надо отрисовать на принтере. Если просто нарисовать то же самое, что на экране, то из-за разности в разрешении получится такая мааааааааааааленькая картинка где-то в углу бумажного листа. Есть два пути решения: 1) не использовать возможности принтера и тупо рисовать экран как битмап, масштабируя каждый пиксел в квадрат (выглядит это как дешёвое решение, но страдающих дальнозоркостью такое устроит), 2) написать специальную отрисовку для принтера.

Итак, если вам надо сделать отрисовку по второму варианту, то как вы это будете делать? Перепишите все классы отрисовки тем самым практически удвоив количество классов? Или параметризуете каждый класс функциями отрисовки под устройство отображения? Или перейдёте на ФП и std::visit вообще переписав всё?
И каждый день — без права на ошибку...
Re[2]: Шикарная книга по С++
От: HolyNick  
Дата: 03.09.24 10:56
Оценка:
Здравствуйте, sergii.p, Вы писали:

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


SP>полистал, на такое наткнулся


SP>
SP>struct Circle: Shape
SP>{
SP>    using DrawStrategy = std::function...;

SP>    Circle(DrawStrategy drawer) : drawer{std::move(drawer)} {}

SP>    void draw() const override {
SP>        drawer_(*this);
SP>    }

SP>private:
SP>    DrawStratagy drawer_
SP>};
SP>


SP>сейчас такое модно? По-моему, лютый оверинжиниринг.


SP>Ещё как пример для принципа Лискоу использовали избитый пример квадрата и прямоугольника. Ну ёлы-палы, если пишешь книгу, ну придумай свой пример. Да и как-то таких мелких замечаний много. Код не экономит (вышеприведённый пример он развалил на две страницы). Код у него занимает до половины полезного места. Это кмк показывает не совсем добросовестный подход. Прямо себя вспомнил когда диплом писал — как бы поширше расставить, чтобы объем набрать.


Может, проще?

struct Circle: Shape
{
    Circle() {...}
    void draw(const IPainter& p) const override {
        p.drawCircle(center, radius);
   }
   Point center{0,0};
   int radius{1};
};
Отредактировано 03.09.2024 10:56 HolyNick . Предыдущая версия .
Re[2]: Шикарная книга по С++
От: zx zpectrum  
Дата: 22.09.24 16:28
Оценка: :)
SP>Ещё как пример для принципа Лискоу использовали избитый пример квадрата и прямоугольника. Ну ёлы-палы, если пишешь книгу, ну придумай свой пример.

Гриб, Радиоволна, Ленин, множественное наследование ))
Re: Шикарная книга по С++
От: vsb Казахстан  
Дата: 03.10.24 17:51
Оценка:
Может кто знает книгу, в которой описаны все новые фичи после C++98, причём именно в скомпонованном виде? Я его неплохо знал когда-то, а новые стандарты уже прошли мимо меня, хочу актуализировать знания, не тратя время на чтене того, что я и так знаю.
Re[2]: Посмотри вот эту
От: LaptevVV Россия  
Дата: 03.10.24 18:11
Оценка: 16 (1)
https://dmkpress.com/catalog/computer/programming/c/978-5-93700-134-4/

И вот эту
https://dmkpress.com/catalog/computer/programming/c/978-5-97060-956-9/
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.