Re: Rss Aggregator e Refactoring Game

Per la lista:
v.0.3

  • estratto metodo extract_data per estrarre dati secondo pattern
    specificato
  • rimossi middleman canale, titolo, link, descrizione
  • prima implementazione per supporto proxy â?? se non avete il proxy
    passate stringa vuota

v.0.4

  • estratto metodo get_raw_data per isolare il recupero delle
    informazioni da remoto
  • stavo per rimuovere il middleman data ma poi mi son reso conto che
    facendolo avrei fatto una chiamata http ogni volta che veniva chiamato
    il metodo extract_data, necessita una riflessione.

On 5/3/06, Antonio C. [email protected] wrote:

Per la lista:
v.0.4

  • estratto metodo get_raw_data per isolare il recupero delle informazioni da remoto
  • stavo per rimuovere il middleman data ma poi mi son reso conto che facendolo avrei fatto una chiamata http ogni volta che veniva chiamato il metodo extract_data, necessita una riflessione.

io inizierei con lo spostare la variabile data, che continuiamo a far
girare, in @data e togierei il suo passaggio esplicito come argomento
nei metodi. se la classe rimane piccola non lo vedo un problema.

.

— Antonio C. [email protected] ha
scritto:

all

Primo: questa cosa è una figata :slight_smile:

Secondo: lo sapete si che per il parsing ci sono un
bel po’ di librerie già fatte come RSS::Parser (in
bundle con ruby) e FeedTools che parsa pure Atom?

Scusate ma al momento io sto impazzendo con altre
cosette quando posso gioco anche io :slight_smile:


icq: #69488917
blog: http://riffraff.blogsome.com

Chiacchiera con i tuoi amici in tempo reale!
Yahoo Search - Ricerca nel Web | Motore di Ricerca

Spero inoltre che qualcuno si lamenti dei refactoring fatti.

nell’ultimo giro (v0.5) ho fatto cose molto discutibili :wink:
o perlomeno aperte a discussione

servirebbe inoltre qualcosa per mockare la classe Http oppure
iniettare nel parser una classe separata FeedReader che incorpora Http
e che può essere mockata facilemnte

Mi spiace leggere di tutto questo divertimento e non partecipare :slight_smile:
Comunque ottima idea per imparare in comunità divertendosi :slight_smile:
–Andrea R.

eddai, buttatici anche tu :slight_smile:

il bello dell’esercizio è che puoi cambiare 2 righe e poi passare la
palla.

mi piace pensare al codice come a un “luogo pubblico”. un luogo
pubblico che amiamo… quindi ogni volta che andiamo a visitarlo
buttiamo via una lattina, sistemiamo una zolla d’erba, potiamo un poco
una pianta. più gente visita il posto, più questo diventa bello e
accogliente per i visitatori.

On 5/3/06, gabriele renzi [email protected] wrote:

Primo: questa cosa è una figata :slight_smile:

di sicuro è molto divertente :-)))

se come format va lo possiamo proporre anche su ruby talk.

Secondo: lo sapete si che per il parsing ci sono un
bel po’ di librerie già fatte come RSS::Parser (in
bundle con ruby) e FeedTools che parsa pure Atom?

ah, ma sei un rovina-festa! :wink:

ho visto che Pilu ha bloggato proprio su questo che dici tu:
http://guragedev.blogspot.com/2006/05/leggere-un-feed-rss-in-ruby.html

spero che questo non interrompa il refactoring. per me è un utile e
divertente esercizio di stile.

Pilu, se ci ascolti, perchè non ci fai vedere come aggregare usando
RSS::Parser?


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/

Il giorno gio, 04/05/2006 alle 10.14 +0200, chiaro scuro ha scritto:

Spero inoltre che qualcuno si lamenti dei refactoring fatti.

Eccomi :wink:

In realtà la mia obiezione è semplice: dove sono i test unitari? :stuck_out_tongue:
L’esperienza mi ha insegnato che è molto meglio rifattorizzare con i
test piuttosto che senza.

Giovanni

Il giorno gio, 04/05/2006 alle 11.00 +0200, chiaro scuro ha scritto:

argh! hai ragione. dammi credito del fatto che proponevo di vedere come
simulare la connessione Http a fini di testing. Cmq si tratta di un buon
esercizio per il testing. Non essendo stato fatto test-first dobbiamo
creare delle unità per poterlo unit-testare.

io procederei in questo modo:

  • crea meccanismo di mocking di connessione Http, in questo modo siamo in
    grado di fornire sempre lo stesso input al programma, altrimenti ogni volta
    che cambia il sito di repubblica saltano i test! :slight_smile:

Mah, io per la connessione HTTP farei un unico test per verificare di
essere capace di recuperare un feed RSS. Poi testerei il tutto tramite
stringhe o file, senza creare mock object (non a questo punto almeno).

Giovanni

argh! hai ragione. dammi credito del fatto che proponevo di vedere come
simulare la connessione Http a fini di testing. Cmq si tratta di un
buon
esercizio per il testing. Non essendo stato fatto test-first dobbiamo
creare delle unità per poterlo unit-testare.

io procederei in questo modo:

  • crea meccanismo di mocking di connessione Http, in questo modo siamo
    in
    grado di fornire sempre lo stesso input al programma, altrimenti ogni
    volta
    che cambia il sito di repubblica saltano i test! :slight_smile:
  • spezza il codice in unità testabili
  • mettile sotto unit-test
  • evolvi il design

On 5/4/06, Giovanni C. [email protected] wrote:

In realtà la mia obiezione è semplice: dove sono i test unitari? :stuck_out_tongue:
L’esperienza mi ha insegnato che è molto meglio rifattorizzare con i
test piuttosto che senza.


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/

ho visto che Pilu ha bloggato proprio su questo che dici tu:
http://guragedev.blogspot.com/2006/05/leggere-un-feed-rss-in-ruby.html

spero che questo non interrompa il refactoring. per me è un utile e
divertente esercizio di stile.

Pilu, se ci ascolti, perchè non ci fai vedere come aggregare usando
RSS::Parser?

Sono appena tornato a casa…finisco di leggere il
thread…mangio…e poi faccio qlcosa! :stuck_out_tongue:

Mi sono sentito un pochino zuccone…
Mi sono detto ‘adesso mi metto a leggerlo e faccio qualche modifica’, e
man
mano che vedevo le diverse versioni quel poco che avrei fatto era
già stato
applicato nei refactoring successivi :frowning: Tutto questo per dire che non
ho
fatto alcuna nuova versione, ma ho imparato qualcosa di nuovo :slight_smile:

–Andrea R.

On 5/4/06, chiaro scuro [email protected] wrote:

Pilu, se ci ascolti, perchè non ci fai vedere come aggregare usando
RSS::Parser?

Ho postato sul wiki un vecchio esempio che avevo ancora sul mio
pc…il codice è vecchio e brutto, ma nn l’ho messo a posto, dato che
il bello è proprio metterlo a posto insieme…se avete voglia provate
a giocarci un po :stuck_out_tongue:

Aggiunto una nuova versione. Estratto il FeedLoader.

Grandi opportunità di refactoring (leggi: ho fatto un gran casino e ho
lasciato i piatti sporchi dentro il codice)

Credo che il senso sia quello no? un finto Http che ti ritorni la
stringa.
oppure un FeedReader che ti ritorni la stringa…

On 5/4/06, Giovanni C. [email protected] wrote:

in


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/

On 5/4/06, Pilu [email protected] wrote:

Ho postato sul wiki un vecchio esempio che avevo ancora sul mio
pc…il codice è vecchio e brutto, ma nn l’ho messo a posto, dato che
il bello è proprio metterlo a posto insieme…se avete voglia provate
a giocarci un po :stuck_out_tongue:

Non riesco a scaricare le url. che sia un problema di proxy?
Con LunaRss però non avevo bisogno di settare il proxy… ? boh.

idee?

buttiamo via una lattina, sistemiamo una zolla d’erba, potiamo un poco
una pianta. più gente visita il posto, più questo diventa bello e
accogliente per i visitatori.

Un po’ anarcoide, e pertanto soggetto alle “mode” del momento :wink:

Devo ammettere però che per qualsiasi linguaggio di programmazione ho
imparato più sbirciando sorgenti altrui che leggendo i manuali…

alf

On 5/5/06, Alfonso M. [email protected] wrote:

buttiamo via una lattina, sistemiamo una zolla d’erba, potiamo un poco
una pianta. più gente visita il posto, più questo diventa bello e
accogliente per i visitatori.

Un po’ anarcoide, e pertanto soggetto alle “mode” del momento :wink:

ma secondo te non funziona? per me è la ‘moda’ che si è accorta di un modo
di fare le cose efficace.