Архитектура и дизайн современных C++ приложений
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.12.20 03:35
Оценка: 6 (2) +2
Возникло желание почитать чего-нибудь нового (книгу, если конкретнее) про архитектуру и дизайн C++ приложений. Звучит довольно обобщенно, но последнее дельное что я читал на этот счет было Александреску, "Дизайн современных приложений на C++", которую, конечно, можно и наверное нужно перечитать, но может что-то посвежее вышло?

В качестве уточнения: я НЕ говорю ни про CppCoreGuidelines, ни про Effective * C++, которые больше про сам язык, нежели про дизайн. А хочется именно про дизайн. И The Architecture of Open Source Applications тоже не то, так как там больше про высокоуровневый дизайн без привязки к языку.
Re: Архитектура и дизайн современных C++ приложений
От: fdn721  
Дата: 14.12.20 03:58
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Возникло желание почитать чего-нибудь нового (книгу, если конкретнее) про архитектуру и дизайн C++ приложений. Звучит довольно обобщенно, но последнее дельное что я читал на этот счет было Александреску, "Дизайн современных приложений на C++", которую, конечно, можно и наверное нужно перечитать, но может что-то посвежее вышло?


KP>В качестве уточнения: я НЕ говорю ни про CppCoreGuidelines, ни про Effective * C++, которые больше про сам язык, нежели про дизайн. А хочется именно про дизайн. И The Architecture of Open Source Applications тоже не то, так как там больше про высокоуровневый дизайн без привязки к языку.


А чем должен отличатся дизайн С++ приложения от C# или Java приложения, если не учитывать особенности языка, платформы, UI библиотек?
Re: Архитектура и дизайн современных C++ приложений
От: Homunculus Россия  
Дата: 14.12.20 04:02
Оценка: +2
Здравствуйте, kaa.python, Вы писали:

А разве не зависит от фреймворка?
Например, приложение на Qt. C++? C++. Но например те же сигнал-слоты могут офигенно повлиять на архитектуру.
Re: Архитектура и дизайн современных C++ приложений
От: LaptevVV Россия  
Дата: 14.12.20 04:12
Оценка: 16 (2)
Ну вот прям про архитектуру нет, но мне понравились книжки федора Пикуса и Ивана Чукича.
У Пикуса обнаружил перегрузку лямбд, а Чукич — это вообще функциональное программирование на С++.
1. Пикус: https://www.labirint.ru/books/714256/
2. Чукич: https://www.labirint.ru/books/735552/
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Отредактировано 14.12.2020 10:26 LaptevVV . Предыдущая версия .
Re[2]: Архитектура и дизайн современных C++ приложений
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.12.20 04:12
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>А разве не зависит от фреймворка?

H>Например, приложение на Qt. C++? C++. Но например те же сигнал-слоты могут офигенно повлиять на архитектуру.

Qt — это отдельный мир и по нему свои руководства, что правильно и ожидаемо. Я же говорю про сам C++, в так сказать безфреймворковой его ипостаси. И, да, если убрать базирующиеся на Qt решения, то все остальные дизайн-решения будут более-менее подчиняться во многом схожим принципам и парадигмам. Так что нечто обобщенное типа "Дизайн современных приложений на C++" вполне возможно и сейчас.
Re[3]: Архитектура и дизайн современных C++ приложений
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.12.20 06:29
Оценка: +3
Здравствуйте, kaa.python, Вы писали:

H>>А разве не зависит от фреймворка?

H>>Например, приложение на Qt. C++? C++. Но например те же сигнал-слоты могут офигенно повлиять на архитектуру.

KP>Qt — это отдельный мир и по нему свои руководства, что правильно и ожидаемо. Я же говорю про сам C++, в так сказать безфреймворковой его ипостаси.


А такая вообще существует? Что-то у меня сильнейшие сомнения.

KP> И, да, если убрать базирующиеся на Qt решения, то все остальные дизайн-решения будут более-менее подчиняться во многом схожим принципам и парадигмам. Так что нечто обобщенное типа "Дизайн современных приложений на C++" вполне возможно и сейчас.


С чего такой вывод?
То, что я вижу — что >90% зависимость от задачи и среды запуска. Среда это и платформа (Unix/Windows/Embedded/etc.), и режим запуска (простой десктоп/игра/демон/...), и множество других факторов.
The God is real, unless declared integer.
Re[4]: Архитектура и дизайн современных C++ приложений
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.12.20 07:02
Оценка:
Здравствуйте, netch80, Вы писали:

N>А такая вообще существует? Что-то у меня сильнейшие сомнения.


Я считаю что "Дизайн современных приложений на C++" вполне соответствует такому описанию.
Re: Архитектура и дизайн современных C++ приложений
От: PM  
Дата: 14.12.20 08:12
Оценка: 24 (1)
Здравствуйте, kaa.python, Вы писали:

Не так давно вышла arge-Scale C++ Volume I: Process and Architecture by John Lakos

Насколько я понимаю, это обновленная Large-Scale C++ Software Design, выросшая до 2-х томника. Честно говоря, не читал ее, как и не осилил до конца оригинал. Как-то много воды и очевидных вещей было там, насколько я помню.
Re[2]: Архитектура и дизайн современных C++ приложений
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.12.20 08:20
Оценка:
Здравствуйте, PM, Вы писали:

PM>Не так давно вышла arge-Scale C++ Volume I: Process and Architecture by John Lakos


PM>Насколько я понимаю, это обновленная Large-Scale C++ Software Design, выросшая до 2-х томника. Честно говоря, не читал ее, как и не осилил до конца оригинал. Как-то много воды и очевидных вещей было там, насколько я помню.


О, это тот перец что написал "C++ Network Programming"! Спасибо, может быть эта книга и хорошо зайдет
Re[2]: Архитектура и дизайн современных C++ приложений
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.12.20 08:28
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Ну вот прям про архитектуру нет, но мне понравились книжки федора Пикуса и Ивана Чукича.

LVV>У Пикуса обнаружил перегрузку лябд, а Чукич — это вообще функциональное программирование на С++.
LVV>1. Пикус: https://www.labirint.ru/books/714256/
LVV>2. Чукич: https://www.labirint.ru/books/735552/

Функциональное программирование на C++ — это дикая идея которой не место за пределами академических кругов. Даже модные, как бы функциональные ranges это та ещё засада.
Re: Архитектура и дизайн современных C++ приложений
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 14.12.20 09:28
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>можно и наверное нужно перечитать, но может что-то посвежее вышло?

Кмк, наверное тебе самом пора что-нибудь написать.
Sic luceat lux!
Re[3]: Архитектура и дизайн современных C++ приложений
От: LaptevVV Россия  
Дата: 14.12.20 10:26
Оценка:
KP>Функциональное программирование на C++ — это дикая идея которой не место за пределами академических кругов. Даже модные, как бы функциональные ranges это та ещё засада.
Не согласен.
Напротив, С++20 очень даже позволяет функциональщикам ваять на С++.
Книжку почитай.
Я читал много чего. Эта книжка как-то свежим ветром показалась.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Архитектура и дизайн современных C++ приложений
От: reversecode google
Дата: 14.12.20 10:48
Оценка:
один из вариантов деградации сеньоров, не могу сам создавать что то новое
восхищаюсь тем что сделали другие ну или в его случае — читаю
Re[2]: Архитектура и дизайн современных C++ приложений
От: reversecode google
Дата: 14.12.20 10:50
Оценка:
полистал старую версию, 16 года кажется — вода
стянул полистал 19 года, та же вода

ощущение что эта книга нужна для деградирующих синьоров что бы с умным видом дискутировать на собеседованиях
Re: Архитектура и дизайн современных C++ приложений
От: reversecode google
Дата: 14.12.20 10:53
Оценка: +1 -1
стягиваете любой большой опенсорс проект
и изучаете так что бы на зубок как войну и мир
и дизайн и архитектура все одном
Re[3]: Архитектура и дизайн современных C++ приложений
От: PM  
Дата: 14.12.20 11:37
Оценка: +1
Здравствуйте, reversecode, Вы писали:

R>полистал старую версию, 16 года кажется — вода

R>стянул полистал 19 года, та же вода

Значит мне не одному так показалось. И от выступлений John Lakos у меня примерно то же самое — говорит много, а информации как-то новой не узнаешь.

R>ощущение что эта книга нужна для деградирующих синьоров что бы с умным видом дискутировать на собеседованиях


Каждый деградирует в меру своих способностей. Не представляю что можно спрашивать на собеседованиях из той книги. Когда следует использовать угловые скобки а когда кавычки в #include директивах? Можно ли использовать только заголовочные файлы без .cpp? Хранить тесты рядом с реализацией или в отдельном каталоге tests? Собирать монолитный кусок из статических библиотек или разбивать подсистемы по динамическим библиотекам?

По-моему, у сеньора, который видел некоторое дерьмо в проектах, любой ответ на собеседовании должен начинаться с "это зависит от ..."
Re[2]: Архитектура и дизайн современных C++ приложений
От: PM  
Дата: 14.12.20 11:40
Оценка:
Здравствуйте, reversecode, Вы писали:

R>стягиваете любой большой опенсорс проект

R>и изучаете так что бы на зубок как войну и мир
R>и дизайн и архитектура все одном

Можно парочку примеров, или место где "и дизайн и архитектура все в одном", например в OpenSSL?

p.s. Ядро Linux не предлагать — жизни не хватит его изучить на зубок.
Re[3]: Архитектура и дизайн современных C++ приложений
От: reversecode google
Дата: 14.12.20 11:49
Оценка:
представим, приходите вы на собеседование
а вам — ну ка дизайн и архитектуру опенссл расскажите
а вы — ой ну там %?%?%?%, я вот умную книжку читал...
вам — то есть 99% в мире используют ее, даже с других языков врапперы над опенссл а вы что то имеете против ? до свидания!

умение делать хорошо и правильно выводится из знания о том что такое плохо и не правильно

и согласен, опенссл не есть идеал архитектуры и дизайна
Re[4]: Архитектура и дизайн современных C++ приложений
От: reversecode google
Дата: 14.12.20 12:07
Оценка:
в разных компаниях по разному воспринимается слово синьор

в некоторых это тот кто может писать на бумажке компилируемый безглючный код
в других это ментор который будет надзирателем и перед мержем в основную ветку высматривать неявные программные и архитектурые ляпы
итд

я сопоставляю вопрос тс его хотелки
и понял как синьор — архитектор

вот и представляем как вы к примеру приходите на собеседование в клаудфаер

и вам с порога — что вы знаете про опенссл ?
а вы — да какая то ?(*?(**?: либа

они — а расскажите нам как работает dtls
вы — да че там рассказывать вон рфц и +100500 либ на гит хабе

они — а как бы вы задизайнили и архитектурно построили свой аналог опенссл ?
вы — да кучу интерфейсов С++ налепил, и разложил это по хидер файликам, а файлики раскидал по отдельным каталогам, а каталоги поиемновал именами интерфесов
это ж удобно?! как в яве +100500 деревовидных вложений

они — спасибо! вы превосходный программист! желаем вам удачной карьеры! мы с вами свяжемся!

пип пип пип пип......
Re[2]: Архитектура и дизайн современных C++ приложений
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.12.20 12:54
Оценка:
Здравствуйте, Kernan, Вы писали:

KP>>можно и наверное нужно перечитать, но может что-то посвежее вышло?

K>Кмк, наверное тебе самом пора что-нибудь написать.

Думаю что на пенсии. У меня пока что упорства только на выступления на митапах хватает. Там сильно меньше затрат энергии, а отдача высокая
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.