Sono un po 'confuso su cosa dovrebbe essere usato un file .hrl
. È a mia conoscenza che i file .hrl
possono contenere qualsiasi codice Erlang valido e che l'utilizzo della direttiva -include
essenzialmente inserirà il codice nel file in qualsiasi modulo che lo include.Cosa dovrebbe e non dovrebbe essere in un file di intestazione Erlang (.hrl)?
Che tipo di codice è appropriato inserire in questi file .hrl
, quindi? norme di programmazione di Erlang affermano quanto segue per quanto riguarda i record:
Se il record deve essere utilizzato in diversi moduli, la sua definizione deve essere collocato in un file di intestazione (con il suffisso .hrl) che è incluso dai moduli.
Come risultato, ho preso l'abitudine di farlo nel mio codice. Comunque, mi piace mettere cose come le istanze e le funzioni di confronto per i record, così come le definizioni dei tipi, anche nelle intestazioni (dato che questo è il genere di cose che farei in C). È questa brutta forma? I tipi dovrebbero essere esportati da un file .erl
, anche se sono utilizzati in più moduli? Non sembra esserci alcuna documentazione sulle migliori pratiche relative alle intestazioni di Erlang disponibili.