DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > Programiranje
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Programiranje Java, Perl, VB, ASP, .NET, C, C++, Pascal, Delphi Sponzor: VIP izazov 3

Odgovori
 
Alati teme Način prikaza
Staro 14. 01. 2006.   #1
degojs
I'm a PC too.
Wrote a book
 
Avatar degojs
 
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
degojs će postati "faca" uskorodegojs će postati "faca" uskoro
Default

Citat:
apsolutno si u pravu, medjutim ono sto ti kompajler automatski pruza je da program pukne u toj situaciji. Ako zelis da uhvatis exception (a na webu to svakako zelis) moras da napises kod koji ce to da uradi, a to isto mozes da uradis i u script jezicima, sva 3 ispljuvana jezika php5, perl i python podrzavaju sasvim fino error handling u zeljenom bloku.
Prvo, ja ovo ništa ne pišem da bi bilo šta pljuvao. Ako si stekao takav utisak na osnovu mojih poruka - grešiš.

Kakav exception kad ja imam GARANCIJU da mi je prosleđen tip int kao ulazni parametar?

Pa i onaj ko koristi moju klasu dobiće još za vreme pisanja koda ili kompjaliranja poruku da poziva funkciju sa neodgovarajućim tipom podataka. Dakle, daleko pre izvršenja aplikacije. A ko će baš da testira sve moguće gluposti..?

Citat:
S druge strane u C-u sam nebrojeno mnogo puta upucao greskom float u integer ili kopirao veci string u kraci, pa se onda zezao da ispravljam, rekompajliram i linkujem sve ponovo
Pazi, sva bolja okruženja (Netbeans, Visual Studio, npr.) ODAVNO imaju mogućnost da te još za vreme programiranja lepo obaveštavaju o ovakvim stvarima.. Ne vidim kako je to problem. Nismo više u 80-im. Nemoj sad da se hvataš za C koji su koristili ko zna ko, gde i kada.. Problemi sa stringovima? Da li znaš koliko je to besmislena i u Javi i u C#, a i u C++ kako mi se čini?

I kako rekoh - use the right tool for the job. C ima svoju primenu i dan danas. Nećem valjda sad o tome

Citat:
Int prosledjen umesto stringa, ili obrnuto u vecini skript jezika NIJE GRESKA, jer jezik sam radi casting kako treba i sve ce savrseno lepo funkcionisati, operatori ce dobiti tacno velicinu sa kojom ocekuju da rade i nema problema.
Interesantno, šta će da se desi kada treba da se sabera 1 i "A"?
Pretpostavljam dobićeš string "1A"?

I šta sad? U bazu podataka u kolonu koja je definisana kao int, hoćemo da upišemo "1A" ? Greška?

Nećeš dobiti string "1A"? Dobićeš grešku za vreme IZVRŠENJA jer program ne može da sabere 1 i "A"? I onda neko treba da gleda kod u mojoj klasi, jer je greška tamo prijavljena?

Da ne napominjem koliko je lakše i bolje da se greška uhvati za vreme kompajliranja ili još pre.

Stvar je u tome da NEMAŠ uvek kontrolu nad svim delovima koda. Tako da ne znaš ko i sa kakvim parametrima će da zovne tvoju funkciju. Možda će da zaboravi da proveri da li je korisnik uneo broj ili je greškom otkucao i neko slovo? Moja komponenta sa foo(int p) neće da pukne zbog toga i SIGURNO je bolje da korisnik moje klase dobije obaveštenje o grešci i ispravi grešku u SVOM kodu sa kojim je upoznat, nego da gleda gde i zašto moja klasa nije uspela da upiše rezultat u bazu. Možda nema sors kod, a i da ga ima.. sad treba da gleda po mom kodu..?

Ako smo podelili posao između tebe i mene, gde ti radiš front-end i biz layer a ja data-access layer npr., jasno da nije potrebno da i ti i ja proveravamo da je korisnik uneo broj tamo gde se traži broj a ne da imamo i neko slučajno otkucano slovo? To je tvoj posao, a ja ću samo da "kažem" funkcija prima parametar int i ne brinem o tome..

Da ponovim: ne pričam ovo u smislu "A je glupost, B je jedino dobro." Daleko od tog, ali mogu valjda da kažem gde vidim prednosti jednog pristupa u odnosu na drugi.
__________________
Commercial-Free !!!

Poslednja izmena od degojs : 14. 01. 2006. u 08:43.
degojs je offline   Odgovorite uz citat
Staro 14. 01. 2006.   #2
bojan_bozovic
expert
Master
 
Avatar bojan_bozovic
 
Datum učlanjenja: 20.12.2005
Poruke: 730
Hvala: 0
0 "Hvala" u 0 poruka
bojan_bozovic is on a distinguished road
Default

@ivanhoe

Garbage in, garbage out.

Dobijes tokom izvrsenja argumenat koji nije u odgovarajucem opsegu i uradis INSERT ili UPDATE... Ooops... Cak i u skript jeziku bi bilo bolje da se sve automatski proverava, jer to je svrha tipa/klase, da se fizikalisanje od strane programera smanji, ili bi nam sve bio 32bitni pointer, ko u asembleru
bojan_bozovic je offline   Odgovorite uz citat
Staro 14. 01. 2006.   #3
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

Sad je ispalo da tebi odgovaram na postove, ali u stvari cela prica je krenula oko onoga sto je Bojan pisao, a on je ispljuvao skript jezike, po meni bez dobrih argumenata...zato pominjem pljuvanje...

Citat:
Originalno napisao degojs
Interesantno, šta će da se desi kada treba da se sabera 1 i "A"?
Pretpostavljam dobićeš string "1A"?

I šta sad? U bazu podataka u kolonu koja je definisana kao int, hoćemo da upišemo "1A" ? Greška?

Nećeš dobiti string "1A"? Dobićeš grešku za vreme IZVRŠENJA jer program ne može da sabere 1 i "A"? I onda neko treba da gleda kod u mojoj klasi, jer je greška tamo prijavljena?
dobices run-time exception...znaci umesto da ti prilikom kompajliranja program kaze parametri za tu i tu funkciju se ne match-uju, dobice kod prvog pokretanja (a to je ekvivalent kompajliranja za skript jezike) poruku da ti tipovi podataka nisu ok, bilo da ti to javi baza, ili da interpreter prijavi da ne mozes da sabiras broj i text....a kad pogledas call stack videces da je ta greska potekla od tvog poziva... sa druge strane ako posaljes '1' umesto 1, to ce da radi savrseno, dok kod jezika sa striktnim tipovima podataka je to greska, koju ces relativno lako da resis, ali takodje i mnogo lakse i cesce da napravis.

mislim slazem se, jeste lepse ako ti kompajler to odmah prijavi, narocito kod JIT kompajliranja, ustedece ti 10-tak minuta posla, ali nije bas toliko strasno i bez toga, zapravo ono sto ja pokusavam da kazem je da naprosto nije istina da se bez toga ne moze, kao sto Bojan tvrdi...a imas s druge odredjenu dozu gnjavaze koju striktni tipovi podataka i kompajliranje nose sa sobom, koja ce po mom iskustvu da te kosta vise od tih 10 ili 15 ustedjenih minuta....odnosno jeste da ces brze nalaziti greske, ali ces ih mnogo cesce i praviti, jer slanje 'ABC' tamo gde se ocekuje 123 zahteva krupan propust developera (u rangu toga da ne zna koji parametar sta predstavlja), i ne desava se cesto, a greske kod castinga su cesta pojava....tako da je pitanje sta je efikasnije za brz razvoj, retki bagovi koji se sporije resavaju, ili cesti bagovi koje lako resis ?
__________________
Leadership is the art of getting people to want to do what you know must be done.

Poslednja izmena od ivanhoe : 14. 01. 2006. u 16:59.
ivanhoe je offline   Odgovorite uz citat
Staro 14. 01. 2006.   #4
bojan_bozovic
expert
Master
 
Avatar bojan_bozovic
 
Datum učlanjenja: 20.12.2005
Poruke: 730
Hvala: 0
0 "Hvala" u 0 poruka
bojan_bozovic is on a distinguished road
Default

@ivanhoe

Ne radi se tu o skript jezicima - radi se prakticno o striktnim tipovima, ako ocekujes argument u nekom opsegu, a zbog baga ko zna gde dobijes broj van opsega i uradis UPDATE ili INSERT? Bolje je da te onaj koji je napravio kompajler/interpreter postedi rucne provere, jer je to tek zamorno, i uzima vise vremena nego konverzija u drugi tip, pod uslovom da program ima izvesnu slozenost. Ako je program trivijalan nema problema da pises na cemu hoces, ali ako neko drugi moze da zabrlja funkcije koji pozivaju tvoju, sto degojs rece, bolje je da trazi gresku u svom kodu nego da gleda moj ;-) Sto je program kompleksniji striktnost jezika je sve veca prednost, pogotovu kad radis u timu, zato je bolja Java nego PHP i to garant, kad govorimo o velikim projektima (iako ja Javu ne znam, sigurno je tako). Pazi, tradicionalni programski jezici na osnovu koje je Java pravljena (Ada 95, C++) koriste se za programe neuporedivo vece obimnosti od web aplikacije, i napravljeni su upravo za code reuse i timski rad na golemim projektima. Moras da proveravas ulaz za funkciju ako radis u timu, i zato je bolje da ti jezik to sam radi.

Citat:
a imas s druge odredjenu dozu gnjavaze koju striktni tipovi podataka i kompajliranje nose sa sobom, koja ce po mom iskustvu da te kosta vise od tih 10 ili 15 ustedjenih minuta....
Da pises ti PostNuke a ne formmail. Toliko. Sto veci program to vise vremena dobijas bez rucne provere tipa podastaka koji idu u funkciju.

Dalje, i brze je kad je provera tipova automatska, jer je odradjena na brzom kompajliranom jeziku. Evo sta dobih sada (nakon sto sam pola sata pokusavao da pristupim sajtu uz ono DBD:MySQL error)

Citat:
Problemi u radu

Problemi sa opterecenjem Servera

Korisnici Jabbera mogu da nam se pridruze na chat grupi "elitesecurity@chat.elitesecurity.org" za real-time status.


Hvala na razumevanju i strpljenju,
ES team.
Dakle, govorimo o velikim projektima sa aspekta programera (npr. PostNuke) a ne sa aspekta menadzera ;-))) zar ne? ;-)))

Poslednja izmena od bojan_bozovic : 14. 01. 2006. u 16:59.
bojan_bozovic je offline   Odgovorite uz citat
Staro 15. 01. 2006.   #5
degojs
I'm a PC too.
Wrote a book
 
Avatar degojs
 
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
degojs će postati "faca" uskorodegojs će postati "faca" uskoro
Default

Mislim da ivanhoe oooodavno nije koristio neki dobar alat tipa Visual Studio ili Netbeans pa otud i takvi komentari koji meni nekako liče na nešto što je možda bila gnjavaža pre 10 godina. Danas, ja ne vidim kako tipovi mogu da predstavljaju smaranje, ako koristiš dobar IDE, pogotovo kad od nedavno čak i MS daje VS (Express) besplatno.

Jednostavno, ovi alati su toliko napredovali da taj argument, bar meni, ne stoji uopšte.
__________________
Commercial-Free !!!
degojs je offline   Odgovorite uz citat
Staro 15. 01. 2006.   #6
zextra
Boris
Grand Master
 
Avatar zextra
 
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
zextra is on a distinguished roadzextra is on a distinguished road
Default

O da, stoji i te kako, posebno kad pises, recimo, programe za linux u vim-u i kompajliras preko gcc-a. Tada ti dodje prosto kao osvezenje kada treba nesto na brzinu da skucas u perlu jer ima auto-casting, ali uz "use strict;" i "use warnings;" sve dolazi na svoje mesto.
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams

Poslednja izmena od zextra : 15. 01. 2006. u 19:50.
zextra je offline   Odgovorite uz citat
Staro 15. 01. 2006.   #7
nesh
član
Certified
 
Avatar nesh
 
Datum učlanjenja: 18.08.2005
Lokacija: Niš
Poruke: 80
Hvala: 1
0 "Hvala" u 0 poruka
nesh is on a distinguished road
Pošaljite ICQ poruku za nesh Pošaljite poruku preko AIM za nesh Pošaljite poruku preko Yahoo za nesh
Default

Citat:
Originalno napisao ivanhoe
mislim slazem se, jeste lepse ako ti kompajler to odmah prijavi, narocito kod JIT kompajliranja, ustedece ti 10-tak minuta posla, ali nije bas toliko strasno i bez toga, zapravo ono sto ja pokusavam da kazem je da naprosto nije istina da se bez toga ne moze, kao sto Bojan tvrdi...a imas s druge odredjenu dozu gnjavaze koju striktni tipovi podataka i kompajliranje nose sa sobom, koja ce po mom iskustvu da te kosta vise od tih 10 ili 15 ustedjenih minuta....odnosno jeste da ces brze nalaziti greske, ali ces ih mnogo cesce i praviti, jer slanje 'ABC' tamo gde se ocekuje 123 zahteva krupan propust developera (u rangu toga da ne zna koji parametar sta predstavlja), i ne desava se cesto, a greske kod castinga su cesta pojava....tako da je pitanje sta je efikasnije za brz razvoj, retki bagovi koji se sporije resavaju, ili cesti bagovi koje lako resis ?
Nešto sam već pomenuo u prethodnim post-ovima.

Glavna razlika (IMHO) je to što mi ovde pričamo o web programiranju. Tako da će gooomila parametara biti najobičniji stringovi (ne računajući na neki od RPC protokola), samim tim skoro sve konverzije će se ionako morati da urade u samom kodu. Definisani tipovi podataka će me sprečiti da ja (ili korisnik klase/funkcije) ne prosledim pogrešan podatak - lepo, iako će to u svakom bolje organizovanom projektu svejedno naloviti unittest-ovi, ali ko će sprečiti korisnike sw-a da pošalju pogrešne podatke? Definisani tipovi!? Pa većina propusta kod www aplikacija pisanih u kompajliranim jezicima potiče baš od toga (buffer overrun, ...). Tu ne pomažu striktni tipovi već dobar exception handling sistem i kvalitetno napisan kod.

Daleko od toga da C/C++/etc nisu za web aplikacije, ali glavni razlog za korišćenje tzv skript jezika je brzina razvoja sw-a.

Što se performansi tiče, koliko ko troši CPU-a je skroz nebitno kada web app, ionako, skoro 90% vremena provede čekajući na I/O.
__________________
Nebojša Đorđević - nesh
Lead developer / Younify
nesh je offline   Odgovorite uz citat
Staro 15. 01. 2006.   #8
bojan_bozovic
expert
Master
 
Avatar bojan_bozovic
 
Datum učlanjenja: 20.12.2005
Poruke: 730
Hvala: 0
0 "Hvala" u 0 poruka
bojan_bozovic is on a distinguished road
Default

Cekaj malo, ako ti definises promenljivu page : Integer range 1 .. 3 imas izuzetak automatski kad imas url tipa http://example.com/?page=4 nije li bolje tako?
bojan_bozovic je offline   Odgovorite uz citat
Staro 15. 01. 2006.   #9
degojs
I'm a PC too.
Wrote a book
 
Avatar degojs
 
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
degojs će postati "faca" uskorodegojs će postati "faca" uskoro
Default

Citat:
Ček, od kada Java/C# ima manuelnu alokaciju memorije??
Od kad nemaju?

String p = request.getParameter( "username" );
Customer c = new Customer( p );

Šta je to, u obe linije? Kakve veze upravljanje memorijom ima sa strongly/loosely typed pričom, opet te pitam? Pa i u C++ možeš da koristiš garbage collection. Ili string klasu.

Nesh, ti definitivno ne znaš o čemu pričaš. Mene više mrzi da tupim i odgovaram.

Ako ti više odgovaraju loosely typed jezici, slobodno ih koristi. Daleko od toga da nisu dobar izbor pa gomila sajtova je urađena u VBScriptu (ASP), PHP-u i slično tako da niko neće da kaže da su loši, da ne može, itd. Ali nemoj da pričaš stvari koje ne stoje za ove druge. I daj.. pa nemoj da pričaš svašta, uozbilji se malo
__________________
Commercial-Free !!!

Poslednja izmena od degojs : 15. 01. 2006. u 22:11.
degojs je offline   Odgovorite uz citat
Staro 15. 01. 2006.   #10
bojan_bozovic
expert
Master
 
Avatar bojan_bozovic
 
Datum učlanjenja: 20.12.2005
Poruke: 730
Hvala: 0
0 "Hvala" u 0 poruka
bojan_bozovic is on a distinguished road
Wink

@nesh

http://www.usenix.org/publications/l...ang/yang_html/

To je potpuni 2D benchmark. A ako treba 128Mb tekstura za 3D da se prenese za X rezultati su jos gori.

Poslednja izmena od bojan_bozovic : 15. 01. 2006. u 21:56.
bojan_bozovic je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Izbor PHP Framework dootzky PHP 100 21. 02. 2010. 18:15
Forum za web tehnologije Pedja Obaveštenja, predlozi i pitanja 1 24. 08. 2006. 13:50


Vreme je GMT +2. Trenutno vreme je 07:39.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.