Elaboro molti tweet in tempo reale usando python e per ogni tweet ho bisogno di assegnarlo a un bucket specifico. Ho circa 50 secchi, ognuno con le proprie regole. La maggior parte di loro sono semplici come così
bucket_one = ['test', 'foo']
if any(x in tweet['text'] for x in bucket_one):
tweet['bucket_one'] = 1
Quindi il modo in cui l'ho progettato è avere un dizionario in cui la chiave è il nome del bucket e il valore è un elenco di termini che dovrebbero essere presenti. In questo modo posso avere 1 metodo generico che assegnerebbe il tweet a un bucket scorrendo attraverso il dict.
Il mio problema è che alcuni bucket hanno regole più complicate come:
if 'boo' in tweet['text'] and not any(y in tweet['text'] for y in no_words):
tweet['bucket_two'] = 1
Quindi, come vedi, ho un modo pulito ed elegante (secondo me e per favore mi sfida se riesci a pensare a un modo migliore) di assegnare i bucket facili, tuttavia ci sono circa 10 bucket con regole più complesse che differiscono.
Va bene avere 1 metodo generico per 40 bucket e poi avere un singolo metodo per l'altro bucket più complesso? o dovrei avere solo 50 metodi individuali?