Moć SQL jezika u C#-u

poruka: 36
|
čitano: 4.187
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Moć SQL jezika u C#-u

Kladim se da je ovaj "senior architect" negdje iz Hrvatske, s obzirom da sam u nas sreo jako puno arhitekata i majstora koji su zapravo šampioni prvog reda.

 
 
Prenosim jedan primjer programiranja:
 
 
"Our Senior Architect likes the idea of keeping things simple," Stephen B, "no stored procedures, no parameterized queries... just simple, simple strings."

"So, in keeping up with the 'simplicity', following is one line of code from one of the business objects in one of the modules in one of the layers in our system. I think it speaks for itself."


return ((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((
str + "'" +
this.Acct.Replace("'", "''") + "', ") + "" +
this.AcctDist.ToString().Trim() + ", ") + "'" +
this.BatNbr.Replace("'", "''") + "', ") + "" +
this.CmmnPct.ToString().Trim() + ", ") + "" +
this.CnvFact.ToString().Trim() + ", ") + "'" +
this.ContractID.Replace("'", "''") + "', ") + "'" +
this.CostType.Replace("'", "''") + "', ") + "'" +
this.CpnyID.Replace("'", "''") + "', ") + "'" +
this.Crtd_DateTime.ToString().Trim().Replace("'", "''") + "', ") + "'" +
this.Crtd_Prog.Replace("'", "''") + "', ") + "'" +
this.Crtd_User.Replace("'", "''") + "', ") + "" +
this.CuryExtCost.ToString().Trim() + ", ") + "'" +
this.CuryId.Replace("'", "''") + "', ") + "'" +
this.CuryMultDiv.Replace("'", "''") + "', ") + "" +
this.CuryRate.ToString().Trim() + ", ") + "" +
this.CuryTaxAmt00.ToString().Trim() + ", ") + "" +
this.CuryTaxAmt01.ToString().Trim() + ", ") + "" +
this.CuryTaxAmt02.ToString().Trim() + ", ") + "" +
this.CuryTaxAmt03.ToString().Trim() + ", ") + "" +
this.CuryTranAmt.ToString().Trim() + ", ") + "" +
this.CuryTxblAmt00.ToString().Trim() + ", ") + "" +
this.CuryTxblAmt01.ToString().Trim() + ", ") + "" +
this.CuryTxblAmt02.ToString().Trim() + ", ") + "" +
this.CuryTxblAmt03.ToString().Trim() + ", ") + "" +
this.CuryUnitPrice.ToString().Trim() + ", ") + "'" +
this.CustId.Replace("'", "''") + "', ") + "'" +
this.DrCr.Replace("'", "''") + "', ") + "" +
this.Excpt.ToString().Trim() + ", ") + "" +
this.ExtCost.ToString().Trim() + ", ") + "'" +
this.ExtRefNbr.Replace("'", "''") + "', ") + "'" +
this.FiscYr.Replace("'", "''") + "', ") + "" +
this.FlatRateLineNbr.ToString().Trim() + ", ") + "" +
this.InstallNbr.ToString().Trim() + ", ") + "'" +
this.InvtId.Replace("'", "''") + "', ") + "" +
this.JobRate.ToString().Trim() + ", ") + "'" +
this.JrnlType.Replace("'", "''") + "', ") + "" +
this.LineId.ToString().Trim() + ", ") + "" +
this.LineNbr.ToString().Trim() + ", ") + "'" +
this.LineRef.Replace("'", "''") + "', ") + "'" +
this.LUpd_DateTime.ToString().Trim().Replace("'", "''") + "', ") + "'" +
this.LUpd_Prog.Replace("'", "''") + "', ") + "'" +
this.LUpd_User.Replace("'", "''") + "', ") + "'" +
this.MasterDocNbr.Replace("'", "''") + "', ") + "" +
this.NoteId.ToString().Trim() + ", ") + "'" +
this.OrdNbr.Replace("'", "''") + "', ") + "'" +
this.PC_Flag.Replace("'", "''") + "', ") + "'" +
this.PC_ID.Replace("'", "''") + "', ") + "'" +
this.PC_Status.Replace("'", "''") + "', ") + "'" +
this.PerEnt.Replace("'", "''") + "', ") + "'" +
this.PerPost.Replace("'", "''") + "', ") + "'" +
this.ProjectID.Replace("'", "''") + "', ") + "" +
this.Qty.ToString().Trim() + ", ") + "" +
this.RecordID.ToString().Trim() + ", ") + "'" +
this.RefNbr.Replace("'", "''") + "', ") + "" +
this.Rlsed.ToString().Trim() + ", ") + "'" +
this.S4Future01.Replace("'", "''") + "', ") + "'" +
this.S4Future02.Replace("'", "''") + "', ") + "" +
this.S4Future03.ToString().Trim() + ", ") + "" +
this.S4Future04.ToString().Trim() + ", ") + "" +
this.S4Future05.ToString().Trim() + ", ") + "" +
this.S4Future06.ToString().Trim() + ", ") + "'" +
this.S4Future07.ToString().Trim().Replace("'", "''") + "', ") + "'" +
this.S4Future08.ToString().Trim().Replace("'", "''") + "', ") + "" +
this.S4Future09.ToString().Trim() + ", ") + "" +
this.S4Future10.ToString().Trim() + ", ") + "'" +
this.S4Future11.Replace("'", "''") + "', ") + "'" +
this.S4Future12.Replace("'", "''") + "', ") + "'" +
this.ServiceCallID.Replace("'", "''") + "', ") + "" +
this.ServiceCallLineNbr.ToString().Trim() + ", ") + "'" +
this.ServiceDate.ToString().Trim().Replace("'", "''") + "', ") + "'" +
this.ShipperCpnyID.Replace("'", "''") + "', ") + "'" +
this.ShipperID.Replace("'", "''") + "', ") + "'" +
this.ShipperLineRef.Replace("'", "''") + "', ") + "'" +
this.SiteId.Replace("'", "''") + "', ") + "'" +
this.SlsperId.Replace("'", "''") + "', ") + "'" +
this.SpecificCostID.Replace("'", "''") + "', ") + "'" +
this.Sub.Replace("'", "''") + "', ") + "'" +
this.TaskID.Replace("'", "''") + "', ") + "" +
this.TaxAmt00.ToString().Trim() + ", ") + "" +
this.TaxAmt01.ToString().Trim() + ", ") + "" +
this.TaxAmt02.ToString().Trim() + ", ") + "" +
this.TaxAmt03.ToString().Trim() + ", ") + "'" +
this.TaxCalced.Replace("'", "''") + "', ") + "'" +
this.TaxCat.Replace("'", "''") + "', ") + "'" +
this.TaxId00.Replace("'", "''") + "', ") + "'" +
this.TaxId01.Replace("'", "''") + "', ") + "'" +
this.TaxId02.Replace("'", "''") + "', ") + "'" +
this.TaxId03.Replace("'", "''") + "', ") + "'" +
this.TaxIdDflt.Replace("'", "''") + "', ") + "" +
this.TranAmt.ToString().Trim() + ", ") + "'" +
this.TranClass.Replace("'", "''") + "', ") + "'" +
this.TranDate.ToString().Trim().Replace("'", "''") + "', ") + "'" +
this.TranDesc.Replace("'", "''") + "', ") + "'" +
this.TranType.Replace("'", "''") + "', ") + "" +
this.TxblAmt00.ToString().Trim() + ", ") + "" +
this.TxblAmt01.ToString().Trim() + ", ") + "" +
this.TxblAmt02.ToString().Trim() + ", ") + "" +
this.TxblAmt03.ToString().Trim() + ", ") + "'" +
this.UnitDesc.Replace("'", "''") + "', ") + "" +
this.UnitPrice.ToString().Trim() + ", ") + "'" +
this.User1.Replace("'", "''") + "', ") + "'" +
this.User2.Replace("'", "''") + "', ") + "" +
this.User3.ToString().Trim() + ", ") + "" +
this.User4.ToString().Trim() + ", ") + "'" +
this.User5.Replace("'", "''") + "', ") + "'" +
this.User6.Replace("'", "''") + "', ") + "'" +
this.User7.ToString().Trim().Replace("'", "''") + "', ") + "'" +
this.User8.ToString().Trim().Replace("'", "''") + "', ") + "'" +
this.WhseLoc.Replace("'", "''") + "' ");

 

Najbolji od svega je komentar na dnu:
 

// ED: line breaks added for clarity

 

 

Tko otkrije što je sve ovdje pogrešno i zašto, dobije popust na karton kad ga zasluži! Cool

Hrvatska je oligarhijska partitokracija s primjesama patokracije.
Poruka je uređivana zadnji put sri 15.7.2009 18:43 (naxeem).
Moj PC  
0 1 hvala 0
17 godina
offline
Moć SQL jezika u C#-u

OMFG

((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((

 

Ovo bi moglo izazvati stack overflow u kompajleru :D

 

 

The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u
Nisam siguran kako radi Replace metoda, ali to bi moglo biti ono sto je pogresno. Ako onaj drugi navodnik iz "''" ide opet mijenjati.
Sa štovanjem, brahle!
17 godina
protjeran
offline
Moć SQL jezika u C#-u

Kakvi li su tek juniori u toj firmi, a tek klijenti Namigiva. Ja vidim barem 7 nedostataka u 15 sec gledanja.

Amo refaktorirati za zabavu, tko će početi.... to bi bilo zanimljivije nego one dosadne programerske zagonetke :-D

Programko http://programko.bloger.hr
 
0 0 hvala 0
17 godina
neaktivan
offline
Moć SQL jezika u C#-u

Ajmo ljudi, još nitko nije dao listu od najmanje pet (5) kritičnih problema. Da pomognem: problem nije samo u kodu kao takvom, već se po ovom kodu vidi i arhitektura aplikacije, a to je tek strašan prizor kad zamislite u glavi.

Hrvatska je oligarhijska partitokracija s primjesama patokracije.
Moj PC  
0 0 hvala 0
17 godina
offline
Moć SQL jezika u C#-u

Nadasve citko. Vjerovatno je sve u mainu() :) kompletan kod... bez klasa, metoda i iceg normalnog... sampijon nad sampijonima!

I'm going woo woo
 
0 0 hvala 0
17 godina
neaktivan
offline
Moć SQL jezika u C#-u

i vjerojatno mu je sve u jednom redu...ah... nek se veseli

Moj PC  
0 0 hvala 0
17 godina
offline
RE: Moć SQL jezika u C#-u
naxeem kaže...

Ajmo ljudi, još nitko nije dao listu od najmanje pet (5) kritičnih problema. Da pomognem: problem nije samo u kodu kao takvom, već se po ovom kodu vidi i arhitektura aplikacije, a to je tek strašan prizor kad zamislite u glavi.

Heh naxeem... zamilsi dodjes u novu firmu radit i kaze ti sef da je tvoj zadatak nadograditi jednu staru aplikaciju. I dobijes ovo od ovog genijalca! Pa ja bi da otkaz odmah!

I'm going woo woo
17 godina
offline
Moć SQL jezika u C#-u

Meni je osobno cudno sto spominje da je ovo snippet iz "business objecta". Zasto se drzi data access kod u business objektu? A ovaj Replace je prastara metoda izbjegavanja SQL injectiona. Napravano, sa SQL parametrima se to ne treba koristiti. Takodzer, ovako se ne cachira execution plan od sql querya. Volio bi vidjeti ostatak SQLa.

Ah, sampionske firme... Direktor sigurno misli da ima pravog strucnjaka na placi, samo zato sto mu ovaj zna prodati par keyworda koje ovaj ne kuzi.

stop(); // hammertime! | http://twitter.com/hhrvoje
Moj PC  
0 0 hvala 0
17 godina
odjavljen
offline
Moć SQL jezika u C#-u

Ne vjerujem svojim očima! Ovako nešto...

I stvarno, da gazda vidi ovako što sigurno bi pomislio "Vidi ti njega, pa taj rastura!".

Ne vjerujem, ne vjerujem...

Freak Show Inc.
 
0 0 hvala 0
17 godina
neaktivan
offline
Moć SQL jezika u C#-u

- sve je strpano u jednu tablicu? Stotinjak kolumni posve različitog 'sektora'.

- objekti su mu ogromni?! Stotinjak membera i metoda?

- SQL injection WELCOME!

- Lisp-syndrom? LOL

- WTF "ToString()" na sve živo?!

- parametrizacija anyone?!

- jel' kome palo na pamet koliko memorije guta ova konkatenacija i kakav load stvara?

 

Senior architect... my ass.

Hrvatska je oligarhijska partitokracija s primjesama patokracije.
Moj PC  
0 0 hvala 0
17 godina
odjavljen
offline
Moć SQL jezika u C#-u

Ali kapa dolje za strpljenje! Ovo je stvarno trebalo vremena da se napiše :D

Freak Show Inc.
 
1 0 hvala 0
17 godina
protjeran
offline
Moć SQL jezika u C#-u

Očito čovjek ni za StringBuilder nije čuoOsmijeh

Programko http://programko.bloger.hr
 
0 0 hvala 0
16 godina
offline
RE: Moć SQL jezika u C#-u
naxeem kaže...

- sve je strpano u jednu tablicu? Stotinjak kolumni posve različitog 'sektora'.

- objekti su mu ogromni?! Stotinjak membera i metoda?

- SQL injection WELCOME!

- Lisp-syndrom? LOL

- WTF "ToString()" na sve živo?!

- parametrizacija anyone?!

- jel' kome palo na pamet koliko memorije guta ova konkatenacija i kakav load stvara?

 

Senior architect... my ass.

Ah trebaš vidjeti tek ekipu koja rješava probleme u PHP.u. To su ti pravi pobjednici. Kako vole sebe nazvati - tvrdi koderi.

17 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u
itf4n kaže...

OMFG

((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((

 

Ovo bi moglo izazvati stack overflow u kompajleru :D

 

 

Čisto iz znatiželje sam provjerio kak se Mono drži po tom pitanju (jerbo .NET nemam instaliran, nisam ziher može li se instalirati preko wineta?) i došao malim programčićem do brojke od 49598 zagrada nakon kojih kompajler puca sa "Stack overflow in unmanaged etc." :)

 

Premda, taj broj je vjerojatno nešto manji, jer nekad prođe, a nekad ne.

Programčić se nalazi ovdje: http://pastie.org/549224

17 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u
SasaFrr kaže...

Ah trebaš vidjeti tek ekipu koja rješava probleme u PHP.u. To su ti pravi pobjednici. Kako vole sebe nazvati - tvrdi koderi.

Na što točno misliš??

Q: U čemu radiš site? A: Pa u Dreamweaveru! Naravno! - hahahahahahaha
16 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u

............................................________
....................................,.-'"...................``~.,
.............................,.-"..................................."-.,
.........................,/...............................................":,
.....................,?......................................................\,
.................../...........................................................,}
................./......................................................,:`^`..}
.............../...................................................,:"........./
..............?.....__.........................................:`.........../
............./__.(....."~-,_..............................,:`........../
.........../(_...."~,_........"~,_....................,:`........_/
..........{.._$;_......"=,_......."-,_.......,.-~-,},.~";/....}
...........((.....*~_......."=-._......";,,./`..../"............../
...,,,___.\`~,......"~.,....................`.....}............../
............(....`=-,,.......`........................(......;_,,-"
............/.`~,......`-...............................\....../\
.............\`~.*-,.....................................|,./.....\,__
,,_..........}.>-._\...................................|..............`=~-,
.....`=~-,_\_......`\,.................................\
...................`=~-,,.\,...............................\
................................`:,,...........................`\..............__
.....................................`=-,...................,%`>--==``
........................................_\..........._,-%.......`\
...................................,<`.._|_,-&``................`

17 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u
coder_ kaže...
SasaFrr kaže...

Ah trebaš vidjeti tek ekipu koja rješava probleme u PHP.u. To su ti pravi pobjednici. Kako vole sebe nazvati - tvrdi koderi.

Na što točno misliš??

Valjda na to da većina (barem ja drugačije nisam vidio) tzv. "programera" u PHP-u ima očajne navike koje pokazuju da su zapravo priučeni šarlatani a.k.a. trpanje cijelih CMS-ova u "index.php"; klase, slojevi, segmentacija, patterni... za većinu (barem ovdašnjih) to je SF.

Hrvatska je oligarhijska partitokracija s primjesama patokracije.
16 godina
offline
RE: Moć SQL jezika u C#-u
naxeem kaže...
coder_ kaže...
SasaFrr kaže...

Ah trebaš vidjeti tek ekipu koja rješava probleme u PHP.u. To su ti pravi pobjednici. Kako vole sebe nazvati - tvrdi koderi.

Na što točno misliš??

Valjda na to da većina (barem ja drugačije nisam vidio) tzv. "programera" u PHP-u ima očajne navike koje pokazuju da su zapravo priučeni šarlatani a.k.a. trpanje cijelih CMS-ova u "index.php"; klase, slojevi, segmentacija, patterni... za većinu (barem ovdašnjih) to je SF.

Hehe..

zašto nešto ne napisati iznova, po mogućnosti izmješati markup i PHP maximalno, pa php je zgodan za to jelda.

Šalu na stranu - gledao sam kod jednog "renomiranog" plugina za joomolu - postoji ono što je gore napisao nax - al postoji i nešto drugo - uredno pisanje koda - a ovi nemaju niti jedno niti drugo.
Al nema veze glavno da šljaka - jelda?

16 godina
offline
RE: Moć SQL jezika u C#-u

Doduše iznenadio sam se da je baza relativno razrađena - čak im nije palo na pamet strpati sve u dve tablice, ponavljali su se neki indeksi al to su sitnice  naspram koda, al eto to je valjda dvosjekli mač jezika jednostavnog za naučiti i želje da se odmah postignu "rezultati"

17 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u

Joomla je najveće zlo nakon Visual Basica.

Hrvatska je oligarhijska partitokracija s primjesama patokracije.
16 godina
offline
RE: Moć SQL jezika u C#-u

Dodao bi da je ovaj primjer gore - uvodni - tip je rođeni talent za PHP samo to nije skužio pa je siroče završio  na C#.u i NET.u:)

17 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u
SasaFrr kaže...

Dodao bi da je ovaj primjer gore - uvodni - tip je rođeni talent za PHP samo to nije skužio pa je siroče završio  na C#.u i NET.u:)

A dobro, sad već ukazuješ da je PHP najsmećastiji jezik. Da je jednostavan i da ima mana, to stoji. Ali ako se pravilno koristi, može biti dosta dobar.

Q: U čemu radiš site? A: Pa u Dreamweaveru! Naravno! - hahahahahahaha
16 godina
offline
RE: Moć SQL jezika u C#-u
naxeem kaže...

Joomla je najveće zlo nakon Visual Basica.

Evo da kažem -- radi se o Jomresu -booking sistem.

Jednostavna je stvar - zašto riskriati sistem za navigaciju ako je moguće za svaku malu promjenu nekog elementa neke stranice jednostavno iskopirati template i modificirati markup za promjenu koja je potrebna.
Zamislite recimo da vam se komponenta treba promjeniti za tri boje - onda jednostavno imate tri template filea.

Pa diskovi nisu skupi pobogu.

 

Kažem ja - koderi bez milosti.

16 godina
offline
RE: Moć SQL jezika u C#-u
coder_ kaže...
SasaFrr kaže...

Dodao bi da je ovaj primjer gore - uvodni - tip je rođeni talent za PHP samo to nije skužio pa je siroče završio  na C#.u i NET.u:)

A dobro, sad već ukazuješ da je PHP najsmećastiji jezik. Da je jednostavan i da ima mana, to stoji. Ali ako se pravilno koristi, može biti dosta dobar.

Slažem se. Na koncu konca kao što vidimo navedeni primjer je iz "modernog" C# :)

16 godina
offline
RE: Moć SQL jezika u C#-u

Nije problem u programskom jeziku, već u programeru...

 

Ja pojma nemam o SQLu, ali na sam pogled na kod, okrenuo mi se želudac, a u ušima počela odzvanjat "Any idiot can write code that a computer can read: the trick is writing code that a person can read".

Every hole is a goal!
Poruka je uređivana zadnji put pet 17.7.2009 13:51 (Bukva).
17 godina
offline
RE: Moć SQL jezika u C#-u
naxeem kaže...

Joomla je najveće zlo nakon Visual Basica.

Slazem se!

 

Puna exploita (ne sama ona koliko extra omduli za nju), teska (sama default baza je teska nekih 14 mb... a sto imas u njoj, teblice za clanke), ak ides nesto mijenjati u njoj posidit ces dok nadjes di je sta. Inace mi je nacin na koji ekipa kodira PHP dosta necitak i ne snalazim se najbolje. Dok mi je frend u PHP-u ko riba u vodi. Da se razumijemo, ne mogu reci da znam PHP, ali neka male osnovice poznajem. Npr nekidan sam imao priliku editirati neke module za Zen cart...  Uzas...

I'm going woo woo
Poruka je uređivana zadnji put sub 18.7.2009 20:02 (tnakir).
16 godina
neaktivan
offline
RE: Moć SQL jezika u C#-u

Znaš što? Ova na ti je dobra.

17 godina
odjavljen
offline
RE: Moć SQL jezika u C#-u
Car Filip 1. kaže...

Znaš što? Ova na ti je dobra.

 

Ti nas namjerno zbunjuješ, ili?

Freak Show Inc.
16 godina
offline
RE: Moć SQL jezika u C#-u
Friday kaže...
Car Filip 1. kaže...

Znaš što? Ova na ti je dobra.

 

Ti nas namjerno zbunjuješ, ili?

Pseudo kod? Belji se

Every hole is a goal!
Nova poruka
E-mail:
Lozinka:
 
vrh stranice