¿Cuál es el estándar de mejor práctica / codificación con respecto a & # 8220; this & # 8221; alcance es AS3?

StackOverflow https://stackoverflow.com/questions/619505

Pregunta

¿Cuál es la mejor práctica / estándar de codificación con respecto a " this " alcance es AS3? Hay uno Siento que realmente ayuda con la estandarización y la legibilidad de , pero a veces parece "demasiado" y ".

Por ejemplo, es el uso de " este " en lo siguiente realmente necesario (sé que funciona sin " esto ") ?:

private var _item:Object;

private var selectedItem:Object;

public function set item(value:Object):void
{
    this._item = value;

    if (this._item["label"] == "doodad")
        this.selectedItem = value;
}

public function set item(value:Object):void
{
    return this._item;
}
¿Fue útil?

Solución

" esto " no es necesario a menos que desee evitar conflictos de nombres entre variables de ámbito local (parámetros de método, por ejemplo) y variables de instancia.

En tu ejemplo, ya estás usando un guión bajo para marcar una variable privada, por lo que es una razón adicional para no usar " este " ya que realmente estás diciendo dos veces lo mismo.

Otros consejos

Ciertamente no es necesario, pero estoy de acuerdo en que puede ayudar con la legibilidad. Dado que trabajo más en lenguajes más dinámicos (por ejemplo, Perl y Python), tales convenciones pueden ser vitales para determinar rápidamente dónde están ubicadas las variables y las funciones. Si esta convención funciona para usted, no creo que sea algo malo, per se.

Dicho esto, he pasado horas reformateando el código que contenía convenciones incómodas que impedían la legibilidad.

Por ejemplo: una persona con la que trabajé escribió todas las tareas de esta manera:

var foo:String= "bar";

Esto fue irritante (prefiero " = " para que pueda ver claramente al operador), y pasé mucho tiempo limpiando miles de líneas de código que tenía que mantener. Su convención (que, aunque discutimos varias veces, se negó a comprometerse) tendió a impedir mi trabajo.

Luche por la unidad con otras personas que trabajan con usted. Si necesitan respaldar su código y encontrarlo agravante, es probable que no valga la pena dejarlo. Si no espera que nadie trabaje directamente con la fuente, use convenciones que lo ayuden a entender su código y documento (en algún lugar). significan.

Si estás trabajando en un equipo, apégate a las convenciones de codificación del equipo.

Pero personalmente, encuentro un uso explícito de " this " ;, cuando no se requiere para la desambiguación, la exageración que afecta negativamente a la legibilidad en un lenguaje de tipo estático como AS3 (¡los idiomas dinámicos son otra historia!).

Una clase solo debería tener realmente una responsabilidad, así que generalmente no debería haber demasiadas propiedades en ella. Dentro de un método, generalmente se manejan tres tipos de variables: variables locales temporales, parámetros del método y propiedades. Los métodos no deberían ser demasiado largos, por lo que debería ser fácil detectar la diferencia entre los tres tipos: si no se define localmente y no se ha pasado como parámetro, entonces es una propiedad. Si todo el método no encaja en tu pantalla, ¡probablemente sea demasiado largo!

Sólo uso " este " cuando sea necesario para desambiguar entre una propiedad y un parámetro con el mismo nombre.

Prefiero no usar " este " demasiado, pero a veces lo hacemos en Eclipse, solo para obtener autocompletar (¡probablemente la peor razón para hacerlo!)

Tendría más sentido si tu ejemplo fuera:

public function set item(_item:Object):void
{
    this._item = _item;

    if (this._item["label"] == "doodad")
        this.selectedItem = this._item;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top