metaclass: (Default)
[personal profile] metaclass
"Не прошло и сто лет", как я обнаружил, что объявлять namespace необязательно - классы объявленные на верхнем уровне в файле, становятся членами namespace по умолчанию. А студия неймспейс генерит автоматом всегда.
Внимание, вопрос - если меня раздражает лишний отступ на namespace и я убрал его объявление - кошерно ли это? Объявления классов стали начинаться от левого края и это немного читабельнее для мозга, но можыд, я тем самым нарушил какие-нибудь тонкие талмудистские запреты и меня ждет кара?
(deleted comment)

Date: 2009-12-30 07:39 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Кого с кем конфликт?
У меня почти все классы все равно в неймспейсе по умолчанию для проекта находятся.

Date: 2009-12-30 07:44 pm (UTC)
From: [identity profile] w00dy.livejournal.com
самого себя с самим собой. Банальный пример: есть у меня в asp.net проекте несколько страниц Users. Если бы лежали в одном неймспейсе, пришлось бы придумывать разные именя аля AllUsers, CompanyUsers, etc, а так разнёс по неймспейсам и в итоге всё красиво.

Date: 2009-12-30 07:47 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Хм, я в одном проекте классы с одинаковыми именами никогда не делаю.
Хотя у меня и страниц то там немного, там в основном бизнес-логика над несколькими RESTful сервисами.

Date: 2009-12-30 07:53 pm (UTC)
From: [identity profile] w00dy.livejournal.com
Я тоже стараюсь классы с одинаковыми именами не делать, но в жизни всякое бывает. Да и с неймспейсами как-то аккуратней получается. Всё своё лежит в коробочке MyNamespace, всё чужое в других. А в global ложить как-то некузяво.

Date: 2009-12-30 07:57 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Точно, оно же в global попадает. Вот же трасца, я надеялся что в дефолтный неймспейс.

Date: 2009-12-30 08:20 pm (UTC)
From: [identity profile] w00dy.livejournal.com
дефолтных неймспейсов нет. Точнее asp.net что-то придумывает при компиляции. А так - есть только дефолтный namespace alias, global который, но можно свои задавать.

Date: 2009-12-30 08:22 pm (UTC)
From: [identity profile] metaclass.livejournal.com
У проекта есть же основной неймспейс, в него еще все ресурсы попадают.

Date: 2009-12-30 08:30 pm (UTC)
From: [identity profile] w00dy.livejournal.com
А, ты про этот. Это не более чем информация куда класть новые елементы (классы и ресурсы, например) и не более. При компиляции она нигде не используется. А в сборке может лежать всё что угодно в любых неймспейсах, хоть в System.*

Date: 2009-12-30 11:46 pm (UTC)
From: [identity profile] udpn.livejournal.com
Кто-нибудь вообще видел хоть раз конфликт имён вживую?

Я за свои скромные 9 лет практики не видел ни разу. Ей-богу.

Date: 2009-12-30 07:41 pm (UTC)
From: [identity profile] w00dy.livejournal.com
Кара ждёт всех!

А тут, разве что проблемы в будущем если у тебя asp.net или развесистая структура классов (из-за тех же конфликтов имён).

Date: 2009-12-30 07:45 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Это asp.net, но не основные классы, а всякий back-end с логикой.

Date: 2009-12-30 07:51 pm (UTC)
From: [identity profile] qehgt.livejournal.com
Настрой среду, чтобы для самого верхнего namespace'а отступ не делался.

Date: 2009-12-30 07:56 pm (UTC)
From: [identity profile] metaclass.livejournal.com
А у меня в 2005 что-то такого параметра вообще нет :)

Date: 2009-12-30 08:00 pm (UTC)
From: [identity profile] smalgin.livejournal.com
Это в 2008, кажись

Date: 2009-12-30 11:44 pm (UTC)
From: [identity profile] udpn.livejournal.com
Наверняка есть какой-нить аддон.

Date: 2009-12-30 08:00 pm (UTC)
From: [identity profile] smalgin.livejournal.com
можешь объявить - объявляй, сэкономишь на maintenance. Как это там.. Option Explicit :)

Date: 2009-12-30 11:43 pm (UTC)
From: [identity profile] udpn.livejournal.com
Синтаксический шум. Option Explicit нужно было бы скрыть от глаз пользователя долой, благо слитость IDE с компилятором (на стадии отладки — интерпретатором) позволяет.

Date: 2009-12-31 02:03 am (UTC)
From: [identity profile] smalgin.livejournal.com
Вот у нас 30 000 000 LOC в С++ и я искренне жалею о том, что коре девелуперы в свое время не настояли на обязательных namespace-ах. Maintenance - вещь такая...

Хотя в то время, впрочем, я видел C++ API (MrSID, если что), в котором в публичном хидере было без зазрения совести написано using namespace std; using namespace LizardTech;

Как говорится, любые грабли надо использовать по назначению.

Date: 2009-12-30 11:42 pm (UTC)
From: [identity profile] udpn.livejournal.com
FXCop не одобрит. Назло.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2025 11:25 am
Powered by Dreamwidth Studios