Questa è una pillola un po' anomala, un po' Off topic se vogliamo, ma una pillola di cui sento davvero l'esigenza e la prima che qualsiasi utente del forum dovrebbe leggere, perchè spiega come ottenere più facilmente aiuto dai forumisti esperti, o meglio come facilitare a questi il compito di aiutarvi rendendo l'esperienza piacevole per entrambi.
Ci sono alcune cose che dovete tenere a mente prima di aprire una nuova discussione e quando aprite una nuova discussione:
1. Prima di aprire una nuova discussione
1.1 Leggere attentamente il regolamento del forum
Nel regolamento sono infatti esposte le norme sugli argomenti ammessi nel forum (ad esempio non è possibile discutere di servizi hosting) o sui comportamenti non tollerati (testo tutto in maiuscolo, titoli non pertinenti etc). Una buona lettura, almeno la prima volta che si passa da queste parti, può evitare di vedersi chiudere la discussione appena aperta e dover perdere tempo. Inoltre nel regolamento si trovano una serie di link utili e interessanti che vi possono far comodo sia per risolvere un problema specifico e contingente, sia per scoprire qualcosa di nuovo e arricchire la propria "cultura php".
1.2 Usare la funzione di ricerca
Se siete venuti questo forum per aprire una discussione è perchè avete un problema con uno script che state realizzando o che avete scaricato. Molto probabilmente si tratta di un misterioso errore stampato a video, o volete scoprire come si fa per realizzare una certa funzionalità. In entrambe i casi può non essere necessario postare: usando opportunamente il motore di ricerca del forum, in molti casi dovreste riuscire a trovare una discussione che vi chiarisca le idee o che quantomeno vi indirizzi sulla giusta strada. Infatti esistono argomenti sui quali vengono aperti decine e decine di therad, in cui si ripetono inutilmente sempre le stesse cose.
1.3 Consultare manuale, guide, tutorial
Analogamente alla situazione precente, prima di aprire una nuova discussione vi potrebbe essere molto utile consultare un manuale (cartaceo o on-line, come la documentazione ufficiale di PHP), o cercare soluzioni già pronte al vostro problema su guide o tutorial, oppure tra le pillole del forum.
La consultazione della documentazione ufficiale, in particolare, è uno dei modi migliori per stanare sia gli erorri sintattici che alcuni di quelli logici
1.4 Debuggare a sufficienza il codice
Prima di chiedere aiuto agli altri, assicuratevi di fare il possibile voi stessi per risolvere errori banali come errori di distrazione o dovuti alla scarsa pratica.
I tre punti precedenti possono fornire un valido aiuto per risolvere molti problemi comuni ma se non bastassero, non scoraggiatevi: sopratutto nel caso di erorri logici (quando lo script viene regolarmente interpretato ma non fa quello che vi aspettavate) potrete fare molto già da soli cercando di isolare la porzione di codice in cui qualcosa non va come dovrebbe.
Per effettuare queste verifiche si può ricorrere a qualsiasi tipo di astuzia, e spesso a soluzioni molto scalabili e professionali, ma per un debugging rapido ed indolore, a prova di newbie, c'è un metodo tanto banale quanto efficace: stampare di tanto in tanto delle variabili chiave per esaminare il loro valore. Nel momento in cui questo valore non è quello che vi aspettate, ne potete dedurre che l'errore si è originato nel codice che precede la stampa. Procedendo all'insù con le stampe dovreste riuscire ad isolare la parte di codice che crea il bug, e a quel punto è fatta! Molto probabilmente pensandoci un po' su risolverete da soli il problema ed in futuro lo eviterete a priori, altrimenti avrete comunque capito qual è la parte di codice incriminata e potrete postare solo quella sul forum e porre una domanda molto ben circostanziata che sicuramente troverà più facilmente risposta rispetto ad un problema non chiaro o non circostanziato.
2.Quando aprite una nuova discussione:
Se proprio non siete riusciti a risolvere da soli con i precedenti suggerimenti, o se il vostro problema è così specifico che non sapete che pesci prendere, allora è ora di aprire una nuova discussione, ma anche in questo caso è bene tenere a mente un paio di consigli:
2.1 Non incollare pagine intere di codice.
Sembra scontato che non vada fatto, eppure capita quotidianamente che qualcuno incolli 1000 righe di codice sperando che chi deve aiutarlo lo legga tutto e scovi al volo l'errore, come fosse un parser umano. Discussioni del genere quasi certamente muoiono senza una sola risposta. Per evitare questa situazione la soluzione è quella di ridurre il codice postato all'essenziale, se necessario debuggando per isolare la zona di codice "critica" (come spiegato al punto 1.4).
2.2 Non dire solo "non funziona".
Quando uno script php non funziona le causa possono essere 2: errori sintattici ed errori logici.
Gli errori sintattici sono quelli che si verificano quando il parser del php non è in grado di interpretare la pagina perchè si trova davanti a situazioni inattese (che per una macchina sono ambigue, visto che non è in grado di ragionare se non per schemi fissi), ad esempio la mancanza di un punto e virgola alla fine di ogni riga, le parentesi annidate male etc etc. Gli errori logici sono più difficili da individuare perchè non segnalati esplicitamente (la macchina non pensa: fa quel che ordinate, se le ordinate cose sbagliate fa cose sbagliate ^_^ ). Si ha un erorre logico quando la pagina viene interpretata dal parser, ma il risultato non è quello atteso.
Appare quindi abbastanza chiaro che è necessario specificare il tipo di errore con cui avete a che fare, assieme ai dettagli del caso:
-se avete un errore sintattico è bene incollare esattamente l'errore stampato a video, più le linee di codice interessate (quelle vicine alla riga su cui si è verificato l'errore, diciamo almeno qualche riga prima perchè spesso l'errore rilevato su una riga dipende da quelle precedenti).
-se avete a che fare con un errore logico è il caso di essere abbastanza dettagliati nel dire cosa vi aspettavate che facesse una certa porzione di codice (da incollare nel post), e cosa invece fa. Ad esempio se il codice vi stampa un valore diverso da quello atteso, o se prende un ramo condizionale diverso. Come già detto prima, in questo caso capire quale sia la porzione di codice interessata non è sempre immediato e può essere utile ricorrere al debugging per capire dove andare a cercare l'errore (vedere punto 1.4)
2.3 Spiegarsi bene
<<perchè se io gli do il file, lui non lo apre e non legge quei valori che io volevo leggesse e poi non me li inserisce, capisci? Mentre io volevo che ogni volta che metto un prodotto me lo tira fuori con tutti i dettagli>>.
Ci avete capito qualcosa voi? Neanche chi vuole aiutarvi
La chiarezza espositiva può essere una delle armi vincenti per farsi aiutare in fretta e bene.
3 Non chiedere assistenza privatamente
Questo è personalmente il punto a cui tengo di più, e che vale sia nel caso in cui non abbiate anora aperto una discussione, sia nel caso in cui l'abbiate aperta ma non avete pazienza di attendere delle risposte.
Ci sono almeno tre buoni motivi per non chiedere assistenza direttamente ad un altro forumista (via messaggi privati, email, msn, e chi più ne ha più ne metta) invece di cercare una soluzione da soli o aprire una nuova discussione quando necessario:
1) La risposta pubblica permane nel tempo a disposizione sia vostra che di tutti gli altri forumisti che si dovessero scontrare con lo stesso problema.
2) Se chiedete assistenza privatamente ad una sola persona avrete il parere di una sola persona, che potrà non essere sempre il parere migliore o la soluzione più veloce al vostro problema.
3) Ma il motivo più importante di tutti è rispettare la vita privata delle persone a cui chiedete aiuto: nessun forumista infatti è pagato per risolvere i vostri problemi, e quando lo fa è perchè ha tempo o voglia di dedicarsi agli altri, di rendersi utile, e magari perchè ha già idea di come poter risolvere un certo specifico problema. Ma purtroppo non si ha sempre tempo o voglia di aiutare qualcuno, o non si hanno le conoscenze necessarie su alcuni specifici argomenti. Pertanto chiedere direttamente aiuto a qualcuno sigifica volerlo costringere ad ascoltarvi, indipendentemente dai suoi impegni o dai suoi problemi (può essere che stia già cercando di risolvere un suo problema!), o dal fatto che conosca approfonditamente quello specifico argomento, o dal suo sacrosanto diritto ad un attimo di relax.
Anche se il vostro è un problema che ritenete di immediata soluzione, tenete presente che magari non siete gli unici chd quel giorno hanno chiesto <<solo una cosa veloce>>.
Il forum sta qui per questo, perchè non usarlo invece di disturbare qualcuno solo perchè si ha fretta e non si ha pazienza di aspettare una risposta "spontanea"?
Io spero chei moderatori non ritengano questa pillola troppo OT e la vogliano mantenere nel therad delle pillole per "prevenire" comportamenti un po' pretenziosi, ma in ogni caso mi sembra utile per indirizzarci con un bel link utenti con comportamenti "sbagliati", nella speranza che possano cambiare atteggiamento in futuro.
Naturalmente se qualcuno vuole integrare ne sono più che felice.
![]()