Vai al contenuto
Uno

Post letti

Recommended Posts

Come da titolo, voi come li gestireste?

 

Le possibilità principali sono due credo. Tenere nota, utente per utente, di tutti i post già letti oppure solo dei post non ancora registrati come letti.

La prima mi pare meno esosa, ma sono entrambe fattibili purchè si imponga un limite temporale ai "nuovi" post. Del resto sarebbe inutile continuare a tenere come nuovi post di 3 anni prima (anche se mi è capitata una persona che pretendeva di avere i post letti o non letti di 6 anni di forum)... troverei più utile un sistema di bookmark semplice e veloce da usare.

 

Se qualcuno ha idee o punti di vista sulla questione ascolto volentieri.

Share this post


Link to post
Share on other sites

Ma si certo, posso guardarmi il codice di phpbb o meglio di vb o ipb (visto che ce l'ho sottomano) e di tutti gli altri scaricabili free visto che non ho particolare simpatia di phpbb. Ma punto primo non è detto che questi siano perfetti, punto secondo visto che sto sviluppando un prodotto mio nuovo posso anche pensare a cose che altri non fanno o fanno diversamente.

Il post era per avere un confronto... se non vi va pazienza. :)

Share this post


Link to post
Share on other sites
Mica ti suggerivo di copiare, ma sapere come la concorrenza ha risolto un problema è sempre utile; inoltre era una mia curiosità personale sapere come phpbb gestiva la cosa.

 

Il fatto è che non considero phpbb la concorrenza :D

Scherzo... ma mica del tutto, se sono arrivato all'idea di rimboccarmi le maniche non è per masochismo, è che anche nei prodotti migliori, lasciando perdere il codice o come è scritto, vedo funzioni che non servono a nulla e funzioni, che sarebbero utili da aggiungere, implementabili solo con strati e strati di codice in plugin se va bene. Quindi ciò che sto scrivendo, pur essendo pur sempre un comune forum deve essere su misura per le mie esigenze (sia dirette mie che indirette quando lo vorrò adattare per altri) e di conseguenza non può avere concorrenza come io non ne farò ad altri.

Una cosa che ho imparato in tanti anni di programmazione è che il miglior compromesso per essere un buon sviluppatore sarebbe essere distaccato per la definizione degli algoritmi ma molto coinvolto sulla scelta dei percorsi logici degli stessi.

In poche parole dovresti farti le cose per te stesso sapendo programmare o dovresti testare sul campo insieme a chi utilizza il software.

Gli sviluppatori dei forum raramente amministrano dei forum oltre a quello ufficiale, gli utenti finali raramente sanno mettere due righe di php decentemente insieme, quindi uno è troppo distaccato e l'altro troppo coinvolto senza però avere una visione di insieme.

 

In questo specifico caso (i post letti) non sono abbastanza distaccato come sviluppatore e non sono abbastanza coinvolto come utilizzatore, è una funzione dei forum (ma che potrebbe essere usata anche per articoli o altro) che non ho mai tanto investigato.

 

Ovviamente mi piacerebbe tracciare tutto, ma su numeri alti (di post ed utenti) temo che sarebbe dispendioso e forse inutile per i motivi che dicevo sopra. Forse studiando una cache a strati o dinamica dedicata solo a questo aspetto, si potrebbe ovviare, ma alla fine avrebbe senso tenere nota su tutti i post totali del forum dei post letti dall'utente X che si è registrato ma non è mai più tornato o anche che abbia scritto un solo post?

Share this post


Link to post
Share on other sites

A pensarci i post_id sono la chiave per un 'hash perfetto' (permettimi il termine) essendo univoci li puoi usare come chiave di un hash di puntatori a liste che contengono gli utenti che hanno letto quel post. complessità computazione molto ridotta (dipende dal linguaggio che usi) e il tasso di crescita non dovrebbe superare di molto il numero di post.

Share this post


Link to post
Share on other sites
A pensarci i post_id sono la chiave per un 'hash perfetto' (permettimi il termine) essendo univoci li puoi usare come chiave di un hash di puntatori a liste che contengono gli utenti che hanno letto quel post. complessità computazione molto ridotta (dipende dal linguaggio che usi) e il tasso di crescita non dovrebbe superare di molto il numero di post.

 

Mi sembra eccessivo come costo.

 

Io semplicemente segnerei per ogni topic l'ultimo post letto. In questo modo il costo è nettamente inferiore e permette di vedere istantaneamente se ci sono post nuovi in un topic.

Share this post


Link to post
Share on other sites
A pensarci i post_id sono la chiave per un 'hash perfetto' (permettimi il termine) essendo univoci li puoi usare come chiave di un hash di puntatori a liste che contengono gli utenti che hanno letto quel post. complessità computazione molto ridotta (dipende dal linguaggio che usi) e il tasso di crescita non dovrebbe superare di molto il numero di post.

 

In questo caso stiamo parlando di php.

Quindi in sostanza tu propendi per la memorizzazione dei post letti fregandosene di quelli non letti.

 

Avrebbe un senso calcolando le statistiche medie dei forum, generalmente, se non si adotta una politica di pulizia periodica (che quasi nessuno fa per immagine) su numeri enormi di utenze sono pochi i frequentanti reali e più assidui. Ciò non toglie, che facendo un esempio reale, io qui su HT se non ho letto tutti i 150.000 e passa post poco ci manca. Quindi solo per me bisognerebbe memorizzare 150.000 valori o sbaglio?

 

Vb, se non erro, registra tutti i post (tiene conto dei non letti credo) ma, opzioni di amministrazione a parte, alla fine mette un limite temporale o di numero di post non letti "in archivio".

Cioè se passato un certo periodo o numero di post non letti non ti decidi a leggerli li considera comunque letti o che comunque non ti interessano. Mi sa che alla fine è l'unica sensata, soprattutto con grandi numeri.

 

P.s. si certo, pensavo implicito usare l'id del post.

Share this post


Link to post
Share on other sites

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per poter lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi Subito

Sei già registrato? Accedi da qui.

Accedi Adesso

×