Re[5]: using - накой вас придумали??
От: Sinix  
Дата: 30.11.15 13:52
Оценка:
Здравствуйте, Kolesiki, Вы писали:


K>Потому что вы не поняли суть вопроса: я поставил под сомнение саму идею импорта имён (не затрагивая using-as-alias). Вы можете рационально объяснить катастрофическую необходимость в коде каждого файла(!) писать один и тот же boilerplate только для того, чтобы пользоваться всем классическим дотнетом?


1. У вас студия запрещена что ли Ваш boilerplate уже лет 8 подставляется автоматом, что студией, что решарпером. Ну и чистится автоматом тоже, ставим CodeMaid или любой из аналогов.

2. Это классика проектирования сложных систем: любое новое поведение должно добавляться как opt-in, а не как opt-out.
Другими словами, хочешь что-то заиспользовать — будь любезен объявить это явно. Это позволяет не тестировать все возможные комбинации на предмет конфликтов и не разруливать идиотские ситуации, когда проект перестаёт собираться из-за добавления новой библиотеки в референсы.

И да, раскидыванием по библиотекам эта проблема не решается, классика:
// Assembly A, references ANode
Node Parse(...) { ... }

// Assembly B, references BNode
Node Parse(...) { ... }

// Assembly B, some helper
string SomeHelper(...) { ... }

В проекте везде используются типы из A, используем хелпер из B. Автореференсы засирают лог сборки несколькими тысячами однотипных ошибок, приятной отладки

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

K>Про конфликт имён — очевидно и первоклашке, using нужен, но лучше как ключевое слово alias.


3. Юзинги в проекте порождают ещё более забавную проблему с включением в проект чужих исходников. Блин, да даже стандартный сценарий "перетаскиваем файл из проекта в проект" после такого пожелания превращается в минное поле.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.