В каком слое находится main()
От: es3000  
Дата: 15.05.19 10:26
Оценка: -1
Добрый день!

Я начал здесь на форуме несколько тем по разработке.

И в ходе обсуждения возник вопрос.

А в каком слое находится функция main()?

Если исходить из терминологии следующих подходов:
— Hexagonal Architecture: https://habr.com/ru/post/267125/
— Clean Architecture: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
— Domain-driven design: https://en.wikipedia.org/wiki/Domain-driven_design


П.С.
Вот мои темы:
http://rsdn.org/forum/dotnet.gui/7441467
Автор: es3000
Дата: 13.05.19

http://rsdn.org/forum/philosophy/7440182
Автор: es3000
Дата: 12.05.19

http://rsdn.org/forum/design/7401353
Автор: es3000
Дата: 21.03.19

http://rsdn.org/forum/design/7381346
Автор: es3000
Дата: 23.02.19


Может быть и там что-нибудь посоветуете?
Re: В каком слое находится main()
От: VladCore  
Дата: 15.05.19 12:08
Оценка:
Здравствуйте, es3000, Вы писали:

E>А в каком слое находится функция main()?


Что имеется ввиду?

main() появилась вместе с ОС и ядром ОС.
Тогда не было было даже ООП.
с тех пор место main не изменилось ни разу.
Re: В каком слое находится main()
От: Qulac Россия  
Дата: 15.05.19 12:57
Оценка:
Здравствуйте, es3000, Вы писали:

E>Добрый день!


E>Я начал здесь на форуме несколько тем по разработке.


E>И в ходе обсуждения возник вопрос.


E>А в каком слое находится функция main()?


E>Если исходить из терминологии следующих подходов:

E>- Hexagonal Architecture: https://habr.com/ru/post/267125/
E>- Clean Architecture: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
E>- Domain-driven design: https://en.wikipedia.org/wiki/Domain-driven_design


E>П.С.

E>Вот мои темы:
E>http://rsdn.org/forum/dotnet.gui/7441467
Автор: es3000
Дата: 13.05.19

E>http://rsdn.org/forum/philosophy/7440182
Автор: es3000
Дата: 12.05.19

E>http://rsdn.org/forum/design/7401353
Автор: es3000
Дата: 21.03.19

E>http://rsdn.org/forum/design/7381346
Автор: es3000
Дата: 23.02.19


E>Может быть и там что-нибудь посоветуете?


Везде по разному может называться. По мне это инфраструктура, т.е. то, что позволяет другим слоям между собой начать взаимодействовать. Я его обычно в отдельную сборку кидаю.
Программа – это мысли спрессованные в код
Re[2]: В каком слое находится main()
От: es3000  
Дата: 15.05.19 16:22
Оценка:
VC>Что имеется ввиду?

Ну весь код программы логически можно разделить на несколько частей в зависимости от "ответственности" этого кода.
Эти части называются "слоями".
Я привел названия разных архитектур (Hexagonal Architecture, Clean Architecture, Domain-driven design).
Названия слоев в них немного отличаются, но суть одна и та же.

VC>main() появилась вместе с ОС и ядром ОС.

VC>Тогда не было было даже ООП.
VC>с тех пор место main не изменилось ни разу.

Неважно было или не было ООП. Это логическое деление кода.
Например, если код работает с пользовательским интерфейсом — это Presentation Layer, и не важно классы там или просто функции.
В бинарном виде все едино.

Функция Main() — это часть кода приложения. Поэтому она тоже находится в каком-то слое.
Отредактировано 16.05.2019 7:23 es3000 . Предыдущая версия .
Re: В каком слое находится main()
От: es3000  
Дата: 16.05.19 07:25
Оценка:
E>А в каком слое находится функция main()?

Сдается мне, что main() — это самый верхний супер-слой.
Этот слой подразумевается в каждой архитектуре, но почему-то явно не упоминается.
Re: В каком слое находится main()
От: vmpire Россия  
Дата: 16.05.19 10:44
Оценка:
Здравствуйте, es3000, Вы писали:

E>А в каком слое находится функция main()?

Это, скорее, в "философию" постить надо Потому, что для практических задач необходимость прямо каждую букву кода относить к какому-то слою не существует.
Для консольных программ это, скорее, presentation.
Для остальных, которые базируются на цикле обработки сообщений, это вообще не слой, а просто launcher всего остального, которое уже разбито на слои.
Re[2]: В каком слое находится main()
От: es3000  
Дата: 16.05.19 11:15
Оценка: :)
V>Это, скорее, в "философию" постить надо Потому, что для практических задач необходимость прямо каждую букву кода относить к какому-то слою не существует.

Да, можно и в философию.

V> ... для практических задач необходимость прямо каждую букву кода относить к какому-то слою не существует.


Ну сознательно относить main() к какому-то коду может быть и не нужно.
Но по факту любая часть кода принадлежит какому-то слою.
Надо просто один раз и навсегда понять — к какому слою относится main(), и больше об этом не надо задумываться.

V>Для консольных программ это, скорее, presentation.

V>Для остальных, которые базируются на цикле обработки сообщений, это вообще не слой, а просто launcher всего остального, которое уже разбито на слои.

А мне кажется, это самый верхний слой, который просто нигде не рисуют, ни в одной архитектуре.
Re[3]: В каком слое находится main()
От: pagid Россия  
Дата: 24.05.19 05:01
Оценка:
Здравствуйте, es3000, Вы писали:

E>А мне кажется, это самый верхний слой, который просто нигде не рисуют, ни в одной архитектуре.

А еще не стоит разбиение на слои, превращать в само- и суперцель, как и другие вопросы, которые можно отнести к "философии программирования".
Re[4]: В каком слое находится main()
От: es3000  
Дата: 24.05.19 09:58
Оценка:
P>А еще не стоит разбиение на слои, превращать в само- и суперцель, как и другие вопросы, которые можно отнести к "философии программирования".

Я не спорю: стоит или не стоит...
Я просто задал вопрос, мне это интересно.

Если есть какие-то мысли по сути вопроса — пожалуйста, высказывайте.
Re: В каком слое находится main()
От: Mr.Delphist  
Дата: 19.08.19 08:54
Оценка:
Здравствуйте, es3000, Вы писали:

E>Добрый день!


E>Я начал здесь на форуме несколько тем по разработке.


E>И в ходе обсуждения возник вопрос.


E>А в каком слое находится функция main()?


Функцция main — не более чем соответствие контракту активации. На дрегих платформах/фреймворках функции main может и не быть (например, потому что активация может быть параметризованной, как в случае с UWP).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.