the_tags the tag name get_the_tags first codex all function naming-conventions

function - name - the_tags wordpress



Convenciones de nomenclatura de funciones (7)

Estoy escribiendo una biblioteca, así que quiero que sus funciones se nombren de la manera más clara y inteligente posible. Actualmente, utilizo los siguientes principios:

  1. Nombres autoexplicativos: una función getName () le dirá al desarrollador lo que devuelve, así como setAddress (), isMale (), etc.
  2. Corto: el nombre de una función debe ser lo más corto posible para que sea fácil de escribir y recordar. Una función getNumberOfPagesInTheBook () no es buena, algo como getBookPageCount () es mejor.
  3. Uso de prefijos: siempre uso prefijos en las funciones como getName (), setName (), hasHair (), isBlond (), etc.

Me interesa saber si hay algo que me falta. Además, ¿puedes pensar en otros prefijos que no sean, tenga, obtenga y establezca?


Pro get / set

Cuando una clase tiene muchos métodos, es mejor usar prefijos de verbos, como obtener / establecer, para distinguir los métodos entre sí.

Ejemplo de PHP:

$foo->setText(''Hello world!''); $foo->prependText(''So. ''); $foo->appendText('' And welcome''); $x = $foo->getText();

Por cierto, en la notación húngara, los prefijos van con una letra pequeña y no restan valor a la palabra clave.

Contador obtener / set

Cuando solo necesita dos métodos, es más fácil usar el mismo nombre en el contexto de usar parámetros.

Ejemplo de jQuery:

$(''.foo'').html(); //get $(''.foo'').html(''Hello world!''); //set

Ejemplos

Para las funciones y métodos estáticos con arrays como parámetros, uso la siguiente regla:

Si los cambios deberían ocurrir solo en el tiempo de ejecución:

setFoo($arr); // Replace/delete all properties, i.e. if some elements are not passed, the corresponding properties will get empty values. setFoo([]); // Delete all properties setFoo(); // Set all properties by default delFoo($arr); // Delete specified properties addFoo($arr); // Add/replace specified properties

Si los cambios se harán para siempre (en base de datos o archivos):

deleteFoo(...); // Delete specified properties insertFoo(...); // Add specified properties replaceFoo(...); // Add or replace specified properties updateFoo(...); // Update specified properties

Para ambos casos:

$arr = getFoo(); // Get all properties $val = getFoo($level1, $level2, ...); // You can obtain the value of the given level, placing the list of arguments or $val=getFoo()[$level1][$level2];


  1. Convenciones de nomenclatura para Java
  2. Convenciones de nomenclatura para .Net
  3. Convenciones de nomenclatura para C++


Otros prefijos? Posiblemente "isa", aunque eso solo es aplicable en algunas situaciones.

Algunos idiomas pueden comunicar "get" y / o "set" con otras construcciones (específicamente, en Common Lisp puedes hacer que (setf (get * ...) blah) haga lo mismo que lo que hubieras deseado (set *. .. bla) hacer).


Una cosa más importante que hacer al escribir una biblioteca es usar la misma palabra para describir la misma acción cada vez. no escriba una función llamada getName en una clase y otra función llamada retrieveNumber en otra clase.


Una de las reglas más universales y simples es: los nombres de funciones deben ser verbos si la función cambia el estado del programa y los nombres si se usan para devolver un cierto valor.


Si hay una regla universal, creo que debería ser consistente.

También está el prefijo "on", que se usa ampliamente cuando se trata de eventos (es decir, Java Android: onViewCreated ). Algunos otros prefijos o verbos cortos y / o genéricos (como has, get y set) ampliamente utilizados son:

Prefiero usar sustantivos para captadores simples cuando hay muy poca lógica involucrada (es decir, propiedades) pero usaría el prefijo "obtener" para acciones complejas:

func center() { return (a + b) / 2 }

Sin embargo, en algunos idiomas donde el uso explícito del prefijo "obtener" se extiende ampliamente (es decir, Android - Java), la práctica común es usar algún verbo como "calcular" (es decir, computeVerticalScrollOffset() )

Además, en algunos idiomas (por ejemplo, swift ), también puede usar los establecedores de propiedades, por lo que realmente no usa el prefijo "set":

var x: X { get { return foo(x) } set { x = bar(newValue) } } // Set x x = y

Y, finalmente, hay muchas construcciones ampliamente utilizadas, como instanceof , indexOf , ...