Что понравилось:
Детально на примерах разбирает SOLID.
Причем, выясняется, что границы между ними размыты, они диффундируют друг в друга
Прекрасно разбирает паттерны как некоторый уровень архитектуры.
Опять прекрасно показывает разнообразные варианты реализации и сравнивает их. Показывает плюсы и минусы всех паттернов.
Описывает Затирание типа и Внешний полиморфизм.
Прекрасно разъяснил CRTP в сравнеии с виртуальными функциями.
СУПЕР!
В общем еще не дочитал, но впечатления — прекрасные.
Взять к нему Федора Пикуса и Чистую архитектуру Мартина — супер для уяснения неясных вещей.
С++ вплоть до С++20.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>>>https://bhv.ru/product/proektirovanie-programm-na-c/ SO_>>Один только вопрос: какая бумага у этой книги? Все книги от bhv, что я встречал/покупал были на тонкой серой говнобумаге. LVV>Бумага — белая. Как у всех книг О'Reilly
SO_>А я заказал. Озон для меня еще более удобен, нежели яндекс маркет, а с вб я дел и вовсе не имел.
Я в Читай-городе, непосредственно в издательствах.
Ну, и в Лабиринте — там довольно давно не заказывал. У них тоже какие-то проблемы были.
С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
LVV>С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии...
О, известная песня. Я там букинистику по две недели ждал с отменой доставки.
На новых книгах у меня такого опыта не было (да и не заказывал я там еще книги).
Остальные же товары почти всегда приходят в срок или с умеренным ожиданием.
LVV>>С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии... SO_>О, известная песня. Я там букинистику по две недели ждал с отменой доставки.
Да, именно это. SO_>На новых книгах у меня такого опыта не было (да и не заказывал я там еще книги).
С новыми тоже не замечал SO_>Остальные же товары почти всегда приходят в срок или с умеренным ожиданием.
Остальные товары — да, в строк.
Но я там амло заказывал — пару-тройку раз всего
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
сейчас такое модно? По-моему, лютый оверинжиниринг.
Ещё как пример для принципа Лискоу использовали избитый пример квадрата и прямоугольника. Ну ёлы-палы, если пишешь книгу, ну придумай свой пример. Да и как-то таких мелких замечаний много. Код не экономит (вышеприведённый пример он развалил на две страницы). Код у него занимает до половины полезного места. Это кмк показывает не совсем добросовестный подход. Прямо себя вспомнил когда диплом писал — как бы поширше расставить, чтобы объем набрать.
Оригинальная книга на англ: C++ Software Design by Klaus Iglberger, Oreilly. У них там даже есть список исправлений https://www.oreilly.com/catalog/errata.csp?isbn=0636920600909
Может в русской версии уже исправили конечно, но глянуть не помешает.
SP>сейчас такое модно?
Судя по тому, что члены классов не инициализируются при декларации — нет, дело не в моде. SP>По-моему, лютый оверинжиниринг.
Почему? Из-за дороговизны std::function?
Видите ли, C++ не поддерживает шаблонных виртуальных функций, а из-за этого приходится заниматься стиранием типа, что, конечно, дорого: либо через std::function, либо посредством signal-slot механизма.
Здравствуйте, B0FEE664, Вы писали:
SP>>По-моему, лютый оверинжиниринг. BFE>Почему? Из-за дороговизны std::function?
видимо уже не лютый
Два уровня абстракции: виртальные функции и std::function. Тогда как стоит одна задача: просто отрисовать фигуру. Тут либо запихивать всю логику отрисовки в метод draw, либо переходить на ФП и std::visit и убирать виртуальные функции.
SP>>>По-моему, лютый оверинжиниринг. BFE>>Почему? Из-за дороговизны std::function? SP>видимо уже не лютый SP>Два уровня абстракции: виртальные функции и std::function. Тогда как стоит одна задача: просто отрисовать фигуру. Тут либо запихивать всю логику отрисовки в метод draw, либо переходить на ФП и std::visit и убирать виртуальные функции.
А ты почитай.
Автор там самыми разными способами с помощью паттернов демонстрирует разрыв зависимостей.
И даже показывает измерения производительности разных конструкций в двух компиляторах: gcc и clang
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>>>https://bhv.ru/product/proektirovanie-programm-na-c/ SO_>>Один только вопрос: какая бумага у этой книги? Все книги от bhv, что я встречал/покупал были на тонкой серой говнобумаге. LVV>Бумага — белая. Как у всех книг О'Reilly
Книга пришла.
Что можно сказать о бумаге:
У БХВ очень популярна серая очень тонкая бумага.
С другой стороны, есть издательства, которые издают на бумаге очень белой, твердой (плотной), такую и листать-то трудно.
А большинство издают на бумаге средней плотности, которую приятно листать.
Данная книга превзошла мои ожидания, цвет страниц НЕ серый, он белый, что весьма здорово.
Плотность страницы выше, чем у крайности, описанной первой, но не дотягивает до стандарта — ее несложно смять.
В принципе, норм.
Здравствуйте, LaptevVV, Вы писали:
LVV>С озоном имел дело несколько лет, пока они не испортились — пару раз мне не присылали книжки, хотя у них числилось, что в наличии...
Это проблема не всего озона, а только конкретного продавца
Кстати, интересно, а есть магазины, где можно PDF покупать? Я не люблю физические книги, так как в них проблемно правки вносить. Теоретически, если ты купил электронную книгу, которая потом обновилась — ты можешь получить исправленную версию.
Ну, т.е. это не обязательно PDF, а мог быть какой-то проприетарный формат + читалка. Или он-лайн что-то, с регистрацией.
CEM>Кстати, интересно, а есть магазины, где можно PDF покупать? Я не люблю физические книги, так как в них проблемно правки вносить. Теоретически, если ты купил электронную книгу, которая потом обновилась — ты можешь получить исправленную версию.
Ну, можно зайти на любой сайт издательства и там вполне продают pdf
Хоть Питер, хоть БХВ, хоть ДМК Пресс.
У некоторых pdf стоит дешевле. У некоторых — столько же.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, sergii.p, Вы писали:
SP>Два уровня абстракции: виртальные функции и std::function. Тогда как стоит одна задача: просто отрисовать фигуру. Тут либо запихивать всю логику отрисовки в метод draw, либо переходить на ФП и std::visit и убирать виртуальные функции.
Допустим вы сделали отрисовку и она работает на экране. Теперь то же самое надо отрисовать на принтере. Если просто нарисовать то же самое, что на экране, то из-за разности в разрешении получится такая мааааааааааааленькая картинка где-то в углу бумажного листа. Есть два пути решения: 1) не использовать возможности принтера и тупо рисовать экран как битмап, масштабируя каждый пиксел в квадрат (выглядит это как дешёвое решение, но страдающих дальнозоркостью такое устроит), 2) написать специальную отрисовку для принтера.
Итак, если вам надо сделать отрисовку по второму варианту, то как вы это будете делать? Перепишите все классы отрисовки тем самым практически удвоив количество классов? Или параметризуете каждый класс функциями отрисовки под устройство отображения? Или перейдёте на ФП и std::visit вообще переписав всё?
SP>сейчас такое модно? По-моему, лютый оверинжиниринг.
SP>Ещё как пример для принципа Лискоу использовали избитый пример квадрата и прямоугольника. Ну ёлы-палы, если пишешь книгу, ну придумай свой пример. Да и как-то таких мелких замечаний много. Код не экономит (вышеприведённый пример он развалил на две страницы). Код у него занимает до половины полезного места. Это кмк показывает не совсем добросовестный подход. Прямо себя вспомнил когда диплом писал — как бы поширше расставить, чтобы объем набрать.
Может кто знает книгу, в которой описаны все новые фичи после C++98, причём именно в скомпонованном виде? Я его неплохо знал когда-то, а новые стандарты уже прошли мимо меня, хочу актуализировать знания, не тратя время на чтене того, что я и так знаю.