Warning: Declaration of Suffusion_MM_Walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /DISK2/WWW/plsql.cz/www/wp-content/themes/suffusion/library/suffusion-walkers.php on line 0
Feb 072013
 

Jak moc důležité je komentovat kód ví asi každý z nás – stačí se za pár měsícu vrátit ke svému programu či scriptu a člověk neví, která bije, to je prostě fakt – takže soubor tipů pro Oracle, kde je možné vložit komentář a vecpat tam svůj informační text.

1) Komentář nad tabulkou
COMMENT ON TABLE my_table IS 'azorova tabulka';
Komentář nad tabulkou by tak nějak měl být samozřejmostí, že? Mimo komentáře je také vhodný název tabulky, viděl jsem několik standardů jak se v systémech pojmenovávaly tabulky a objekty a žádný z nich nebyl vysloveně špatný, důležité je především nějaký mít. Osobně preferuji mimo báječného jména také nějaký sufix či prefix, který mi navíc podá další informaci. Jakou? Viděl jsem systémy, kde se do prefixu dávala informace, že je to tabulka (T_ ,TBL_), kde se tam dávalo schéma (AZOR_), kde se dávala další dodatečná informace (_CX,_SX) atd.
Takže mimo komentáře a hezkého názvu tabulky doporučiji sufix/prefix, který podá nějakou další informaci – taková která je pro daný systém nejlepší (pokud používáte aliasy hodí se například i to schéma).

2) Komentář nad sloupcem
COMMENT ON COLUMN my_table.my_column IS 'primární klíč, výrobní číslo';
Podobně jako nad tabulkou může být komentář i nad sloupcem. A i zde si myslim, že do 30 znaků se mimo hezkého jména i vejde nějaká dodatečná informace, například prefix PK_, pokud se jedná o primární klíč či _FK. Alternativně se hodně používá změna pořadí – ID_TABLE je primární klíč, zatímco TABLE_ID je cizí klíč. A mimo informace o klíči si občas vecpe nikdo do názvu jestli to má constraint či nějakou další informaci (_X jako má Siebel custom sloupce)

3) Nastavení SESSION – module/action pomocí dbms_aplication_info.
Oracle nabízí (jednoduchý a krátký balík) package dbms_aplication_info, který umožňuje označit si session a nastavit jim modul/action. Použití je následující:

begin
dbms_application_info.set_module('STAHOVANI_DAT','cisteni_temporary_tabulek');
end;

Což nastaví hodnoty modul a action pro aktuální session, které jsou pak vidět například v$session:

select module,action,t.* from v$session t where user#=sys_context('USERENV', 'SESSION_USERID');

Session info setnuté pomocí dbms_aplication_info

Session info setnuté pomocí dbms_aplication_info

Co je nepříjemné je omezená délka – 48 znaků pro modul, 32 pro action. A co tam patří? Ideálně package či procka, která v dané session běží a pokud to jde, dávám tám i informaci o % dokončení.

4) Komentování kódu a PLSQLDOC
Popisovat celé PLSQL_DOC by asi nemělo smysl, takže pouze link: PLSQL_DOC s informací, že utilitka trošku zastarává a jsou novější náhrady (v SQL Developeru například), nicméně stále šikovná utilitka – z headu balíku to vygeneruje něco, co vypadá jako klasické JAVADOC.

5) Pojmenovní transakce
 a) stará verze
COMMIT COMMENT 'moje transakce, klidne rollbacknete';
b) nová verze
SET TRANSACTION NAME 'moje transakce';
To je asi featura, která nikdo z nás moc nepouživá. Bohužel. Tak alespoň na distribuovaných databází by to chtělo.

6) Sledování selectu s komentářem
Na internetu jsou často vidět “pojemenování” selectu pomocí komentáře za slovem select, aby se lépe identifikoval v pohledech:

select /* azoruv_select */ from all_tables where table_name like..

Což se přiznám moc nepouživám – hodně to nahrazuje dbms_aplication_info.

7) Propis do V$SESSION_LONGOPS
Package dbms_aplication_info má mimo set_module ještě jednu zajímavou funkci set_session_longops, která umožní založit záznam do V$SESSION_LONGOPS, příklad má Oracle přímo v dokumentaci k package DBMS_APLICATION_INFO.

Edit: Na základě komentáře ke článku (za který děkuji) jsem opravil slovo surfix na sufix - a někdo by to měl opravit i ve všech packages a veškeré dokumentaci, kterou jsem kdy udělal ;), protože to nebyl překlep, ale celý život to píšu špatně, wow.

 Posted by at 19:09

  5 Responses to “Komentujem, komentujem, informujem..”

  1. Myslím, že by to měl být jen sufix, ne surfix. :)

  2. Tyjo nikdo sem nenapíše a pak taková rychlá reakce – jen co to dopíšu, tak alespon tak – děkuji. Hned vypdatuji!

    Ona ta čeština bude haprovat všude možně, nemá cenu si nic nalhávat ;)

  3. Ne tak to neni čestinou jak tak na to koukám, to je moje leplovství, píšu to celej život špatně, koukám :D

  4. Tak já blog sem tam čtu, ale je dost mimo moji ligu odbornosti. :) Takže mohu komentovat jen tu češtinu.

  5. Tyjo děkuji. Tak to bude problém, protože na češtinu jsem hulvát, což musíš asi vědět. Tak nějak jazyk považuji za OpenSource, necht si každý přidá a modifikuje co se mu líbí ;)

 Leave a Reply

(required)

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>