Avaleht
uus teema   vasta Tarkvara »  WWW »  Nippe ja trikke noorele veebiarendajale märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
ventt
HV kasutaja

liitunud: 02.08.2010




sõnum 10.02.2016 15:06:28 Nippe ja trikke noorele veebiarendajale vasta tsitaadiga

tere, olen noor isehakanud veebiarendaja ning sooviksin saada kriitikat oma back-end koodi kohta, et kas mul on mõnda suurt turvaviga vms. kujundusele pole ma rõhku pannud, pole just mu kõige tugevam külg. ehk mõni viitsib ka oma käe külge panna, et mu oskusi lihvida. õpin polütehnikumis esimest aastat veebiarendust.

https://github.com/Ventilaator/test2

_________________


viimati muutis ventt 26.02.2016 12:26:39, muudetud 1 kord
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 10.02.2016 15:36:07 vasta tsitaadiga

Soovitan uurida frameworke. Enda lemmikuks on kujunenud Laravel https://laravel.com/.
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
karu
HV kasutaja

liitunud: 08.08.2002




sõnum 10.02.2016 15:39:51 vasta tsitaadiga

Vaata mis juhtub, kui kasutaja paneb oma nimeks <script>alert("Hello!");</script>
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
ventt
HV kasutaja

liitunud: 02.08.2010




sõnum 10.02.2016 15:56:27 vasta tsitaadiga

Psych0 kirjutas:
Soovitan uurida frameworke. Enda lemmikuks on kujunenud Laravel https://laravel.com/.

Ma ei ole täpselt aru saanud, mismoodi see Laravel toimib, tundub jube keerulise struktuuriga olema.


karu kirjutas:
Vaata mis juhtub, kui kasutaja paneb oma nimeks <script>alert("Hello!");</script>

Andis küll veateateks "Vale kasutajanimi või parool!", kuid jah, sain poindile pihta mis mul puudu on.

_________________
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 10.02.2016 15:59:24 vasta tsitaadiga

ventt kirjutas:
Psych0 kirjutas:
Soovitan uurida frameworke. Enda lemmikuks on kujunenud Laravel https://laravel.com/.

Ma ei ole täpselt aru saanud, mismoodi see Laravel toimib, tundub jube keerulise struktuuriga olema.

https://laracasts.com/series/laravel-5-fundamentals
Alates esimesest videost.
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 10.02.2016 16:13:54 vasta tsitaadiga

Frameworkid on vahvad, kuid samas suured. PHP maailm on juba aastaid liikunud raamistike pealt pigem komponentide põhiseks.

ventt, tarkvara arhitektuuri kui sellist pole. Eks ta oleks raske ka veidi nii väikesega asja looma hakata. Kuigi soovitan tutvuda ka framework'idega, et teada saada, kuidas nii mõnigi asju teinud on, siis pigem soovitaksin termini ja komponendi põhist lähenemist.
Uuri näiteks selliseid asju: Active Record, Data Mapper, MVC, MVVM, Composer, Lazy-Load, ORM. thumbs_up.gif

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
neros
HV Guru
neros

liitunud: 26.11.2003




sõnum 15.02.2016 15:35:45 vasta tsitaadiga

Okei, seni kuni k6ik teised n2rivad raamistiku ja bugide yle, r22gib natuke mustritest hoopis.

N2iteks: Klass USER

Mida see klass teeb? Mis on tema ylesanne? Vaadates funktsiooninimesid, tundub nagu:
1) isLogged() - Ahhaa, j2relikult teenus mis kontrollib kas kasutaja on sisse loginud
2) redirect() - Oot oot, mida see siin teeb? Kuidas on IsLogged ja ymbersuunamisk2sklus omavahel seotud? Ei olegi. Liigutame redirect() omaette kohta, n2iteks


class RedirectService
    function RedirectToUrl($url);


3) addUser? Kuidas on seotud IsLogged ja kasutaja lisamine? Ahhaa, ei olegi! Liigutame omaette klassi, n2iteks


class UserRepository
    function AddUser($username, $password, $firstname, $lastname);


4) Mis siis juhtub kui kasutaja registratsiooniprotsess muutub ja vaja n2iteks email lisada? Kas t6esti tuleb minna ja k6ik funktsiooniparameetrid 2ra muuta? Aga v6ibolla teeme hoopis parameetri klassi?

class AddUserParameters
    $Username;
    $Password;
    $Firstname;
    $Lastname;

class UserRepository
    AddUser(AddUserParameters $params);


5) Login? V6ib ju argumenteerida, et see kuulub USER klassi alla, kuigi tegelikult on tegemist mitte protsessiga "kasutaja logib sisse", vaid protsessiga "kasutaja autendib ennast". Seega:

class AuthenticationService
    SignIn($username, $password);
    SignOut();



V6tmes6naks on siinkohal OOP, Domain Driven Design ning Design Patterns. Soovitan k2sile v6tta sellised raamatud:

1) Design Patterns: Elements of Reusable Object-Oriented Software - Erich Gamma, John Vlissides, Ralph Johnson, Richard Helm. Vast k6ige olulisem raamatutest mida arendaja lugeda v6iks ja meelde j2tta. R22gib enimkasutatavaist mustritest tarkvaraarenduses.
2) Patterns of Enterprise Application Architecture - Martin Fowler. Enimkasutatavad toostusmustrid koos implementatsioonin2idetega.
3) Domain Driven Design, Tackling Complexity in the Heart of Software - Eric Evans. Domeeniorenteeritud disaini p6him6tted/p6hit6ed.
4) Refactoring - Martin Fowler. Refaktoorimise (koodi ymberstruktureerimise, kuid funktsionaalsuse mittemuutmise) p6hit6ed.

K6iki neid mustreid on kahjuks PHP'le ylimalt keeruline rakendada, aga usu - need raamatud l2bi loed, tunned ennast koheselt targemana.

_________________
GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt.
Kommentaarid: 48 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 15.02.2016 15:57:40 vasta tsitaadiga

neros, thumbs_up.gif

tsitaat:
K6iki neid mustreid on kahjuks PHP'le ylimalt keeruline rakendada

PHP'st on aja jooksul väga viisakas keel saanud. Pigem on php's täna võimalik oop's teha mõningaid asju, mida muudes keeltes niiväga teha ei saagi. (Näiteks kui access'itakse property't, mida klassil ei ole, on sul võimalik seda handle'ida klassi sees ja mingi result soovi korral ikka tagastada - dünaamilised dataobjektid näiteks teemaks. Omaette teema, kas ja millal sellist asja üldse vaja on.)

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
gynterk
HV kasutaja

liitunud: 17.01.2004




sõnum 18.02.2016 09:44:44 vasta tsitaadiga

Tegelikult ei ole PHP viisakas keel. Kui võtad osa mõnest 10k h projektist, siis saad aru. Isiklikult soovitaks muidugi võtta ette Python (mida on hakanud juba päris mitmed teenusepakkujad toetama) + korralik framework (a la Django, Pyramid, Flask vms). Pythoni puhul on näiteks ka see hea asi, et väga paljud asjad on PEPides defineeritud, näiteks soovitatav koodistiil on PEP8.

Nüüd siis mõned asjad.

Kuna arendus ei tähenda ainult koodi siis näen, et oled kasutanud commit sisus eesti keelt. Üldjuhul on tavaks avalikel projektidel kasutada inglise keelt, kui aga siiski soovid kodumaise keelega minna, siis jätkuvalt soovitan järgida seitset Giti commitimise soovitust. See ei ole küll standard, aga tegemist on üldlevinud poliitikaga.

Koodi keelekasutus peaks olema küll täielikult inglisekeelne, st muutujad nagu $viga tuleks asendada inglisekeelsete vastetega.

Klasside nimedes oled hetkel kasutanud nii mixedCase kui CapWords segamini. Otsusta ära, kumba kasutama hakkad. Soovitatav on CapWords.

POST, GET, SESSION misiganes selline data sanitize ära.

Koodi vähe rohkem kokku koondada (index.php):

if(isset($_POST['btn-login']) && !$user->isLogged()) {
....
else if ($user->isLogged()) {
}


User::isLogged() funktsioonis võiks kindlasti kontrollida seda, et kas kasutaja IP, veebilehitseja, OS vms iganes on samad (eelnevalt tuleks need kas sessioonis või andmebaasis salvestada). See tagab natukenegi turvalisust sessid hijackimise puhuks.

Kuna pean nüüd rongilt maha astuma, siis kahjuks rohkem aega analüüsida ei ole. Loodan, et oli abi.
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 18.02.2016 10:32:52 vasta tsitaadiga

gynterk,
Spoiler Spoiler Spoiler

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
ventt
HV kasutaja

liitunud: 02.08.2010




sõnum 18.02.2016 16:31:39 vasta tsitaadiga

Mis operatsioonisüsteemide peal te kirjutate oma koodi? Windowsi peal on seda üsna raske teha ma olen täheldanud. Samuti tegin uue repo, https://github.com/Ventilaator/test2
Enamus osa on küll sama, kuid kasutasin front-endiks semantic-ui frameworki. Aeg-ajalt uuendan seda, nii palju kui koolikõrvalt aega on.

_________________
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 18.02.2016 16:49:57 vasta tsitaadiga

ventt, kuidas op. süsteem mõjutab koodi kirjutamist? IDE on see, mis pea-asjalikult selle kogemuse määrab.
_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
Rauno266
Kreisi kasutaja

liitunud: 03.07.2009



Online

sõnum 23.02.2016 11:32:56 vasta tsitaadiga

IntelliJ-l on õppuritele tasuta PHPStorm, mis on päris hea tööriist. Ise kasutasin mingi aeg tagasi Aptana Studiot, mis on eclipse'i tuumale ehitatud. Väga mugavaks tegi Aptana see, et kirjutatud koodi said kohe pushida koos muudatustega serverisse. Niimoodi saad hoida dev koodi jaoks projekti kuskil dokumentide kaustas ja htdocs-i vms kausta siis pushida ainult valmis koodi.
Kommentaarid: 41 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 39
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 23.02.2016 11:52:08 vasta tsitaadiga

IntelliJ tööriistad on taevamanna. thumbs_up.gif

Arenduse ajaks tõmbaks mina lokaalse veebiserveri püsti masinas. Ei mingit pushimist ega midagi, kõik toimib otse.

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004



Online

sõnum 23.02.2016 12:35:30 vasta tsitaadiga

Firma on siiski JetBrains, IntelliJ on Java IDE.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 23.02.2016 12:54:41 vasta tsitaadiga

mikk36, IntelliJ'ks nimetavad nad vist oma IDE mootorit... lihtsalt java ide jaoks neil eraldi nime pole.
_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
olavsu1
külaline






sõnum 23.02.2016 13:18:00 vasta tsitaadiga

ma ei näe põhjus mika skasutada php puhul suuri IDE lahendusi.

seni olen kõik oma php nõidused kirjutanud notepad++ ja crimson editoriga.
tagasi üles
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 23.02.2016 15:17:41 vasta tsitaadiga

olavsu1, suured projektid, palju klasse, korralik oop jne jne. PHP pole tänasel päeval kuidagi kehvem kui C# või java. Kas sa neis kujutaksid ette suurte projektide tegemist sisuliselt "värvilise notepad"iga?
_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
olavsu1
külaline






sõnum 23.02.2016 15:35:57 vasta tsitaadiga

ei tea, ei ole suuri projekte teinud, phpnuke moodulid vist ei kvalifisteerud suurprojektiks.
tagasi üles
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga

sõnum 23.02.2016 16:17:22 vasta tsitaadiga

jnt kirjutas:
IntelliJ tööriistad on taevamanna. thumbs_up.gif

Arenduse ajaks tõmbaks mina lokaalse veebiserveri püsti masinas. Ei mingit pushimist ega midagi, kõik toimib otse.
Puhtam ja kuivem tunne on virtuaalmasinas asju teha. Ma kasutan selleks sellist lahendust: https://puphpet.com/
On kogu projekt OSist eraldatud ja saab väga erineva konfiga erinevaid projekte muretult samas masinas arendada. Lisaks siis seesama VMi konf on SCMi abil jagatav ka arendajate vahel ning iga arendaja ei pea ise hakkama arendusserveri setupiga majandama.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 23.02.2016 16:50:53 vasta tsitaadiga

Renka, täitsa nõus. Ei hakanud "noorele veebiarendajale" hetkel kohe selliste asjadega pead segi ajama. Vagrant ja Docker on ka toredad asjad. icon_wink.gif

EDIT: PuPHPet ongi vist kuidagi vagranti sees, kui nüüd täpsemalt uurin. icon_razz.gif

_________________
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 99
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga

sõnum 23.02.2016 17:28:53 vasta tsitaadiga

jnt kirjutas:
Renka, täitsa nõus. Ei hakanud "noorele veebiarendajale" hetkel kohe selliste asjadega pead segi ajama. Vagrant ja Docker on ka toredad asjad. icon_wink.gif

EDIT: PuPHPet ongi vist kuidagi vagranti sees, kui nüüd täpsemalt uurin. icon_razz.gif
Puphpet on UI Vagrant+puppet kooslusele. PHP/veebiarenduse spetsiifiline siis peamiselt.

Aga noorele tulebki õiged vahendid kohe kätte anda, et ei peaks kõrvaliste probleemidega tegelema kui üritab hoopis midagi muud õppida.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004



Online

sõnum 23.02.2016 17:56:45 vasta tsitaadiga

jnt kirjutas:
mikk36, IntelliJ'ks nimetavad nad vist oma IDE mootorit... lihtsalt java ide jaoks neil eraldi nime pole.
IntelliJ IDEA on nende põhitoode, mis on JAVA IDE. Teised IDE'd on sama platvormi peale ehitatud lihtsalt.
Ilmselt on mõnel lihtsalt meeles nende vana nimi, mis oligi lihtsalt IntelliJ.

Endal Webstorm nendelt üsna aktiivses kasutuses (Javascript, HTML, CSS ja muud samade keelte variatsioonid koos üsna hea toega frameworkidele).
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
ventt
HV kasutaja

liitunud: 02.08.2010




sõnum 04.04.2016 18:00:40 vasta tsitaadiga

$userExists = R::find('users', 'user = :user LIMIT 1', array(':user' => $username));

tsitaat:
SELECT `users`.* FROM `users` WHERE user = 'ventilaator' LIMIT 1 -- keep-cache
resultset: 1 rows


Võtsin kasutusele RedBeanPHP4 ning tekkis probleem registreerimisvormiga.
Nimelt, kui on juba kaks samasuguse nimega inimest andmebaasis, siis alles käivitub kood
if($userExists) {
    $regstatus = 0;
}

kuigi peaks juba esimese kirjega tööle hakkama. Oskab keegi soovitada midagi?

_________________
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Nippe ja trikke noorele veebiarendajale
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.