Alternative alla richiesta di commenti

0

Personalmente trovo che le RFC siano abbastanza difficili da leggere. Tendono ad essere piuttosto lunghi, non abbastanza precisi, veramente vecchi e per la maggior parte, abbastanza difficili da convertire in codice di lavoro effettivo. Penso che l'evidenza di non essere l'unica sia abbastanza grande dato che molti sviluppatori con cui ho parlato non hanno mai visto un RFC.

Perché le RFC sono strutturate come sono? Non è possibile scrivere una serie di esempi di codice o di unit test in più lingue? In questo modo puoi leggere l'RFC in una lingua con cui hai familiarità ...

Oltre a scrivere esempi in più lingue, ci sono altre organizzazioni specifiche che usano qualcos'altro oltre a RFC? Se sì, cosa usano?

(Non correlato: vorrei aggiungere i tag: ietf, rfc, w3c ma non ho abbastanza reputazione, sarebbe apprezzata una modifica)

    
posta ThreaT 12.06.2015 - 08:59
fonte

1 risposta

5

Perché le RFC sono difficili da leggere?

Lo scopo di RFC è garantire interoperabilità su Internet specificando con precisione i protocolli. A tale scopo, la precisione e l'ambiguità sono molto più importanti della facile leggibilità per i profani. I destinatari delle RFC sono gli sviluppatori di sistemi che implementano stack di rete, non lo sviluppatore comune che scrive solo import HttpLibrary;

Inoltre, le RFC dovrebbero essere longeve. Le prime RFC sono del 1969 e molte di più sono ancora critiche per l'infrastruttura di Internet.

Queste priorità portano ad alcune scelte che le rendono più difficili da leggere:

  • Usano un formato ASCII con testo in chiaro che non è molto adatto al browser (font monospace, strani spazi vuoti quando le pagine si dividono e così via). In questa era tutto è HTML o, nel peggiore dei casi, PDF, sembra una reliquia. Ma da quando è stato inventato il RFC sono stati inventati diversi formati di testi "ricchi", ma il semplice ASCII rimane leggibile su tutti i sistemi. Ed è un formato non ambiguo, non soggetto a bug e differenze del browser.

  • Usano un gergo in cui alcune parole hanno un significato più specifico che in un linguaggio semplice, ad es. il famigerato:

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this     document are to be interpreted as described in RFC 2119 [RFC2119].

    Questo è più simile al gergo legale, in cui la precisione è più importante di una facile leggibilità.

  • Le RFC cercano di essere il più brevi e il più possibile, ancora una volta per evitare ambiguità. Ad esempio, l'aggiunta di un esempio di codice introduce ridondanza. Se l'esempio di codice contraddice sottilmente la specifica, non sarà chiaro quale sia corretto. Se ci sono esempi di codice in più lingue, questo rischio aumenta. Inoltre, gli esempi di codice diventano obsoleti. Se gli RFC degli anni '70 avessero esempi di codice, avrebbero potuto essere in Fortran o BCPL o assemblatore per processori da tempo obsoleti. Sarebbe stato più lavoro dare un senso agli esempi di codice che leggere la prosa RFC, per quanto ottusa.

Il W3C utilizza un approccio diverso rispetto a quello di RFC. Scrivono Consigli che sono generalmente più facili da leggere. Sono formattati in HTML facilmente leggibile e usano molto più esempi illustrativi (gli esempi sono tipicamente contrassegnati come non normativi per evitare ambiguità se l'esempio contraddice le specifiche). Le raccomandazioni del W3C sono quindi abbastanza leggibili. Ad esempio, la CSS2 specifica è (a mio avviso) più facile da capire rispetto a molti tutorial CSS.

Le raccomandazioni del W3C hanno un pubblico diverso da quello di RFC. Il pubblico di RFC è costituito da sviluppatori di sistemi, mentre il pubblico per le raccomandazioni del W3C è costituito da sviluppatori di browser e di applicazioni e autori e progettisti di siti web. Un pubblico molto più ampio.

Detto questo , le RFC non sono quelle difficili da leggere. Se superi il formato di presentazione arcaico, è spesso sorprendentemente facile da capire.

    
risposta data 12.06.2015 - 11:28
fonte

Leggi altre domande sui tag