Книга по правильной архитектуре .Net проектов
От: Shmj Ниоткуда  
Дата: 30.11.21 06:34
Оценка: -2
Для примера см. 2 ответ: https://rsdn.org/forum/dotnet/8139097.flat
Автор: Shmj
Дата: 23.11.21


Как бы вроде очевидно, что stateful по возможности лучше не использовать. И правда — когда избавился от stateful — несколько лишнего кода удалил.

Но где об этом сказано? Получается, только из уст в уста — четкого свода правил вроде как нет.

Так же вопрос про свойство с типом IAsyncEnumerable вызвал разногласия, но потом вроде как сошлись, что лучше так не делать. Но тогда тот же вопрос со свойствами IEnumerable — когда и где они уместны и уместны ли?

Так же выбор правильных nuget-пакетов. Ведь из каких кирпичей строишь дом — тоже немаловажно.

Ну и множество таких практических вопросов, которые вроде бы и элементарные, но готовых ответов нигде не встречал.

Что можете порекомендовать?
Отредактировано 30.11.2021 6:36 Shmj . Предыдущая версия .
Re: Книга по правильной архитектуре .Net проектов
От: vaa  
Дата: 30.11.21 07:36
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Для примера см. 2 ответ: https://rsdn.org/forum/dotnet/8139097.flat
Автор: Shmj
Дата: 23.11.21


S>Как бы вроде очевидно, что stateful по возможности лучше не использовать.

Куда же без состояния? другое дело что сохраняя его в БД упрощаешь прикладной код своего приложения.

S>Так же выбор правильных nuget-пакетов. Ведь из каких кирпичей строишь дом — тоже немаловажно.

Лучше из подводных камней.
S>Что можете порекомендовать?
Костыль по необходимости.


PS
Думаю достаточно следовать KISS DRY и избегать сложного ООП (шаблоны от более 2-3 параметров, наследование, DDD категорически)

интересная статейка
https://intellect.icu/nedostatki-oop-ddd-domain-driven-design-i-patternov-alternativa-oop-9117
☭ ✊ В мире нет ничего, кроме движущейся материи.
Отредактировано 30.11.2021 7:43 Разраб . Предыдущая версия . Еще …
Отредактировано 30.11.2021 7:41 Разраб . Предыдущая версия .
Re: Книга по правильной архитектуре .Net проектов
От: vitz  
Дата: 30.11.21 08:12
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Что можете порекомендовать?


Dependency Injection in .NET
Re[2]: Книга по правильной архитектуре .Net проектов
От: vaa  
Дата: 30.11.21 08:19
Оценка:
Здравствуйте, vitz, Вы писали:

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


S>>Что можете порекомендовать?


V>Dependency Injection in .NET


фри https://smarly.net/dependency-injection-in-net
неплохая книжка,
но если честно меня смущает, что автор уже несколько лет ходит по конференциям с микро-примером бронирования мест в самолете
и убеждает всех избавляться от зависимостей.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Книга по правильной архитектуре .Net проектов
От: Kolesiki  
Дата: 30.11.21 11:42
Оценка: 6 (1) +2 :)
Здравствуйте, Shmj, Вы писали:

S>Что можете порекомендовать?


Перестать задавать глупые вопросы? Это ведь даже не "вопросы начинающего", а какая-то ахинея. По аналогии: "Ребят, какие формулы мне использовать в математике? Вот синус знаю, котангенс...". И чего ты хочешь от этого тупого вопроса? Есть "общие соображения" по классу задач, может даже 50% общего кода, но "одна архитектура на всё" — не существует. Займись реальными задачами, а не пускай в воздух свои глупые теоретизирования.
Re: Книга по правильной архитектуре .Net проектов
От: vaa  
Дата: 30.11.21 12:26
Оценка:
Здравствуйте, Shmj, Вы писали:



S>Что можете порекомендовать? https://github.com/louthy/language-ext/wiki/Thinking-Functionally:-Application-Architecture
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Книга по правильной архитектуре .Net проектов
От: LaptevVV Россия  
Дата: 30.11.21 16:53
Оценка:
Правильной архитектуры не существует.
Архитектура зависит от решаемых задач.
Пример: компиляторы, IDE, операционные системы, корпоративные системы, настольные системы, облачные системы.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Книга по правильной архитектуре .Net проектов
От: Shmj Ниоткуда  
Дата: 30.11.21 22:28
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Пример: компиляторы, IDE, операционные системы, корпоративные системы, настольные системы, облачные системы.


На .Net из всего перечисленного можно писать только корпоративные системы и, смотря что подразумеваете, облачные системы (не гипервизоры а то что на них крутится). Так что вопрос корректен.

Ни операционные системы ни IDE ни компиляторы нет смысла писать на .Net по очевидным причинам. Т.е. шутки ради можно, конечно, но не более того.
Re[3]: Книга по правильной архитектуре .Net проектов
От: Osaka  
Дата: 30.11.21 22:45
Оценка: +1
S>На .Net из всего перечисленного можно писать только корпоративные системы
Фаулер же. Шаблоны корпоративных приложений.
Re[3]: Книга по правильной архитектуре .Net проектов
От: Doc Россия http://andrey.moveax.ru
Дата: 01.12.21 02:44
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>и убеждает всех избавляться от зависимостей.


Ну так вроде он говорит это в контексте ФП. А для ООП — он за DI.
Пример: https://habr.com/ru/company/jugru/blog/545482/
Re[4]: Книга по правильной архитектуре .Net проектов
От: vaa  
Дата: 01.12.21 04:23
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Ну так вроде он говорит это в контексте ФП. А для ООП — он за DI.

Doc>Пример: https://habr.com/ru/company/jugru/blog/545482/

Ну да, но все это выглядит как продажа пылесоса.
Из той же серии что и Роберт Мартин. Тот тоже носится уже 20 лет с приложением для фитнеса доказывая свое превосходство над простыми смертными.
Ничего не имею против но я несколько раз перечитывал статью но так и не понял преимущества такого подхода. Да еще как средство верификации дублирование на хаскеле.
Больше понравилась вот эта статейка про фп в архитектуре https://github.com/louthy/language-ext/wiki/Thinking-Functionally:-Application-Architecture
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Книга по правильной архитектуре .Net проектов
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.12.21 08:37
Оценка: +7
Здравствуйте, Shmj, Вы писали:

S>Ни операционные системы ни IDE ни компиляторы нет смысла писать на .Net по очевидным причинам. Т.е. шутки ради можно, конечно, но не более того.

Мне даже интересно стало — что, по вашему, мешает написать компилятор на .Net? И на чём бы вы взялись это делать?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Книга по правильной архитектуре .Net проектов
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 01.12.21 15:06
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>Ни операционные системы ни IDE ни компиляторы нет смысла писать на .Net по очевидным причинам. Т.е. шутки ради можно, конечно, но не более того.

S> Мне даже интересно стало — что, по вашему, мешает написать компилятор на .Net? И на чём бы вы взялись это делать?
Присоединюсь к вопросу, но в части IDE.

P.S. Впрочем перечень очевидных причин почему в managed среде (и .Net в частности) тоже было бы интересно увидеть
Re[3]: Книга по правильной архитектуре .Net проектов
От: LaptevVV Россия  
Дата: 01.12.21 16:21
Оценка: +1
LVV>>Пример: компиляторы, IDE, операционные системы, корпоративные системы, настольные системы, облачные системы.
S>На .Net из всего перечисленного можно писать только корпоративные системы и, смотря что подразумеваете, облачные системы (не гипервизоры а то что на них крутится). Так что вопрос корректен.
S>Ни операционные системы ни IDE ни компиляторы нет смысла писать на .Net по очевидным причинам. Т.е. шутки ради можно, конечно, но не более того.
1. Очевидные причины — в студию!
2. Ну, почему же. Никаких шуток.
Оберон, в котором управление памятью осуществляет система,
вполне подходящий язык и для написания компиляторов, и для написания IDE, и для написания операционных систем.
http://people.inf.ethz.ch/wirth/ProjectOberon/index.html
Это вполне себе императивный ОО-язык высокого уровня, который по надежности превосходит (С++ + C# + Java) вместе взятые.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Книга по правильной архитектуре .Net проектов
От: Doc Россия http://andrey.moveax.ru
Дата: 01.12.21 18:13
Оценка: +1
Здравствуйте, vaa, Вы писали:

vaa>Ну да, но все это выглядит как продажа пылесоса.


Почему? Разные парадигмы — разные подходы, согласно этим парадигмам. Вполне логично.
Re[6]: Книга по правильной архитектуре .Net проектов
От: vaa  
Дата: 02.12.21 02:22
Оценка:
Здравствуйте, Doc, Вы писали:

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


vaa>>Ну да, но все это выглядит как продажа пылесоса.


Doc>Почему? Разные парадигмы — разные подходы, согласно этим парадигмам. Вполне логично.


Логично пока ты открыт для доклада, но в докладах существует доля манипуляции.
Нам показывают кусочек кода и доказывают что так намного лучше.
Но ведь избавиться от зависимостей на самом деле нельзя как и от состояния. Как ни крути.
Можно лишь сдвинуть как иногда говорят подальше.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[7]: Книга по правильной архитектуре .Net проектов
От: Doc Россия http://andrey.moveax.ru
Дата: 02.12.21 05:08
Оценка: 5 (1) +1
Здравствуйте, vaa, Вы писали:

Doc>>Почему? Разные парадигмы — разные подходы, согласно этим парадигмам. Вполне логично.

vaa>Логично пока ты открыт для доклада, но в докладах существует доля манипуляции.

И без докладов не вижу ничего странного в "Разные парадигмы — разные подходы". Я понимаю что после ООП тот же подход к реализации DI привычен и его хочется затащить в ФП. Но зачем, если это будет уже начинать напоминать костыль.
Re[2]: Книга по правильной архитектуре .Net проектов
От: Vladek Россия Github
Дата: 02.12.21 11:16
Оценка: 5 (2) +1 -1
Здравствуйте, LaptevVV, Вы писали:

LVV>Правильной архитектуры не существует.

LVV>Архитектура зависит от решаемых задач.
LVV>Пример: компиляторы, IDE, операционные системы, корпоративные системы, настольные системы, облачные системы.

Я где-то прочитал, что существует всего пять типов компьютерных программ и сейчас вспомнить не могу, где это прочитал.

1. Операционные системы
2. Службы
3. Серверы
4. Приложения
5. Игры

Их функции:

1. Обслуживают железо и другие программы.
2. Обслуживают ОС и другие программы.
3. Обслуживают другие программы.
4. Обслуживают пользователя, работают с информацией.
5. Обслуживают пользователя, но не работают с информацией — принципиальное отличие от приложений.
Отредактировано 02.12.2021 11:16 Vladek . Предыдущая версия .
Re: Книга по правильной архитектуре .Net проектов
От: Vladek Россия Github
Дата: 02.12.21 11:22
Оценка: 18 (2)
Здравствуйте, Shmj, Вы писали:

S>Что можете порекомендовать?


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

Одна из лучших книг по теме, которые я когда-либо встречал:

A Philosophy of Software Design by John Ousterhout
Re[2]: Книга по правильной архитектуре .Net проектов
От: Sharov Россия  
Дата: 02.12.21 13:56
Оценка:
Здравствуйте, Vladek, Вы писали:


S>>Что можете порекомендовать?

V>Писать код. Любой более-менее сложный проект сам научит как его правильно структурировать, чтобы он не начал проседать под собственным весом.
V>Одна из лучших книг по теме, которые я когда-либо встречал:
V>A Philosophy of Software Design by John Ousterhout

Отличнейшая книга. Вы же, собственно, ее мне и советовали полгода/гож назад. Я правда до конца пока не дочитал,
дочитываю. Осталось что-то вроде про комментарии и наименование переменных. Но первые глав 6 просто круть
Совершенно перпендикулярно "Чистому коду" Мартина.
Тут можно с кратким содержанием познакомится -- https://web.stanford.edu/~ouster/cgi-bin/cs190-winter18/lecture.php?topic=modularDesign.

ТС скорее спрашивает не общий подход, а именно для .net -- когда и зачем шина, что от нее требовать в той
или иной ситуации и т.п. Т.е. что-то вроде шаблонов Фаулера выше. Хотя тут чтение блогов и форумов типа design
могут помочь не меньше.

А эта книга вообще для всего, хоть для написания игр.
Кодом людям нужно помогать!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.