Convenzioni di denominazione delle funzioni di Erlang

6

Capisco che le convenzioni generali di Erlang per le funzioni utilizzino il caso del serpente o il caso del cammello, ma per quanto riguarda le funzioni esportate?

Ad esempio, supponiamo di avere un modulo gen_server che definisce un controllo per vedere se un nome utente è in uso:

  • Ho una chiamata lungo le linee di handle_function(is_username_in_use, UserName) .

  • Ho anche una funzione esportata denominata is_username_in_use che chiama gen_server:call/2 .

Ma internamente definisco anche un metodo che controlla un database. Così finisco con qualcosa sulla falsariga di check_if_username_is_in_use_in_db per uso interno.

Diventa rapidamente fuori controllo e finisco con nomi lunghi a disagio. C'è una convenzione comune usata per denominare funzioni come queste? Stavo pensando qualcosa sulla falsariga di is_username_in_use_internal

    
posta Selali Adobor 14.08.2014 - 09:29
fonte

1 risposta

1

Dalle regole di programmazione di Erlang ufficiali:

Function names:

  • The function name must agree exactly with what the function does. It should return the kind of arguments implied by the function name. It should not surprise the reader. Use conventional names for conventional functions (start, stop, init, main_loop).

  • Functions in different modules that solves the same problem should have the same name. Example: Module:module_info().

  • Some kind of naming convention is very useful when writing lots of different functions. For example, the name prefix "is_" could be used to signify that the function in question returns the atom true or false.

Anche questo progetto ti aiuta a essere programmaticamente compatibile con tali regole.

    
risposta data 15.01.2016 - 22:43
fonte