Linuxtrent: Re: Protocollino

  • From: Lele Gaifax <lele@xxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxxxxxx
  • Date: Fri, 20 Apr 2001 21:15:55 +0200

Guardando velocemente i sorgenti incuriosito, ho un paio di
suggerimenti da fare:

- non userei l'#include di un sorgente C: che motivo hai di farlo?
Sebbe sia a volte utile, generalmente impedisce l'ottimizzazione della
compilazione, rendendola monolitica anziché modulare: chiaro che se si
tratta di tre file sorgente in tutto fa poca differenza, ma partire
col piede giusto aiuta!

- in un paio di posti noto l'istruzione

  pkt[size++] = checksum(pkt, size)

che è oltremodo criptica, oltre che di dubbia correttezza: alla
funzione checksum arriverà (size+1) o (size)? Già se devi pensare una
manciata di secondi per stabilirlo, è troppo! Anche quando, per un
buon allenamento, fossi in grado di rispondere esattamente e subito,
forse tra un anno no, o magari il tuo collaboratore...

- usare una struct piuttosto che tutti quei "u8 buf[2]": strutturando
  il tuo codice attorno ad una struttura del tutto equivalente tipo

  struct atomic_packet
  {
    u8 command;
    u8 data;
  }

  lo rendi al contempo più chiaro ed estensibile nel tempo: un domani
  potrai più agevolmente modificare quella struttura per spedire qc di
  più, tipo

  struct atomic_packet
  {
    u8 command;
    u8 length
    u8 data[0];
  }

  con minime modifiche alle funzioni di contorno...

- forse chiamarla (alla lettera :-) "trsmissione dati con correzzione
  errore" è po' presuntuosetto!! Sarebbe già buono un "controllo"
  degli errori 8-)

ciao, lele.

PS: g'avevo bisogn de sgranchirme i dei, dopo na giornada de
installaziom NeXTSTEP :-)
-- 
nickname: Lele Gaifax   | Quando vivro' di quello che ho pensato ieri
real: Emanuele Gaifas   | comincero' ad aver paura di chi mi copia.
email: lele@xxxxxxxxxx  |               -- Fortunato Depero, 1929.

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: