Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Соглашения об именах, и требования к коду 
V
    Опции темы
KaKTyCc
Дата 23.9.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



Доброго времени суток.
Хотелось бы узнать, кто какие использует соглашения об именах.
Здесь начал описывать свои, и то что найду интересное в сети.

Например, кто как объявляет переменные. У нас в компании принят такой стиль:

Код

function test(
  n#id         number,
  s#str       varchar2
) return integer
is
  i$res   integer;
begin
  return i$res
end;


через # - неизменяемые значения, $ - изменяемые.
s - строка
b - boolean
i - целое

использовать префиксы l_ и g_ из оф. документации не нравится.
Пишите свои мысли и опыт.
--------------------
Мой блог
PM MAIL WWW   Вверх
batigoal
Дата 24.9.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 2
Всего: 151



Я, как человек, пришедший из Java, считаю, что всякие нотации ведут только к ухудшению читабельности. Лучше давать переменным осмысленные длинные имена, а не придумывать способы кодировки.

Что касается оформления, то можно выделить пару моментов:

1) Операторы и ключевые слова записываются ПРОПИСНЫМИ буквами, переменные - строчными (SELECT * FROM my_table t WHERE t.name = 'something')
2) Имена переменных на несколько строк записываются через '_' (first_name)

Форматирование делается через Beautifier (в PL/SQL Developer'e), правила которого настроены одинаково у всей команды.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
KaKTyCc
Дата 24.9.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



Цитата

Лучше давать переменным осмысленные длинные имена, а не придумывать способы кодировки.


Согласен. Но ведь удобно если переменная называется 
s#first_name - сразу понятно что передается в функцию, процедуру,
или s$first_name - значит можно изменять переменную.

Хороший код - код с одним стилем, удобно читать.

А именование таблиц, используете какие то префиксы, tbl или t
для вьюх такой же вопрос?

Спасибо за ответ.

Это сообщение отредактировал(а) KaKTyCc - 24.9.2007, 09:38
--------------------
Мой блог
PM MAIL WWW   Вверх
DimW
Дата 24.9.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(KaKTyCc @  23.9.2007,  16:38 Найти цитируемый пост)
s - строка
b - boolean
i - целое


лично мне такие обозначения не к чему т.к. я стараюсь использовать синтаксис авто определения типа %type. при таком подходе такова рода обозначения теряют всякий смысл.
использование спец символов (#,$), очень снижает читабельность кода, и чаще всего раздражает.

особенно важно при использовании DML-операторов, select-ов использовать онин стиль написания для всей команды, дело даже не сколько в читабельности кода, а в производительности выполнения запроса, ВАЖНО соблюдать регистр операторов, от этого зависит будет ли оракл делать полный или частичный разбор оператора при повторном его вызове.
допустим 3 разработчика используют один и тот же запрос:
Код

select name from table_name;


но ини написали их по разному:
1)
select name from table_name;
2)
SELECT NAME FROM TABLE_NAME;
3)
SELECT name FROM table_name;

оракл будет делать полный разбор для каждого запроса.

Добавлено через 2 минуты и 30 секунд
Цитата(KaKTyCc @  24.9.2007,  09:36 Найти цитируемый пост)
А именование таблиц, используете какие то префиксы, tbl или t
для вьюх такой же вопрос?

для таблиц не использую, только для вьюх, постфикс _V, удобно при чтении запроса, имхо конечно же.

PM MAIL ICQ   Вверх
KaKTyCc
Дата 24.9.2007, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



Позиция по переменным понятна.

Как насчет именования таблиц, вьюх, констрэйнтов, триггеров и т.д.

Например триггер, что об этом думаете?

<table_name>$<{B, A}><{I, D, U}>[O]
    {B,A} – before, after
    {I,D,U} – insert, delete, update
    [O] – операторный

--------------------
Мой блог
PM MAIL WWW   Вверх
DimW
Дата 24.9.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(KaKTyCc @  24.9.2007,  10:12 Найти цитируемый пост)
Например триггер, что об этом думаете?

примерно так и использовали на предыдущей работе

Добавлено через 5 минут и 45 секунд
по поводу констрейнтов.
таблица personality - в торичный ключ(поле xid) в этой таблицы обозначали так?
алиас таблицы_поле_fk = person_xid_fk

PM MAIL ICQ   Вверх
KaKTyCc
Дата 24.9.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



при именовании пакетов, добавляете что то вроде - pkg в название?
--------------------
Мой блог
PM MAIL WWW   Вверх
DimW
Дата 24.9.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



ну вобще да, но лично я смысла внем не вижу, просто следую стандарту.
PM MAIL ICQ   Вверх
KaKTyCc
Дата 24.9.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



спасибо за ответы.

есть еще какие то приемы?  smile 
--------------------
Мой блог
PM MAIL WWW   Вверх
DimW
Дата 24.9.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



и честно говоря на столько привык, что само произвольно пишу. вреда уж точно не какова, за исключением отжерания 3 символов от 30 отведенных ораклом для наименования объектов, иногда приходится жертвовать осмысленным названием ради постфикса.

сори не успел добавить к предыдущему посту.

Это сообщение отредактировал(а) DimW - 24.9.2007, 11:15
PM MAIL ICQ   Вверх
batigoal
Дата 24.9.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 2
Всего: 151



Цитата(KaKTyCc @  24.9.2007,  10:36 Найти цитируемый пост)
А именование таблиц, используете какие то префиксы, tbl или t
для вьюх такой же вопрос?

Для всех сущностей используем трехбуквенный префикс для обозначения компонента (их 5-6 в зависимости от продукта).

Для вьюх - постфикс _V.

Для триггеров - примерно такой же синтаксис, как и у вас.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
KaKTyCc
Дата 24.9.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



понятно.

а по поводу отступов, например
Код

procedure temp(
  employee  in integer
) is
  str       varchar2(64);
begin
  select dummy
    into str 
    from dual;
exception
  when no_data_found then;
    null;
end;


процедура бессмысленная, но не в этом суть  smile 
--------------------
Мой блог
PM MAIL WWW   Вверх
LSD
Дата 24.9.2007, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(batigoal @  24.9.2007,  09:58 Найти цитируемый пост)
Я, как человек, пришедший из Java, считаю, что всякие нотации ведут только к ухудшению читабельности. Лучше давать переменным осмысленные длинные имена, а не придумывать способы кодировки.

Аналогично smile Врядли кто-то решит, что переменная host_name имеет тип number.

Цитата(batigoal @  24.9.2007,  09:58 Найти цитируемый пост)
1) Операторы и ключевые слова записываются ПРОПИСНЫМИ буквами, переменные - строчными (SELECT * FROM my_table t WHERE t.name = 'something')
2) Имена переменных на несколько строк записываются через '_' (first_name)

3) Все колонки внешних ключей оканчиваются на _PTR (удобно для генерации кода).
4) Используем заранее определенный префикс (для всех объектов), чтобы избежать совпадения с ключевыми словами. Для новой системы, это наверно не актуально, но у нас "тяжкое наследие прошлого".


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
KaKTyCc
Дата 27.9.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



всем спасибо
--------------------
Мой блог
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

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

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.