Dopo aver letto il libro di Joe Armstrong e osservato gli screencast di Kevin Smith, ho creato una semplice applicazione OTP composta da un singolo gen_server e un singolo supervisore, raggruppati insieme come un'applicazione OTP.Quando utilizzare gen_server nelle applicazioni Erlang/OTP
Ora sto guardando mochiweb e ho creato un progetto di esempio [helloworld] utilizzando lo script new_mochiweb.erl. Navigando nel codice sorgente vedo che non è dissimile dalla mia app OTP di esempio [l'applicazione OTP è lì, il supervisore è lì] con una differenza chiave .. i file helloworld.erl e helloworld_web.erl generati non implementano il comportamento di gen_server, essi sono solo moduli standard di Erlang.
Ho avuto l'impressione che l'utilizzo di gen_server fosse il metodo consigliato per la creazione di componenti dell'applicazione OTP. Perché mochiweb potrebbe usare i comportamenti dell'applicazione OTP e del supervisore, ma evitare gen_server?
L'applicazione stdlib è un'applicazione OTP. Quando avviato, non ha parti in esecuzione. È una semplice applicazione di libreria, lì per i moduli che carica, quindi altre applicazioni OTP possono dipendere da esso per ottenere tutti i suoi moduli. Quindi ci sono ancora dei motivi per usare OTP quando si introducono solo moduli. – Christian
Hai ragione, ero un po 'sdolcinato nel mio linguaggio ... Dovresti impacchettare tutto il tuo codice nel normale modo OTP usando le directory e roba - ma a volte la cosa giusta da fare è generare qualcosa invece di usare un gen_server per avviarlo. –