DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Opušteno (http://www.devprotalk.com/forumdisplay.php?f=16)
-   -   najgluplja stvar tokom programiranja (http://www.devprotalk.com/showthread.php?t=5862)

cvele 29. 07. 2008. 14:17

najgluplja stvar tokom programiranja
 
Koja je najgluplja greska koja vam se desila tokom pisanja neke aplikacije, a da se pritom zbog nje izgubili najvise vremena?

Licno, meni se ona desila malopre...
Kôd:

foreach($response as $tld->$is_free) {
Uzasno je tesko primetiti... posebno u 200+ linija, a da nepricam o tome kada iznad toga pricas sa perl skriptom koji ti vraca json... pa ne znas dal si lose formatirao json pa je zato array sjeban, il si negde unsetovao array, il perl vraca los rezultat, il je jednostavno ovaj svet pun duhova... i koji sada unknown property... (inace u tld je inicijalizovana klasa)

joj... cirka 4 sata mi je otislo na ovo

Milos Vukotic 29. 07. 2008. 14:38

Meni posljednja 3 dana ovako izgledaju... Vrijeme je da se ide na odmor :|

ivanhoe 29. 07. 2008. 14:50

uf i meni se par puta desio bas taj tip greske (tipa otkucam slucajno $$var) i od tad uvek drzim error_reporting(E_ALL); tokom debuga

conica 29. 07. 2008. 15:33

"=" umesto "==" u IF-u :1039:

cvele 29. 07. 2008. 16:32

Citat:

Originalno napisao conica (Napišite 58066)
"=" umesto "==" u IF-u :1039:

ha :) da to je najcesce (redovno), ali na to sam toliko navikao da je sada to prva stvar koju trazim :D

Dušan Dželebdžić 29. 07. 2008. 17:57

Meni je mnogo vremena trebalo da se odviknem od toga, pošto mi je ostala navika iz Pascala gde je = služilo za proveru vrednosti, a := za dodelu.

Foolproof sistem koji sam ja pokušao kod sebe da primenim, pošto elektrošokovi nisu dali efekta, je sledeći:

Umesto
Kôd:

if ($i==5)...
naučite se da pišete
Kôd:

if (5==$i)...
Efekat je isti kada imate dva znaka jednakosti, ali ako se zeznete i napišete jedan znak, PHP odmah pljuje poruku o grešci.

Meni ovo nije direktno koristilo, jer mi je bilo jako čudno da pišem logičke izraze naopačke, pa sam to jako retko i radio. Sa druge strane, baš zbog tog pisanja naopačke naučio sam da zastanem kod svake if provere, i sad mi se greške mnogo ređe dešavaju.

dinke 29. 07. 2008. 18:11

^ primetio sam da neki developeri kodiraju tim stilom. Meni se licno nije svidelo jer je kod onda manje citljiv. Sve u svemu (barem za PHP), mislim da je E_ALL majka, za PHP naravno :)

mileusna 29. 07. 2008. 20:53

^ Ja sam isto naišao na taj predlog sa 5 == $i ali koliko god se trudio nekako mi nije išlo da tako pišem, tj. onako logički gledano dok čitam kod mnogo je jasnije "ako je i jednako 5"...

ivanhoe 29. 07. 2008. 21:18

znaci ipak ja nisam lud, tj. bar nisam jedini ludak :)

ja nikako ne mogu da se naviknem na naopake logicke izraze, iako je to preporuceni stil kodiranja za PEAR, WP i jos mnoge sisteme..

dinke 29. 07. 2008. 21:50

Njah, to sto PEAR nesto preporucuje to ne znaci da je to po defaultu dobro.

Off Topic: Ja sam pre jedno dve godine pravio interne coding standarde koji su na kraju ispali neka kombinacija PEAR standarda, PHPBB standarda, kao i kompromis izmedju dugogodisnjih preferenci moje malenkosti i jednog top developera sa kojim sam imao zadovoljstvo da radim u to vreme :)

Milos Vukotic 29. 07. 2008. 22:21

^Ne bi to mozda podijelio s nama? :)

ivanhoe 29. 07. 2008. 22:23

pa sve je to stvar toga na sta si istrrenirao mozak... cinjenica je da taj stil pisanja koda pomaze da se izbegnu greske te vrste, ali opet meni je pretesko da svoj zakreceni mozak sad nakon 10+ godina nateram da cita if-ove naopako. S druge strane da tek krecem da radim verovatno mi ne bi predstavljalo problem da se prilagodim..

A sto se coding standarda tice mislim da ne postoje bolji i losiji, samo popularniji i manje popularni... kad su standardi u pitanju uvek treba pratiti gomilu, soliranje je besmisleno..

bluesman 29. 07. 2008. 23:34

Ja sam to donekle "rešio" u samom editoru. Koristim jako mator ali jako dobar editor u kojem mogu da stavim triggere za auto complete (da sprečim advocacy, ne znam da li drugi to mogu, ali ovi neki najpopularniji nisu ni blizu). Tako recimo kucam:

PHP kôd:

foreach 

i odmah dobijem i nastavak

PHP kôd:

foreach ($data as $key => $row)
{
    
$row['|']


I kursor je odmah namešten tu gde je |

Tako imam za mnoge uobičajne stvari uključujući i html, i to ne samo da ubrzava posao nego smanjuje broj grešaka kod tih običnih stvari. Najviše zbog takvih stvari ne menjam editor već 10 godina, a pokušavao sam da koristim ove "modernije" ali sam brzo odustajao.

bNasty 30. 07. 2008. 02:05

Citat:

Originalno napisao ivanhoe (Napišite 58087)
znaci ipak ja nisam lud, tj. bar nisam jedini ludak :)

ja nikako ne mogu da se naviknem na naopake logicke izraze, iako je to preporuceni stil kodiranja za PEAR, WP i jos mnoge sisteme..

Ma to je poshtapalica josh od pre koju deceniju, iz C-a, kada kompajleri nisu davali fensi upozorenja o dodeli u boolean kontekstu.
Sada se baksuzi bune chak i kada bash to hocesh svesno da uradish, tipa if (objekat = new Objekat() ) i treba ti josh jedan set zagrada da ih ucutkash.

Btw, zar ovde niko ne koristi neki programski jezik? Svi ste na PHP-u? ;-)

dinke 30. 07. 2008. 02:23

Citat:

Originalno napisao bNasty (Napišite 58099)
Btw, zar ovde niko ne koristi neki programski jezik? Svi ste na PHP-u? ;-)

Korisnik bNasty je privremeno banovan zbog vredjanja, spamovanja i trolovanja. Ban ce biti ukinut kada korisnik ispise 7 puta tablu sa sledecim sadrzajem:

PHP kôd:

<?php
 
echo "PHP Rulez\n";
?>

Amen :)

bluesman 30. 07. 2008. 02:25

Citat:

Originalno napisao bNasty (Napišite 58099)
Btw, zar ovde niko ne koristi neki programski jezik? Svi ste na PHP-u? ;-)

:krst:

ivanhoe 30. 07. 2008. 07:44

Citat:

Originalno napisao bNasty (Napišite 58099)
Sada se baksuzi bune chak i kada bash to hocesh svesno da uradish, tipa if (objekat = new Objekat() ) i treba ti josh jedan set zagrada da ih ucutkash.

e sto me to iritira, to su ubacili i u javascript, i onda mi napuni error konzolu glupim warninzima.. a ja realno jako retko pogresim oko ==, pa mi je to potpuno nepotrebno..

Milos Vukotic 30. 07. 2008. 08:46

Citat:

Originalno napisao bluesman (Napišite 58094)
PHP kôd:

foreach ($data as $key => $row)
{
    
$row['|']



Raspoređivanje velikih zagrada (braces) na način na koji je Bluesman napisao mi je uvjek bilo daleko čitljivije i logičnije nego ovo na čemu danas većina insistira:
PHP kôd:

foreach ($data as $key => $row){
    
$row['|']


Naročito dođe do izražaja kad imaš više stepena indentacije. Ili se samo meni tako čini? :)

mileusna 30. 07. 2008. 12:40

^ Ja sam jedno vreme koristio jedan standard za C# a jedan za PHP, pa se pogubim kad pređem sa jednog na drugi kod.

Sada koristim
{
}
svuda, doduše C# više ne radim. Ono mi je možda bilo zgodnije pre sa malim radnim površinama, sada sa velikim monitorima jedna linija više ne pravi nikakvu razliku.

ivanhoe 30. 07. 2008. 13:21

Citat:

Originalno napisao Milos Vukotic (Napišite 58111)
Ili se samo meni tako čini? :)

samo se tebi cini :)

to je sve stvar navike, ja sam ranije tako pisao pod uticajem prethodne karijere u Delphiju (gde se koriste BEGIN i END umesto zagrada), ali sam se sad potpuno navikao na ovu sintaxu gde je { na kraju reda... koja uzgred stedi prostor, pa stane vise koda na ekran.. ako je identacija pravilna, nemam apsolutno nikakvih problema sa citljivoscu..

Inace, upravo je zbog ovakvih stvari python genijalan jezik... jos kad me ne bi mrzelo da radim malo vise u njemu..:P

bNasty 30. 07. 2008. 13:37

Citat:

Inace, upravo je zbog ovakvih stvari python genijalan jezik
"It's our way or highway" :)

Btw, kad se vec pricha o zagradama, kao scope-delimiter ovog puta, seca li se neko da li Python automatski kreira novi scope uz svaki indent? A PHP?

misk0 30. 07. 2008. 13:42

Citat:

Koristim jako mator ali jako dobar editor u kojem mogu da stavim triggere za auto complete (da sprečim advocacy, ne znam da li drugi to mogu, ali ovi neki najpopularniji nisu ni blizu). Tako recimo kucam:
Znam da to postoji u Zend Studio, a moguce je i u Eclipse


Citat:

Originalno napisao ivanhoe (Napišite 58128)
samo se tebi cini :)
to je sve stvar navike, ja sam ranije tako pisao pod uticajem prethodne karijere u Delphiju (gde se koriste BEGIN i END umesto zagrada), ali sam se sad potpuno navikao na ovu sintaxu gde je { na kraju reda... koja uzgred stedi prostor, pa stane vise koda na ekran.. ako je identacija pravilna, nemam apsolutno nikakvih problema sa citljivoscu..

Htjedoh ovo reci :) I meni je to bilo logicnije zbog BEGIN / END, ali sad fakat stedis na prostoru ako stavis tu otvorenu zagradu gore na kraj.
Pogotovo mi se svidja highlighting zagrada i mogucnost da ides sa jedne na drugu sa CTRL+M (ZendStudio).

cvele 31. 07. 2008. 07:28

Vecina modernih editora to radi out of the box. Recimo PSPad, koji je moj izbor na win platformi. Na Ubuntu Gedit to radi uz dodatni plugin, na Mac-u textmate... itd To danas i nije neki spektakularan feature, jer ga vecina ima ;)

edit: snippets

ivanhoe 31. 07. 2008. 08:31

Off Topic: jesam ja lud ili PSPad sajt nema download link nigde?
EDIT: nasao sam ga, ali jedva...odlican je editor, ali je sajt idiotski napravljen

conica 31. 07. 2008. 10:15

ma moze vecina da radi sta hoce..editor koji blues koristi ima "neku cudnu moc"
ni ja nikako da se odlepim od njega...:1041:

Milos Vukotic 31. 07. 2008. 10:43

A je li ovo neki fazon tipa "ne uzimaj imena editora svog uzalud" ili samo zaboravljate da kažete kako se zove? :D

Ilija Studen 31. 07. 2008. 10:47

Ne mogu da kažu kako se zove. Toliko je star da su zaboravili! :D

cvele 31. 07. 2008. 12:50

To ti je old school "Homesite" ako se ne varam.

Koristio sam ga ranije, ali je ui poceo da me nervira pa sam presao dalje :)

edit: http://www.adobe.com/products/homesite/

Milos Vukotic 31. 07. 2008. 13:53

^Dobar ti ovaj PSPad :)

Ivan 31. 07. 2008. 14:26

Meni je najzanimljivije kada radim podesavanja na test nalogu a programiram na glavnom, ili obrnuto ;)

robi-bobi 31. 07. 2008. 15:02

^ ili imash nekoliko brancheva ali su ti svi load-nuti u project, pa CTRL+klik na metod ti otvori klasu iz drugog brancha ....

jablan 06. 08. 2008. 19:27

Evo jedna sveža glupost, od danas:

U Rubiju postoji operator dodele ||=, koji predstavlja uslovnu dodelu, tj. promenljivoj sa leve strane dodeljuje vrednost sa desne ako promenljiva nije definisana (za PHP programere: nešto za šta vama obično treba par linija koda i pozivanje funkcije (ustvari nije čak ni funkcija, nego "language construct", ma šta to značilo) isset ;)).

Ja sam tokom kodiranja po analogiji sa ostalim "povratnim" operatorima tipa +=, *=, mahinalno podrazumevao da će se izraz sa desne stranice uvek evaluirati (npr, ako kucate a += f(b), funkcija f će se uvek izvršiti). E pa, u slučaju operatora ||= neće, u slučaju da je promenljiva definisana.

robi-bobi 06. 08. 2008. 22:58

[flameOn]^ sreca pa drugi za to pisu nekolko linija koda[/flameOn]
interesantna konstrukcija :)
priznajem da je nesto dosta specific, i da mi trenutno izgleda kao nenuzna skracenica ali sigurno da kao i += ima smisla


mislis na ovako nesta?
PHP kôd:

//valjda najkraci php kod za ovo gore bi bio:
$var = !isset($var) ? f(b): null;
$var = !isset($var) ? f(b); // PHP 5.3 :P 


bluesman 07. 08. 2008. 01:58

1, ... 2, ... 3, ....45678910... moram :)
PHP kôd:

$var |= null

ce da dodeli $var ili vrednost $var (ako je definisana) ili null. U tom slucaju je $var = null.

Ali sta ja znam, ja sam samo php programer, zar nije vec malo degutatno to infantilno prozivanje php programera? Mislim, doci ce do toga da moramo da pokazujemo izvode sa deviznih racuna, valjda ce onda da prekine to? Osim ako to prozivanje nije u skladu sa naslovom ove teme?

p.s. Mislim ako cemo da se prozivamo, bar nemojte ruby da spominjete kao nesto jako dobro.

robi-bobi 07. 08. 2008. 02:15

^ ovo nisam znao
mada izgleda opet nije ono sto je jablan rekao

sa druge strane, ja volim kod koji se cita lakse, iako je mozda duzi, cak i ovaj skraceni if skoro ne koristim
naravno ovo je vec stvar ukusa jer ce nekom biti citljiviji skraceni if u jednom redu



sa druge strane, da ne vucemo perl-ase za jezik, t.j. za shift :D

ivanhoe 07. 08. 2008. 02:27

@blues: ako $var nije definisano $var je vec null, nema bas smisla ovaj pristup...

BTW, to isto moze da se pise i u perlu, bez problema radi: $a ||= $b || $c || $d; ali i dalje smatram da je uzasno necitko.

bluesman 07. 08. 2008. 02:29

Zar nije malo kontradiktorno da se balavi nad strongly-typed languages kao vrhuncu programiranja a onda se opet odusevljavamo kada "sve moze"? Na kraju, bas tamo gde sve moze da prodje, najcesce se i desavaju greske koje ne mozes da provalis satima.

btw, moze i ovo $var |= function();

Tacno je da ne radi ono sta je jablan rekao (tek sada sam pazljivo procitao sta je napisao) ali ja sam vise komentarisao tvoj komentar isset(), jer bas naprotiv ovde se uvek izvrsava i desna strana, sto je meni, ovako na prvi pogled i ocekivano ponasanje jedne ovakve konstrukcije.

edit 2 ivanhoe: da, ali bar ne generise gresku jer nije null nego je undefined (opet, zavisi od php.ini).

jablan 07. 08. 2008. 10:00

Citat:

Originalno napisao bluesman (Napišite 58435)
zar nije vec malo degutatno to infantilno prozivanje php programera?

Mislim da nije degutantno ako rezultira konstruktivnom raspravom i ako neko nauči nešto novo (npr, ja za operator |= u PHP-u). Sa druge strane, ja sam prvi koji bih želeo da 1) PHP što brže napreduje 2) naši PHP programeri što pre postanu napredni korisnici istog (kad ih već mrzi da uče nešto drugo) i moj sitan flejm shvati kao moj mali doprinos tome.

BTW, nisam skapirao baš najbolje šta si hteo da kažeš sa onim "balavljenjem nad strongly-typed jezicima".

Što se čitljivosti tiče, stvar je potpuno subjektivna (setimo se prelaza sa paskaloidnih jezika na C, svima su vitičaste zagrade bile ultranečitke pored elegantnih begin i end, pa sve svi na kraju navikosmo). Ono što je zaista bitno kod nekog jezika je doslednost u njegovom dizajnu i ponašanju.

ivanhoe 07. 08. 2008. 10:20

hm, pa jeste subjektivna kad si vec naucio jezik, ali kad ga ucis to usporava krivu ucenja... perl nije izgubio popularnost zbog cudnog OO modela (sto je realno jedina prava slabost), nego kad pitas ljude zasto ne uce perl obicno se zale na slabu citljivost koda..

robi-bobi 07. 08. 2008. 10:38

Citat:

Originalno napisao jablan (Napišite 58447)
Sa druge strane, ja sam prvi koji bih želeo da 1) PHP što brže napreduje 2) naši PHP programeri što pre postanu napredni korisnici istog (kad ih već mrzi da uče nešto drugo)

ja se nadovezah na tvoj mali flejmic onako drugarski, a ti sta urade

ne valja ti ovo :)


1) mislis da PHP ne napreduje brzo?
koliko god imao nedostataka, to je jedan od jezika koji vrsi posao za koji je namenjen
i vrsi ga dobro
i napreduje

2) ovde imas dve recenice koje ne znam da li da uopste komentarisem
ajd recimo da mislis da nasi (sto nasi, a ne svi, ili pak ...) php programeri nisu napredni korisnici istog
i recimo da je tvoje pravo da imas takvo misljenje (iako ne vidim otkud ti)

a za ovo u zagradama ...
"kad nas vec mrzi ...."
lol :)

dakle, priznajem, mrzi me da ucim ruby
i zato sto tool (alatka, pribor, jezik, ako hoces i platforma) koju koristim mi daje sve sto mi treba

ukoliko bih pisao stvari kod kojih PHP mi ne bi vrsio posao, veruj mi, ne bih bio lenj i izabrao bih vrlo brzo drug jezik

@ivanhoe: tacno
ja licno, iako perl poznajem samo povrsno, sam mishljenja da je to mocan jezik
mocniji od PHP-a, recimo
ukoliko se u odredjenoj firmi (projektu) naloze dobri coding conventions, perl nije uopste necitljiviji od nekog drugog jezika



PHP programerski jezik mu dodje kao engleski jezik
jednostavan, "ceo svet" ga zna, i svuda mozes sa njim

sta ce mi da ucim japanski :)
nije sto me mrzi, nego sto mi ne treba
a i ne idem u japan
a cak i da odem
i oni pricaju engleski :P


P.S. da dodam:
bolje znati osrednji jezik odlicno, nego najkulmegasupercarskiji jezik onako povrsno


Vreme je GMT +2. Trenutno vreme je 06:49.

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.