Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

PHP·pub - Programming With Attitude - and beer


Anbefalte innlegg

hvor går egentlig grensa mellom cowboy coding og organisert koding? Mulig jeg er et sted mellom...

5816417[/snapback]

Altså, jeg vil si at man går litt vekk fra CC straks man på forhånd planlegger og sier ganske spesifikt at "det og det" ønsker jeg å ha med i min løsning. CC-koding går i stor grad ut på at man setter seg ned uten noen omfattende plan og bare programmerer i vei. Den lille planen man har er som oftes veldig grov og bunner ut i "Jeg vil ha en side for det, side for det og side for det". Hva man egentlig krever på de sidene overdukker veldig opp underveis. Typisk for CC-koding er at det slår et lyn ned fra blå himmel hvor man plutslelig for en åpenbaring om at "Faen, det her var jaggu omfattende".

 

Det som er lurt er å be om alt som skal gjøres på forhånd og en pris ved siden av... Når de sier underveis at de vil ha mulighet for det og det, så sier du bare at det ikke sto i løsningen de bestilte. Da må de legge mer penger på bordet :D

5816914[/snapback]

Den funker skrekkelig dårlig hvis man skal operere på et proffesjonelt nivå. Det med pris er jo forsåvidt greit nok. Man antar at de kravene man får vil ta så og så lang tid å oppfylle og vil koste det og det. Når det kommer ekstra krav vil det jo ta mer tid og mer penger.

 

Derimot må man faktisk anta at man ikke får alle krav på bordet når man ber om det på forhånd. Hvorfor det? Jo, fordi oppdragsgiver ikke kan en drit om SU eller data og raskt antar du skjønner hva han/hun mener når vedkommende sier det og det og du ikke stiller noe spørsmål rundt det. Han/hun har et bilde som vedkommende forventer du ser med en gang. Derfor er det også veldig, veldig viktig å ha en prosess på forhånd hvor man går igjennom og spesifiserer hva man ønsker, og deretter estimere en pris. Denne prosessen vil åpenbart bestå av flere runder frem og tilbake hvor man reviderer kravene.

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+6132
Er nok selv lært ja.

5818041[/snapback]

 

Selvlært er vellært ;)

 

Selv lærte jeg PHP ved å modifisere andres script. Jeg startet med å modifisere, og så tankegangen og hvordan ting hang sammen. Etter hvert klarte jeg å bruke copy-paste-metoden for å lage litt mindre avanserte ting. Jo mer jeg holdt på, jo mer forstod jeg. Nå i dag vil jeg si jeg kan PHP relativt godt, men ikke så godt som jeg skulle ønske. (Alle kan bli bedre, uansett om du er uteligger eller gud :p )

Lenke til kommentar
(Alle kan bli bedre, uansett om du er uteligger eller gud :p )

5818169[/snapback]

Den dagen du kan alt, hva er da vitsen med å leve, du får nå ikke noe flere utfordinger... jaja tror ikke den dagen vil komme :)

 

Min største utfordring er ikke PHP, men html/css :p

 

EDIT: noen skrive feil.. rart..

Endret av trondes
Lenke til kommentar
Gjest Slettet+6132
Min største utfordring er ikke PHP, men html/css :p

5818174[/snapback]

 

HTML lærte jeg på samme måte som PHP faktisk, men CSS leste jeg meg til på htmldog.com eller noe ;)

 

EDIT: Quote er en fin bil :p

EDIT: Kjempefin

Endret av Slettet+6132
Lenke til kommentar

Må berre spørre om ein ting:

 

Når eg lagar eit publiseringssystem, samler eg alle funksjonane i ei fil. I toppen av index-fila inkluderer eg denne via require(), og kaller funksjonen for å koble til databasa rett etterpå.

 

Vidare nede i index-fila kaller eg funksjonen som inkluderer innholdssidene.

 

Problemet som oppstår er at når eg inkluderer filer som inneheld spørringer, skjer det i blant at fila som blir inkludert ikkje har fått med seg at eg har kjørt funksjonen for å koble til databasa.

 

Eg har vanligvis løyst dette med at eg har kalla opp databaseConnect() inne i filene som blir inkludert, men herregud, det skal da vel ikkje vere nødvendig?

 

Er det nokon som har eit svar på kvifor dette skjer? Eg skjønner det iallfall ikkje.

Endret av Henrik Lied
Lenke til kommentar
//sortering kode//

5805705[/snapback]

 

Veldig fin kode, lagget nettopp noe selv. Litt inspirert av din kode. Min kode skal sette bygge oppkategorier som skal bli vist i et bilde galleri, men i stede for å lage alt som en array så satt jeg inn etter vært.

 

Tabelen ser slik ut:

 

 

CREATE TABLE `sd_galleri_kategori` (
 `sd_galleri_kategori_id` int(10) unsigned NOT NULL auto_increment,
 `kategori` varchar(30) NOT NULL default '',
 `hoved_id` int(11) NOT NULL default '0',
 `status` varchar(20) NOT NULL default '',
 `beskrivelse` text NOT NULL,
 PRIMARY KEY  (`sd_galleri_kategori_id`)
) ENGINE=MyISAM

 

 

 

HEr er funksjonen

 

 

<?PHP



function kategori_select( $valgt_id ){
global $conf, $form;
$query = 'SELECT * FROM sd_galleri_kategori WHERE status != "slettet" ORDER BY kategori';
$resultat = db_hent($query);  // db_hent() er bare en funksjon som heter ut fra databasen
if($resultat){
 while( $data = mysql_fetch_assoc($resultat)){
 	$data = strip_slashes($data);
 	$data_kategori[$data['sd_galleri_kategori_id']] = $data; // sortere kategori informasjonen her
 	$data_sort[$data['hoved_id']][] = $data['sd_galleri_kategori_id'];   
 	}
 }

foreach( $data_sort[0] as $nr => $sd_galleri_kategori_id){
 $level = "";
 $output .= '<OPTION value="'.$sd_galleri_kategori_id.'" '.($valgt_id == $sd_galleri_kategori_id?" SELECTED":" ").'>'.$data_kategori[$sd_galleri_kategori_id]['kategori'].'</OPTION>'."\n";
 $hoved_id = $sd_galleri_kategori_id;
 if(is_array($data_sort[$hoved_id])){
 	$level .= "-";
 	kategori_select_under($valgt_id, $hoved_id, $level, $output, $data_sort, $data_kategori);

 	}

 }
return $output;
}


// sjekkerom det er noe under kategorier til hoved kategorien.	
function kategori_select_under( $valgt_id, $hoved_id, $level, &$output, &$data_sort, &$data_kategori){
foreach( $data_sort[$hoved_id] as $id){
 $output .= '<OPTION value="'.$id.'" '.($valgt_id == $id?" SELECTED":" ").'>'.$level.$data_kategori[$id]['kategori'].'</OPTION>'."\n";
 if(is_array($data_sort[$id]))
 	kategori_select_under($valgt_id,$id, $level."-", $output,$data_sort, $data_kategori);
 }
}



?>

 

 

 

Ikke så avansert som din, men den virker :)

Lenke til kommentar
hvor går egentlig grensa mellom cowboy coding og organisert koding? Mulig jeg er et sted mellom...

5816417[/snapback]

Altså, jeg vil si at man går litt vekk fra CC straks man på forhånd planlegger og sier ganske spesifikt at "det og det" ønsker jeg å ha med i min løsning. CC-koding går i stor grad ut på at man setter seg ned uten noen omfattende plan og bare programmerer i vei. Den lille planen man har er som oftes veldig grov og bunner ut i "Jeg vil ha en side for det, side for det og side for det". Hva man egentlig krever på de sidene overdukker veldig opp underveis. Typisk for CC-koding er at det slår et lyn ned fra blå himmel hvor man plutslelig for en åpenbaring om at "Faen, det her var jaggu omfattende".

 

Det som er lurt er å be om alt som skal gjøres på forhånd og en pris ved siden av... Når de sier underveis at de vil ha mulighet for det og det, så sier du bare at det ikke sto i løsningen de bestilte. Da må de legge mer penger på bordet :D

5816914[/snapback]

Den funker skrekkelig dårlig hvis man skal operere på et proffesjonelt nivå. Det med pris er jo forsåvidt greit nok. Man antar at de kravene man får vil ta så og så lang tid å oppfylle og vil koste det og det. Når det kommer ekstra krav vil det jo ta mer tid og mer penger.

 

Derimot må man faktisk anta at man ikke får alle krav på bordet når man ber om det på forhånd. Hvorfor det? Jo, fordi oppdragsgiver ikke kan en drit om SU eller data og raskt antar du skjønner hva han/hun mener når vedkommende sier det og det og du ikke stiller noe spørsmål rundt det. Han/hun har et bilde som vedkommende forventer du ser med en gang. Derfor er det også veldig, veldig viktig å ha en prosess på forhånd hvor man går igjennom og spesifiserer hva man ønsker, og deretter estimere en pris. Denne prosessen vil åpenbart bestå av flere runder frem og tilbake hvor man reviderer kravene.

5818104[/snapback]

Joda du har jo rett det med at det går runder frem og tilbake. Det jeg mente var at når alt er bestemt så legger man opp for det. Hvis kunden underveis da finner på nye funksjoner, så kan man si at det ikke var bestemt på forhånd, ergo mer penger.

Lenke til kommentar
Tjo... men kjører du litt/nok kode mellom connect og når du skal kjøre en spørring så vil du miste tilkoblingen. Sjekk feilmeldingen.

5819004[/snapback]

 

Tilkoblingen vil du ikke miste om du kjører litt/nok kode mellom connect og en spørring. Tilkoblingen vil holde helt til scriptet er ferdig kjørt, hvis ikke du støter borti maks-grensen satt i MySQL (som er 30 sekunder, tror jeg). Da de fleste PHP-script kjøres på under 100ms, er det ikke det som gjør det. ;)

Lenke til kommentar
*klippe*

5818104[/snapback]

Joda du har jo rett det med at det går runder frem og tilbake. Det jeg mente var at når alt er bestemt så legger man opp for det. Hvis kunden underveis da finner på nye funksjoner, så kan man si at det ikke var bestemt på forhånd, ergo mer penger.

5819498[/snapback]

Ahh ... okey, forsåvidt enig i det :)

Lenke til kommentar

jorgis, det er STOOR forskjell på hva som er standard og hva som er default verdier og hva hoster/webhoteller kjører med. Dersom han er helt sikker på at det ikke er feil i koden side så må man begynne å se på slike muligheter. Jeg ber han sjekke feilmeldingen, og da vil han forhåpentligvis få svar.

Lenke til kommentar
jorgis, det er STOOR forskjell på hva som er standard og hva som er default verdier og hva hoster/webhoteller kjører med. Dersom han er helt sikker på at det ikke er feil i koden side så må man begynne å se på slike muligheter. Jeg ber han sjekke feilmeldingen, og da vil han forhåpentligvis få svar.

5820869[/snapback]

 

Vil tro sannsynligheten er større for at det er en feil i koden, el. l.

 

 

Henrik: Prøvd å inkludere funksjonene _etter_ at du kobler til databasen? Er ikke alltid funksjoner som er definert _før_ databaselinken finner ut at den er der. :)

Lenke til kommentar
Gjest Slettet+6132

Kan noen av dere mer erfarne PHPere forklare litt hvordan dere planlegger når dere går i gang med mindre prosjekter? Har selv nå prøvd å gå litt vekk fra cowboy coding, prøver å planlegge litt hva jeg skal gjøre. Jeg startet med noe så enkelt som en liste over hva jeg hovedsaklig ville ha, ikke noe mer avansert enn det foreløpig. Hvordan gjør dere det? ;)

Lenke til kommentar

hvis jeg går ut fra at Ernie sin forklaring (5818104[/snapback]Go) av grensa mellom CC og planlagt koding er riktig så er jeg nok innenfor planlagt koding delen (hvor godt er en annen sak).

 

uansett, jeg tenger opp grafaer, med masse bokser og streker over alt. Hver boks er en fil og det inni boksen er en forklaring på hva filen skal gjøre. Dens input og dens output. Så mange piler som forklarer includeringer og hvilken rekkefølge. Og andre linjer (de er oftest litt tykkere) som representerer mapper. (Hmm.. ikke så godt forklart. Men jeg holder meg til penn og papir faktisk. Retro, men funker og faktisk mer oversiktlig for min del). :)

Endret av MC2
Lenke til kommentar

Enig med MC2, er best med papir. Går fortere enn å bruke noe program, har prøvd 2-3 stykker med aldri fått det sikkelig til, gikk for tregt.

 

MEn jeg tegner ikke så mange bokser, skriver heler ned funksjonene hva de skal gjør, setter opp DB tabeler, og kanskje skisser hvordan sidene skal se ut.

Lenke til kommentar

Modelator, det husker jeg at jeg også var gjennom i et databasekurs. Programmet gjør Access enklere, men noe utover det vil jeg ikke si at programmet har å tilby - hvis det ikke har blitt mye bedre de siste årene.

 

Akkuratt når det kommer til databaser så er dette veldig tungvint å dele med andre utviklere om man har det på papir. Ta en kikk på DBDesigner fra fabforce.net. Det er veldig bra - og det er gratis til og med!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...