CodeStyle

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

CodeStyle

Сообщение Alprog » 20.11.2011 (Вс) 9:04

Здравствуйте!

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

И встаёт вопрос, как же тогда стандартизовать следующие моменты, которые обычно разруливаются заглавной и строчной буквой в начале идентификатора:

- публичное свойство и приватное поле;
- название класса и его экземпляр;
- приватное поле и параметр конструктора, его инициализирующий.

Где-то добавляю сейчас префиксы "m", "p", "_"; где-то ставлю заглавную "C" в имени класса, а где-то нет...
Всё это выглядит разношёрстно и идёт в разрез со стилем уже написанных фреймворков на VB.Net.

Какой стиль используете вы? Прошу советов, рекомендаций и, если можно, ссылок.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: CodeStyle

Сообщение Viper » 20.11.2011 (Вс) 10:48

Неважно какой стиль используется, главное, чтобы он соблюдался и был понятен самому программисту.
Alprog писал(а):- публичное свойство и приватное поле;
- название класса и его экземпляр;
- приватное поле и параметр конструктора, его инициализирующий.
По этим вопросам:
Публичное свойство - Английское название означащее суть свойства без префиксов, приватное поле - английское название с префиксом "m_".
Название класса - опять же английское название без префиксов. Экземпляр - название объекта,описывающее суть объекта, но не класса.
Приватное поле с префиксом "m_". Параметр конструктора - название с префиксом, описывающем тип параметра.
Как то так. Вообще на эту тему можно (и нужно, было бы время) статью накатать.
Весь мир матрица, а мы в нем потоки байтов!

NashRus
Постоялец
Постоялец
 
Сообщения: 386
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: CodeStyle

Сообщение NashRus » 20.11.2011 (Вс) 11:38

Меня тоже тема стиля кода в .НЕТ волнует.
То, что есть по умолчанию, одно от другого в коде мало отличается.
Можно взять решарпер, там забиты правила наименования, взять за основу. Можно править правила под себя.
Сторонний код всегда будет выглядеть разношерстно, оформлять его в виде отдельных сборок.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: CodeStyle

Сообщение Alprog » 20.11.2011 (Вс) 18:41

Английское название означащее суть свойства без префиксов, приватное поле - английское название с префиксом "m_".

Часто есть приватные поля без свойств, всё равно что ли писать "m_" ?
Опять же, заранее можно не знать какой будет модификатор доступа у поля в итоге, и когда он изменится придётся везде править :(

Название класса - опять же английское название без префиксов. Экземпляр - название объекта,описывающее суть объекта, но не класса.

Иногда в функции/цикле есть только один экземпляр, который никакой смысловой нагрузки не несёт, а является промежуточным звеном.
Хочется писать нечто вроде этого:

Код: Выделить всё
For i as Integer = 0 to Scene.Actors.Count - 1
  Dim actor = Scene.Actors(i)
  ' ----
  ' логика, что-то делающая с actor
  ' ----
Next


Оно, вроде бы, даже работает. Но получается, что экземпляр actor скрывает от нас Actor. А Intellisense вообще ведёт себя неочевидно.
Про ключевое слово "With", конечно, знаю, но это увеличивает уровень вложенности табуляции и код становится менее читабельным.
Да и прокатывает With только с одной переменной "без смысловой нагрузки" в данный момент. А часто нужно несколько (разных типов).

А может есть средство, включающее Case Sensetive в VB?


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 15

    TopList