Pereiti prie turinio

Išbandykit mano TVS


Rekomenduojami pranešimai

Tuomet turiu tau pasakyti kai ką svarbaus.

 

Kol dar ne per vėlu, JEI dar ne per vėlu - ugdyk įprotį tinkamai komentuoti savo kodą! VISADA VISADA VISADA! Nesvarbu, sau rašai, įmonėje dirbi ar paleidi atviro kodo forma, be jokių išimčių, visada komentuok savo klases ir metodus. Tinkamai formatuok savo kodą, programuok pagal konvencijas ir standartus. Pasidomėk visu tuo ir skirk tam DAUG laiko, geras programuotojas privalo rašyti gražų ir lengvai skaitomą kodą, nes niekam tu nebūsi reikalingas kaip programuotojas, jei darysi tokį bardaką.

 

Lygiavimai - šlubuoja. Tarpeliai - apskritai beveik neegzistuoja. Komentarai - pavieniai, triavialūs dalykai užkomentuoti (panašu, kad tik tose vietose, kur kodas buvo paimtas iš kitų šaltinių) - labai didelis minusas.

 

Pats dirbu didelioje kompanijoje su dideliais tarptautinio masto projektais - patikėk, visa tai yra svarbu dirbant su rimta programuotojų komanda, o jei norėsi dirbti prie tikrai rimtų projektų - dirbsi komandoje.

 

Greitas pavyzdys: pažiūrėk į, tarkim, Symfony 2 karkaso source kodą. Tiesiog blizga, visur DocBlokai, komentarai, detalumas. Kodas surašytas meistriškai, tvarkingai suformatuotas, lengva skaityti, lengva suvokti, lengva extendinti ir rašyti savo papildomus bundl'us.

 

Štai tokio lygio kodą mes rašome ir tau patariu ties šituo dirbti. Įvairių praktiškų programavimo paradigmų, patternų, praktikų ir standartų žinios yra vertingiau, nei mokėti kuo daugiau funkcijų pavadinimų mintinai ar sugebėjimas per dieną parašyti nežmogiškai daug (plius minus) veikiančio kodo, kurį galima bus tiesiog CTRL+A ir DEL, nes niekas su tuo tavo kodu dirbti negalės arba darbas su juo bus tiesiog neefektyvus, jo nesupras ir žmonėms bus lengviau jį tvarkingai perrašyti, kas reikalauja laiko ir kitų resursų, todėl neapsimoka. Padirbėk šioje vietoje, bei linkiu pasisekimo! :)

Dėkui už pastabas ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

JEI dar ne per vėlu - ugdyk įprotį tinkamai komentuoti savo kodą! VISADA VISADA VISADA!

 

Toli gražu nebūtina visada komentuoti kodą. Esu skaitęs knygų, kuriose kaip tik patariama komentarų vengti. Ir juos naudoti tik labai išskirtiniais atvejais. Jei nori rašyti komentarą, vertėtų pažiūrėti į patį metodą. Jo antraštė , argumentai, kintamųjų vardai ir visas turinys turi būti aiškus, kad kitas galėtų vien iš jo turinio nesunkiai pasakyti ką metodas/funkcija daro. Tas vėlgi veda į kitą įprotį - tinkamai rašyti funkcijas. Jos neturi būti apkrautos, turi daryti tiksliai vieną dalyką, tada viskas bus aišku ir be komentarų.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Toli gražu nebūtina visada komentuoti kodą. Esu skaitęs knygų, kuriose kaip tik patariama komentarų vengti. Ir juos naudoti tik labai išskirtiniais atvejais. Jei nori rašyti komentarą, vertėtų pažiūrėti į patį metodą. Jo antraštė , argumentai, kintamųjų vardai ir visas turinys turi būti aiškus, kad kitas galėtų vien iš jo turinio nesunkiai pasakyti ką metodas/funkcija daro. Tas vėlgi veda į kitą įprotį - tinkamai rašyti funkcijas. Jos neturi būti apkrautos, turi daryti tiksliai vieną dalyką, tada viskas bus aišku ir be komentarų.

This. http://www.codinghorror.com/blog/2008/07/coding-without-comments.html :)

 

Jeigu atsidaryčiau failą ir ten būtų krūva žalio teksto - tą pačią dieną išeičiau į vidutinę įmonę dirbančią su savo projektais ir neturinčią užsienio leadų, kurie į mus žiūri kaip į mažus vaikučius ir liepia viską komentuoti. :D

Redagavo Deviltry
Nuoroda į pranešimą
Dalintis kituose puslapiuose

if(User::loggedIn()) die(kick());

Die nenaudok tokiem dalykam. returnink ir outputink geriau.

kitas dalykas

require_once("config.php");
require_once("core.php");
require_once("classes/database.php");
require_once("classes/user.php");
require_once("classes/module.php");
require_once("classes/page.php");

 

Pasidaryk kokį autoloaderį geriau, nei daugelyje failų requirink. Jei tau reiks dadėt ką nors, tai visus redaguot turėsi.

 

Neaprašinėk dviejų klasių viename faile:

https://github.com/Gugis/cms/blob/master/classes/database.php

 

Na ir gali gi naudot kokį frameworką kaip minėjo. O komentarai, formatavimas manau irgi aktuali tema, bet jau tai minėjo. Ir dar, jei naudoji phpStorm pabandyk php codesniffer ir php mess detector pasileist, mažiau crapo paliksi po savęs ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

This. http://www.codinghorror.com/blog/2008/07/coding-without-comments.html :)

 

Jeigu atsidaryčiau failą ir ten būtų krūva žalio teksto - tą pačią dieną išeičiau į vidutinę įmonę dirbančią su savo projektais ir neturinčią užsienio leadų, kurie į mus žiūri kaip į mažus vaikučius ir liepia viską komentuoti. :D

Aš ne čia skaičiau. Knygoje "Clean code" mačiau patarimus. Tikrai patariu visiems perskaityti.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš ne čia skaičiau. Knygoje "Clean code" mačiau patarimus. Tikrai patariu visiems perskaityti.

http://www.urbandictionary.com/define.php?term=this /facepalm

/facepalm paaiškinimas čia: http://www.urbandictionary.com/define.php?term=facepalm

 

Vietoje clean code lankstinuko, asmeniškai, siūlyčiau "Code Complete".

Redagavo Deviltry
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na manau pats supranti, kad saugodamas ten username ir password darai didžiulę klaidą?

 

Kodėl nenaudoji sesijų? Ir išvis, kam tau saugoti username ir password?

Suprantu, skaičiau apie tai paskutiniu metu nemažai.

Sesijas naudoju, o sausainiai remember me funkcijai.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Suprantu, skaičiau apie tai paskutiniu metu nemažai.

Sesijas naudoju, o sausainiai remember me funkcijai.

 

Geriau daryk taip:

Į database įrašyk userio id ir password'ą, bei tam tikrą id. Paimk tą ID ir užkoduok dvikrypčiu kodavimu, tada užsetink cookie su užkoduotu ID, o kai žmogus ateina - tikrink pagal sausainėlio ID jo duomenis :) ( dėl didesnio saugumo gali saugoti IP ir t.t. ) ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Geriau daryk taip:

Į database įrašyk userio id ir password'ą, bei tam tikrą id. Paimk tą ID ir užkoduok dvikrypčiu kodavimu, tada užsetink cookie su užkoduotu ID, o kai žmogus ateina - tikrink pagal sausainėlio ID jo duomenis :) ( dėl didesnio saugumo gali saugoti IP ir t.t. ) ;)

Mačiau, daug kur taip rekomenduojama.

Bet pažiūrėjau net pats wordpressas į database neįrašinėja jokių tokenų, arba aš kažką praleidau. :unsure:

Dėl IP tai bėdų atsiras tiems kurie sakykim iš skirtinų WiFi taškų jungiasi.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Modestai, bet tu tai paranojikas, kam tiek žaistis su atskiru koduotu id, pasiimi paprastą id užkoduoji ir kuri cookie. Kas dėl sausainėlių, tai rekomenduočiau užkoduoti jo duomenys su unikaliu tokenu bei kaip jau Modestas minėjo geriau nesaugoti slaptažodžio sausainiuose, o tai draugas niekadėjas priėjęs prie kompiuterio perskaitys.

 

Venk naudoti @ (error controll'ingą),

@$url = $_SERVER['HTTP_REFERER'];

pvz. šiuo atveju įmanoma apsieiti be jo

$url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';

 

P.S. Baisu kai nieks neužkomentuota, net DOCblokų nėra

Redagavo w3ber
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Modestai, bet tu tai paranojikas, kam tiek žaistis su atskiru koduotu id, pasiimi paprastą id užkoduoji ir kuri cookie. Kas dėl sausainėlių, tai rekomenduočiau užkoduoti jo duomenys su unikaliu tokenu bei kaip jau Modestas minėjo geriau nesaugoti slaptažodžio sausainiuose, o tai draugas niekadėjas priėjęs prie kompiuterio perskaitys.

 

What? Kur aš sakiau, kad reikia kažkokio tai atskiro id? :D Aš sakiau tik tam tikrą ID, tai nežinau ar jis padarys jį su AI ar padarys jį su uniqid(); ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Modestai, bet tu tai paranojikas, kam tiek žaistis su atskiru koduotu id, pasiimi paprastą id užkoduoji ir kuri cookie. Kas dėl sausainėlių, tai rekomenduočiau užkoduoti jo duomenys su unikaliu tokenu bei kaip jau Modestas minėjo geriau nesaugoti slaptažodžio sausainiuose, o tai draugas niekadėjas priėjęs prie kompiuterio perskaitys.

 

Venk naudoti @ (error controll'ingą),

@$url = $_SERVER['HTTP_REFERER'];

pvz. šiuo atveju įmanoma apsieiti be jo

$url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';

 

P.S. Baisu kai nieks neužkomentuota, net DOCblokų nėra

Perskaitys tik hashą.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vietoj to, kad duotum nuorodas į šį lankstinuką, geriau duotum į mano minėtą knygą, kurią pretty much yra perksaitę visi programuotojai (neperskaitęs Code Complete - nesi programuotojas?).

Rule #1 of security for programmers: Don't roll your own. Naudoji framework'o autorizacijos bibliotekas ir viskas. Kaip toks paprastas dalykas dar gali kažką gluminti ar būtų vertas 9+ min video? :)

Redagavo Deviltry
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pala, kas čia per nesąmonės? Nuo kada cookies vartotojo duomenų saugojimas į sausainėlį reikalingas "remember me" (redaguota specialių poreikių žmonėms)? Nuo kada kažkokie dvikrypčiai ID šifravimai?? Dedi userid į sesiją, sesijos neištrini, kai naršyklė uždaroma. VISKAS. Kokios problemos?

 

http://lt1.php.net/session_set_cookie_params

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pala, kas čia per nesąmonės? Nuo kada cookies reikalingi "remember me"? Nuo kada kažkokie dvikrypčiai ID šifravimai?? Dedi userid į sesiją, sesijos neištrini, kai naršyklė uždaroma. VISKAS. Kokios problemos?

 

http://lt1.php.net/session_set_cookie_params

"nuo kada cookies reikalingi", proceeds to talk about cookies. :D O tu super advanced developer ir laikai local storage? :D

Redagavo Deviltry
Nuoroda į pranešimą
Dalintis kituose puslapiuose

"nuo kada cookies reikalingi", proceeds to talk about cookies. :D O tu super advanced developer ir laikai local storage? :D

Galima ir be išsidirbinėjimo.. :) Bet kas suprastų, jog paprasčiausiai supriešinau kažkokius dviračio išradinėjimus, o tuo labiau sensitive duomenų saugojimą į sausainėlius su sesijos naudojimu, kaip pridera :) Kad sesijos ID laikomas sausainėlyje, ką gi aš padarysiu... :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

Gal geriau pasalink sita projekta, kol kas nors jo nepanaudojo... Kiekvienam kampe saugumo skyles paliktos, vien sita eilute perskaicius aisku kiek saugi sistema.

 

setcookie("password", $results[0]['password'], time()+3600*24*7, "/");

 

Pacio projekto struktura neteisinga, dabar neimanoma praplesti esamo funkcionalumo neperrasinejant tavo kodo, kas niekad nera gerai.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...