Je hoeft er m.i. niet per se OOP van te maken, maar het helpt wel (ik ben er wel een voorstander van). Maar je zou wel aparte functies kunnen maken, dat maakt je script makkelijker testbaar. Je kan dan elke functie testen op de werking. Dat lukt niet in je huidige model.quote:Op zondag 17 november 2013 13:30 schreef Chandler het volgende:
Thanks voor jullie inhoudelijke reacties, de installer heeft een datablock en een script onderdeel, het script onderdeel ga ik niet oop maken, zou kunnen maar zie daar zelf het nut niet van in. Een keuze in database systemen ben ik zeker voor en gaat ook zeker verwerkt worden in het script en qua unset moet ik inderdaad nog wel het een en ander aanpassen... oh 2x case 7 had ik blijkbaar over het hoofd gezien... ooeps.. zelfde als set_time_limit, die heb ik gebruikt om te testen, iets wat bij kleine 'installers' echt niet nodig is maar bij installers van 30mb misschien wel, daar moet ik het allemaal nog op testen.
Paar vragen:
- Waarom stappen verminderen? zoveel stapjes zijn het niet? kijk eens naar programma's die je onder windows installeert? die hebben vaak ook vele stappen..
- Waarom OOP? zoveel code zit er niet in zeg maar... op zich zou't wel gemakkelijk zijn als ik er een ander ontwerp omheen wil gooien!
- Andere tips?
Oh de quit button is domweg bedoeld om de installer te resetten... je begint weer bij het begin want echt 'afsluiten' van het script zoals een programma gaat niet werken... tenzij ik window.close() ga gebruiken
thanks voor inhoudelijk feedback, maar hoe voelde de installer verder aan?
1 2 3 4 5 6 7 8 9 | $array = array ( 'ding' => .. , 'dat' => .. , 'zus' => .. , 'zo' => .. ); # zou ik herschrijven naar: $array = array( ding => .., dat => .., zus => .., zo => .., ); |
Mijn OOP is extreem brak, maak daarin vaak fouten en leer daar pas van als iemand er wat over zegt (mijn manier van leren). Ik zal eens kijken wat ik allemaal in functies kan stoppen wat er nu nog niet inzit...quote:Op zondag 17 november 2013 13:36 schreef slacker_nl het volgende:
Je hoeft er m.i. niet per se OOP van te maken, maar het helpt wel (ik ben er wel een voorstander van). Maar je zou wel aparte functies kunnen maken, dat maakt je script makkelijker testbaar. Je kan dan elke functie testen op de werking. Dat lukt niet in je huidige model.
Klopt, daarin heb je totaal gelijk alleen hoeft een gemiddelde gebruiker van dit script niets met de data, zelfde als jij niets moet met de inhoudt van een installer anders dan de installer zijn werk laten doen... dus de data hoeft er niet mooi uit te zien (data block) maar qua scripten werkt het zeker beter...quote:Verder zou ik wel iets aan je code conventies gaan doen:
Dat leest en edit prettiger.
Het gaat me erom dat als je later in dat script kijkt dat het makkelijk edit en leest. Dat de gebruiker er niet in hoeft te lezen.. maar andere coders wel en die wil je wel helpen met schone, zelf-gedocumenteerde code.quote:Op zondag 17 november 2013 14:19 schreef Chandler het volgende:
[..]
Mijn OOP is extreem brak, maak daarin vaak fouten en leer daar pas van als iemand er wat over zegt (mijn manier van leren). Ik zal eens kijken wat ik allemaal in functies kan stoppen wat er nu nog niet inzit...
[..]
Klopt, daarin heb je totaal gelijk alleen hoeft een gemiddelde gebruiker van dit script niets met de data, zelfde als jij niets moet met de inhoudt van een installer anders dan de installer zijn werk laten doen... dus de data hoeft er niet mooi uit te zien (data block) maar qua scripten werkt het zeker beter...
verder nog grote php fouten gezien? nee toch?
1 2 3 4 | $installer = new InstallerClass( # named arguments ); $installer->run(); |
Je moet altijd je documentatie goed op orde hebben. Maar dat staat los van de manier van code. Al helpt het ook dat je code zichzelf uitlegt. Maar je functies moeten gewoon gedocumenteerd zijn.quote:Op zondag 17 november 2013 14:49 schreef Chandler het volgende:
Ook met OOP moet je je inlezen in code want ->run() zegt ook compleet niets, want wat gebeurd er in al die functies? dus denk dat documentatie van het script zelf stukken belangrijker is.. Al zou ik het wel leuk vinden om er een OOP versie van maken maken dat ik zo de schil (layout/vormgeving) on the fly kan aanpassen!
Op m'n werk is het moeten. Want anders zegt de testsuite: je hebt de pod niet op orde en dan falen de tests.quote:Op zondag 17 november 2013 16:19 schreef Chandler het volgende:
moeten is onzin, handig true; zal ik ook zeker gaan doen, maar blijkbaar vinden jullie het idee toch best leukis een vervolg op een heel oud projectje (php2hex
)
Testbaarheid.quote:Op zondag 17 november 2013 18:10 schreef Chandler het volgende:
Waarom in aparte files? leg dat eens uit?
Hoe heb je die code getest?quote:Op maandag 18 november 2013 01:09 schreef Chandler het volgende:
Zo werk ik inderdaad ook al, alle code is gewoon al getest (toen nog niet op meerdere platformen maar goed) met de losse modules die ik toen werkend met elkaar heb verbonden in het huidige script. Ik zal vannacht nog eens naar wat puntjes van het script kijken (heb toch nachtdienst, dus alle tijd)
Nog goede suggesties voor een test-suite?quote:Op zondag 17 november 2013 16:21 schreef slacker_nl het volgende:
[..]
Op m'n werk is het moeten. Want anders zegt de testsuite: je hebt de pod niet op orde en dan falen de tests.
Overigens zeg ik niks over je idee, want ik zou je script en je installer in aparte files frotten, maar dat is mijn mening.
Onder PHP, ik ken er geen. Onder Perl heb je prove.quote:Op maandag 18 november 2013 13:16 schreef HalveZware het volgende:
[..]
Nog goede suggesties voor een test-suite?
Waarom in hemelsnaam een NoSQL database voor een loginsysteemquote:Op maandag 18 november 2013 13:52 schreef RetRy32 het volgende:
Sjooooooooooow ik was aan het kloten met dat MongoDB gebeuren, ik heb dus een Auth template voor mijzelf gemaakt, is wel een beetje rommelig en comments heb ik in het Engels gezet btw...
Voor de liefhebbers...
https://anonfiles.com/file/9e49f9c2059cdd78233e284435781ffa
En dat MongoLab remote hosting is gewoon gratis tot 500MB
[ afbeelding ]
Waarom niet?quote:Op maandag 18 november 2013 14:35 schreef KomtTijd... het volgende:
Waarom in hemelsnaam een NoSQL database voor een loginsysteem
Het is een template, en er staat ook nog een comment erover erbij manquote:Op maandag 18 november 2013 14:35 schreef KomtTijd... het volgende:
[..]
...en zie ik daar MD5 password hashes?,
,
!!!!!!!!!
Normaliter wil je behoorlijk joinen met je usersquote:
Daar heb ik niet naar gekeken. Maar MD5 gebruiken voor passwordhashes zou gewoon bij wet verboden moeten zijn.quote:[..]
Het is een template, en er staat ook nog een comment erover erbij man
Want met no SQL databases zou je niet kunnen joinen? Ik bel gelijk even Twitter en Facebook dat hun architectuur niet klopt!quote:Op maandag 18 november 2013 15:16 schreef KomtTijd... het volgende:
[..]
Normaliter wil je behoorlijk joinen met je users
Het kan, maar er is geen reden om het jezelf extra moeilijk te maken.quote:Op maandag 18 november 2013 15:22 schreef raptorix het volgende:
[..]
Want met no SQL databases zou je niet kunnen joinen? Ik bel gelijk even Twitter en Facebook dat hun architectuur niet klopt!
Waarom zou het moeilijk zijn? Zo moeilijk is het niet om een simpele join te maken in MongoDbquote:Op maandag 18 november 2013 15:24 schreef KomtTijd... het volgende:
[..]
Het kan, maar er is geen reden om het jezelf extra moeilijk te maken.
En vervolgens heb je die classes en functies naar een ander bestand gekopieerd en dat is je installer? Da's dus niet de code die je getest hebt, da's een kopie van die code. Dat maakt in zoverre verschil dat je aanpassingen twee keer moet doen als je ze ook wilt testen.quote:Op maandag 18 november 2013 10:18 schreef Chandler het volgende:
Gewoon 1 scriptje met daarin de class/functie en daaronder het test gedeelte?
Heb je al iets aan je formatting gedaan?quote:Op maandag 18 november 2013 19:52 schreef Chandler het volgende:
Ja en nee, de installer is een 'front' voor de data... de data en 'front' worden samen gevoegd in het script dat de installer (aan) maakt.
Qua testen heb je gelijk, maar vaak maak ik bv een class/functie en die test ik ook gewoon in het zelfde bestand van de class/functie waarbij ik dan gewoon andere classes/functies include (voor mijn mvc heb ik per functie een apart php bestand, altijd gemakkelijk met debuggen). Dus bijna het zelfde.. In dit project specifiek moet ik inderdaad dan zaken twee keer moet herhalen.
Ik zal eens naar PHPUnit kijken!
Maar heb je voor dit projectje nog suggesties? ideeën? verbeter punten?
Alleen het typen in Sublime vind ik toch ietsiepietsie prettigerquote:
Waar ligt het aan dat het daarin fijner is?quote:Op maandag 18 november 2013 20:51 schreef RetRy32 het volgende:
[..]
Alleen het typen in Sublime vind ik toch ietsiepietsie prettiger
//Feit: ietsiepietsie is een Nederlands woord//
Ik vind die autofill echt tof en voor de rest is het denk ik gewenning.quote:Op maandag 18 november 2013 21:19 schreef Crutch het volgende:
[..]
Waar ligt het aan dat het daarin fijner is?
Hoe bedoel je met formatting? de stijl waarop ik mijn code schrijf? pear style?quote:Op maandag 18 november 2013 19:54 schreef RetRy32 het volgende:
[..]
Heb je al iets aan je formatting gedaan?
Protip: PHPStorm, werkt geweldig met PHPunit trouwens.
1 2 3 4 5 6 7 8 9 10 11 | <?php foreach (array("tables", "tableData", "files" => "files") AS $block => $bTest) { if (isset(${"$block"}, ${"$block" . "CRC"})) { $tested++; if (!testHash(${"$block" . "CRC"}, ${"$block"}, $bTest)) { $_SESSION['installer']['errors'][] = $block . ' block damaged'; $errors++; } } } ?> |
Da's perfect imo, nu ik je code eigenlijk bekijk is er niks mis met de netheid.quote:Op dinsdag 19 november 2013 08:55 schreef Chandler het volgende:
[..]
Hoe bedoel je met formatting? de stijl waarop ik mijn code schrijf? pear style?
gelijk een andere vraag; is dit netjes? of moet/kan het anders?
[ code verwijderd ]
quote:Op dinsdag 19 november 2013 16:41 schreef ursel het volgende:
Ik schrijf de 'as' in een foreach altijd met kleine letters.
Je mixt een indexed met een associative array. Alhoewel het technisch kan is zoiets meestal een recept voor gezeik. Kies het een of het ander, niet mengen.quote:Op dinsdag 19 november 2013 08:55 schreef Chandler het volgende:
[..]
Hoe bedoel je met formatting? de stijl waarop ik mijn code schrijf? pear style?
gelijk een andere vraag; is dit netjes? of moet/kan het anders?
[ code verwijderd ]
Hahaha, zal ongetwijfeld mede mogelijk gemaakt zijn door mijn schrijf style!quote:Op dinsdag 19 november 2013 16:21 schreef RetRy32 het volgende:
[..]
Da's perfect imo, nu ik je code eigenlijk bekijk is er niks mis met de netheid.
Was een illusie
SUPER LOL, eigenlijk moet AS ook met kleine letters, maar schrijf het al jaren als AS (zal wel uit mijn basic tijd komen...) oh nu ik het mij bedenk is het waarschijnlijker dat ik het van SQL heb overgenomen (daar schrijf ik functies altijd in hoofdletters en variabelen/tabellen/velden etc in kleine... ) maar goed... het verduidelijkt wel de leesbaarheid ($vars as $var1 => $var2) is minder leesbaar als ($vars AS $var1 => $var2) ofzo.quote:Op dinsdag 19 november 2013 16:41 schreef ursel het volgende:
Ik schrijf de 'as' in een foreach altijd met kleine letters. Eigenlijk nog nooit met hoofdletters gezien, bhelave in Queries.
Ik heb dit vandaag even in elkaar geflanst van een groter stukje if else statements... scheelt maar 3/4 aan regels.quote:Op dinsdag 19 november 2013 16:51 schreef Boze_Appel het volgende:
Je mixt een indexed met een associative array. Alhoewel het technisch kan is zoiets meestal een recept voor gezeik. Kies het een of het ander, niet mengen.
Wat je zegt is logisch, maar niet voor mijn code.quote:Op dinsdag 19 november 2013 17:36 schreef KomtTijd... het volgende:
Ik moest er 5 keer naar kijken voordat ik begreep wat er nu gebeurde.
En ik zou zeggen dat je die vars direct in een object zet waar je doorheen fietst, mocht je ze stuk voor stuk willen checken. Of je checkt ze op het moment van aanmaken.
1 2 3 4 | <?php foreach (array("tables", "tableData", "files" => "files") AS $block => $bTest) { } ?> |
1 2 3 4 5 | <?php $array = array("tables"=>"tableData", "files"=>"files"); foreach($array AS $block => $bTest){ } ?> |
1 2 3 4 | <?php $explodeIp = explode ( ".", "185.002.241.100" ); $bierentieten = ltrim ( $explodeIp[0], "0" ) . "." . ltrim ( $explodeIp[1], "0" ) . "." . ltrim ( $explodeIp[2], "0" ) . "." . ltrim ( $explodeIp[3], "0" ); ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |