Co by som mal robit inak / co zlepsit v mojom kode
- xHRo
- Člen | 13
Ahojte,
som zaciatocnik v Nette a napisal som svoju prvu aplikaciu – jednoduche diskusne forum. Chcel by som poprosit skusenejsich programatorov v Nette, aby mi poradili co zlepsit v mojom kode, co pisat inak a pod. :)
Prikladam URL ku svojmu github repozitaru: https://github.com/…/simpleForum
- Tiez by som mal este nejake dalsie otazky, na ktore sa snazim ziskat odpovede
- config mam vyplneny spravne? co by v nom este malo byt?
- kedy priradujete premenne do $this->template? nazaciatku/nakonci?
- ked zapisujem udaje do databazy – kde by som mal overovat, ci tam posielam spravne udaje? model /prezenter/sablona?
Dakujem za kazdu radu.
Editoval xHRo (27. 6. 2015 12:19)
- bazo
- Člen | 620
len tak zbezne: nedavat prec password hashovanie z nette a nahradzovat ho prekonanymi md5 alebo sha funkciami. jedine ak ho chces nahradit za iny bcrypt. VZDY pouzivaj bcrypt alebo nieco lepsie. a naco su ti tam 3 sposoby hashovania hesiel?
preco priradzujes role podla id-ciek userov?
toto je velmi zaujimava konstrukcia $this->findAll()->insert(…), dava ti to zmysel? mne nie
<?php
protected $amr;
protected $cr;
protected $tr;
protected $rr;
protected $ur;
?>
si lenivy pisat nazvy?
coding standard nezodpoveda nette
config.local sa neverzuje, nbproject nepatri do verejneho projektu
a preco to ma v readme tutorial k source tree?
- Caine
- Člen | 216
Nazvy rozhodne nepsat zkratkama, je to neprehledny a nic nerikajici.. Napr v PHPStormu napises stejnej pocet znaku napr to „ur“ a uz ti to samo nabizi jako prvni UserRepository..
Pak nedavat vsechno do base presentru, jen to, co tam je skutecne potreba a ne to, co by mozna nekdy mohl nejaky potomek pouzit. Jakmile budes mit tech servisu 50, tak se z toho pak p**** a jeste v kombinaci se zkratkama;D A abys nemusel vsude psat inject metody, muzes pouzit "@inject" anotaci, pripadne https://github.com/Kdyby/Autowired, ktere prida anotaci "@autowire", coz je v podstate lazy inject (tedy servis se vytvori, az kdyz ho skutecne potrebujes).
Editoval Caine (27. 6. 2015 12:41)
- Mysteria
- Člen | 797
Tři způsoby hashování tam jsou nejspíš proto, že pro přihlášení do fóra využívá údajů z externího zdroje (plugin AuthMe, hra Minecraft) a ten podporuje jenom tyhle tři, takže bcrypt použít nemůže ani kdyby stokrát chtěl. Takže ano, bcrypt je fajn když si řešíš přihlašování sám, ale v tomhle případě to jinak bohužel nejde.
- Azathoth
- Člen | 495
dále: parametry si netahej přes context, ale nech si to injectnout…setteremnebo di přihlašování vyhoď do komponenty a té to pošli do konstruktoru. Obecně o všechno z configu by sis měl říct pomocí DI, ne pomocí $this->context.
Na menších projektech je to asi jedno, ale správně bys měl veškerou logiku řešit v modelu. a presentery a kompomenty by měly dělat akorát validaci dat a volání modelu. Např. posílání mailů má být v modelu, ne v admin presenteru.
jinak stejné věci jako psali ostatní…
a možná, když někde používáš setRequired, tak ho používat všude, a ne
mít místo toho někde Rule Form::FILLED…, prostě být v tom
konzistentní.
možná datum u přidání příspěvků by měl řešit model a ne presenter…
když používáš setRequired, tak u zoho možná mít chybové hlášky…
to template taky cpu proměnné až na konci…
u signUp bys asi měl kontrolovat jedinečnost username…
a samozřejmě, pokud má někdo jiný názor, moc rád si ho vyslechnu.
a samozřejmě je dobré zvážit, zda nechceš přejít z nette database na nějaké orm, třeba doctrine, ale to už je hodně o osobních preferencích a velikosti projektu
- xHRo
- Člen | 13
Dakujem chalani za vsetky rady, ja to skusim prepracovat a potom to sem uploadnem este raz na kontrolu, ci to splna uz tie nette standardy.
Azathoth – vies mi prosim ta vysvetlit, v com su vyhody orm databaz? toto ma vcelku zaujalo, pre velke projekty ich odporucas? v com su lepsie?