Loģikas slāņa atrašanās vieta

Izcēlās mums interesantas un garas debates par to, kur būtu jāatrodas biznesa nosacījumu un algoritmu realizācijai.

Iespējamie varianti:

  • datu bāzes vadības sistēmas procedūrās. no koda tu izsauc procedūru un saņem atpakaļ operācijas rezultātu;
  • kods, kas rakstīts kādā universālā programmēšanas valodā (šoreiz runa par C#), kur operācijas un pārējās lietas notiek ar objektu modeli;
  • hibrīdais variants, kad daļa procedūrās, daļa ir kods;

 

Gribētos dzirdēt Jūsu viedokļus no pieredzes.

Protams, ka tas viss ir atkarīgs no konkrētā projekta un problēmu domaina, bet tomēr - varbūt ir kādas kopējas iezīmes katram no risinājumiem?

Published Thursday, August 07, 2008 3:43 PM by valdis.iljuconoks
Filed under:

Comments

# re: Loģikas slāņa atrašanās vieta

Gudri cilvēki iesaka pievērs uzmanību mantojamības iespējamībai. Tas savukārt  iespējams gadījumos ja tiek izmantota objektu orientētā pieeja.

Friday, August 08, 2008 10:07 AM by andrejs.mamontovs

# re: Loģikas slāņa atrašanās vieta

"datu bāzes vadības sistēmas procedūrās. no koda tu izsauc procedūru un saņem atpakaļ operācijas rezultātu;" <- tagad strādāju(pieprasījumu izmaiņas) pie tāda projekta, kur gandrīz visa loģika ir datubāzē, un tas ir murgs, nekad tā nedariet. Tas ir no performance viedokļa slikti, gan no lasāmības, gan no maintenance.

Friday, August 08, 2008 1:57 PM by SiTox

# re: Loģikas slāņa atrašanās vieta

a kas slikts ir no performances? un uz kāda servera tiek darbināta sistēma? kāda ir procedūra, ja jāpadod ir 20+ parametri? :)

Friday, August 08, 2008 9:32 PM by valdis.iljuconoks

# re: Loģikas slāņa atrašanās vieta

Valdi apskaties šo te rakstu. www.dotnet.lv/.../vec-t-kur-ir-mana-biznesa-lo-ika.aspx

Atsvaidzināsi atmiņas par Tech-Ed 2007

Saturday, August 09, 2008 9:49 PM by andrejs.mamontovs

# re: Loģikas slāņa atrašanās vieta

rakstot šo bija prādā arī Čads :)

Saturday, August 09, 2008 11:39 PM by valdis.iljuconoks

# re: Loģikas slāņa atrašanās vieta

Tas, ka visa loģika atrodas DB, padara migrāciju uz citu DBVS praktiski neiespējamu

Monday, August 18, 2008 12:35 PM by Juris

# re: Loģikas slāņa atrašanās vieta

ja iespēja switchoties starp dbvs ir biznesa requirements, tad jā. prasības stipri ietekmē arhitektūru....

Tuesday, August 19, 2008 11:28 AM by valdis.iljuconoks

# re: Loģikas slāņa atrašanās vieta

Ieejas parametri lēmuma pieņemšanā varētu būt aptuveni tādi:

1) vai ir prasība, ka jābūt iespējai switch'ot? šī prasība var izrietēt arī no nosacījuma, ka tas ir COTS produkts, kuru gribam pārdot klientam un ļauj viņam pašam izvēlēties DBVS (no kaut kādas definētas kopas, protams)

2) No kurienes tiek ņemti dati, ar kuriem tā biznesa loģika būs jādarbina.

Ja switch'ōšanas prasības nav un dati ir pieejami datubāzē, tad lielas jēgas biznesa loģikas kodu nest uz augšu nav. Daudz vieglāk izstrādi būs organizēt liekot tās lietas iekšā db procedūrās. Tranzakciju pabeigšana gan jāatstāj augstākā līmenī, lai nepieciešamības gadījmā varētu kombinēt procedūru izsaukumus.

Svarīgi apzināties, ka šajā gadījumā SQL kods ir tāds pats kods kā viss cits programmas kods - tur tāpat ir nepieciešami kodēšanas standarti, standarta konstrukcijas kļūdu ķeršanai, konkurences kontrolei, auditēšanai, utt. Procedūrās arī noteikti jāraksta komentāri, jālieto to naming convention un tās jācenšas grupēt pēc savstarpējās relevances - piemēram, tās kas attiecas uz konkrētu funkcionalitāti saliekot vienā package'ā Oracle gadījumā.

Ja ir switchošanas prasība vai arī dati pa lielam nāk no ne-db avotiem, tad loģika jānes augstāk. Kas gan nozīmē to, ka izstrādei visticamāk būs nepieciešams vairāk laika (jo ar labu SQL implementāciju - piemēram, Oracle PL-SQL, datu manipulācijas operācijas tomēr iet daudz ātrāk), rūpīgāki unit-testi un arī beigās visticamāk sanāks daudz vairāk koda rindiņu. Daļu no šīm problēmām mūsdienās jau lēnām risina ar LINQ utml. rīku palīdzību, kuri ļauj operācijas ar kopām efektīvi izpildīt atmiņā.

Friday, August 29, 2008 10:35 AM by Edgars

# re: Loģikas slāņa atrašanās vieta

cik galvu, tik viedokļu... kas arī bija gaidāms :)

Friday, August 29, 2008 1:11 PM by valdis.iljuconoks

# Very informative blog

Hi webmaster, commencers and everybody else !!! The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need! Keep them coming...  You all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

Sunday, August 29, 2010 12:32 AM by payday loans

# re: Loģikas slāņa atrašanās vieta

Lo ikas sl a atra an s vieta.. Outstanding :)

Saturday, May 21, 2011 6:28 AM by dotnet.lv

# re: Loģikas slāņa atrašanās vieta

Lo ikas sl a atra an s vieta.. Slap-up :)

Friday, June 03, 2011 2:10 PM by dotnet.lv

# re: Loģikas slāņa atrašanās vieta

Lo ikas sl a atra an s vieta.. OMG! :)

Sunday, June 05, 2011 2:27 PM by dotnet.lv

# Vsec mi je

zelo intiresno, hvala

Monday, June 13, 2011 7:17 PM by Homaadvemia

# re: Loģikas slāņa atrašanās vieta

Lo ikas sl a atra an s vieta.. WTF? :)

Saturday, July 02, 2011 8:17 PM by ncds sex 98rc

# Interesting, thanks

Way neat, some legitimate details! I enjoy you producing this informative article offered, the remainder of the internet site can be substantial high quality. Have a very entertaining.

Wednesday, November 16, 2011 4:48 PM by Norman Clear

# LOSHQTNbNkobJ

MJL4qy Hey, thanks for the blog article.Really looking forward to read more.

Friday, March 23, 2012 5:02 AM by buy google plus

Leave a Comment

(obligāts) 
(obligāts) 
(brīvizvēles)
(obligāts)