Module vs Namespace
От: vaa  
Дата: 18.02.22 07:34
Оценка:
Периодически на том что Namespace в C#
может находится в dll с именем отличным от пространства имен.
Мне кажется это от того что это лишняя сущность.
Модуля вполне достаточно чтобы организовать код.

Вот взять хотя бы js и lisp(в последнем правда имя файла может не совпадать с именем пакета — возможно C# это перенял у них)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
https://lispmethods.com/libraries.html
в F# тоже самое — файл(foo.fsx) это модуль (module Foo).
Как думаете в каком случае нельзя обойтись без Namespace?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Module vs Namespace
От: Shtole  
Дата: 18.02.22 10:43
Оценка: +1
Здравствуйте, vaa, Вы писали:

vaa>Периодически на том что Namespace в C#

vaa>может находится в dll с именем отличным от пространства имен.
vaa>Мне кажется это от того что это лишняя сущность.
vaa>Модуля вполне достаточно чтобы организовать код.

vaa>Вот взять хотя бы js и lisp(в последнем правда имя файла может не совпадать с именем пакета — возможно C# это перенял у них)

vaa>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
vaa>https://lispmethods.com/libraries.html
vaa>в F# тоже самое — файл(foo.fsx) это модуль (module Foo).
vaa>Как думаете в каком случае нельзя обойтись без Namespace?

Да ну. Даже невозможность смежный класс в тот же файл записать бесит. Считается, что это не даёт код превращать в помойку, но на практике те, кто раньше пихали 100К строк в файл, так и продолжают пихать их, только теперь уже в класс, зато нет больше возможности связать семантически два класса по сто строк.

Немножко свободы-то должно оставаться. Совсем уж спектрум-стайл получается.
Do you want to develop an app?
Отредактировано 18.02.2022 10:44 Shtole . Предыдущая версия .
Re: Module vs Namespace
От: Teolog  
Дата: 18.02.22 11:13
Оценка: +1
vaa>Периодически на том что Namespace в C#
vaa>может находится в dll с именем отличным от пространства имен.
vaa>Мне кажется это от того что это лишняя сущность.
vaa>Модуля вполне достаточно чтобы организовать код.

Больше десятка пространств имен в одном модуле — скорее норма чем наоборот.
Namespace — логическая сортировка по назначению
Assembly(dll) — техническая, для переиспользования кода между проектами
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.