He escuchado que varios programadores sugieren no incluir la palabra "privado" en declaraciones, firmas de métodos, etc. ya que privado es el alcance predeterminado cuando no se especifica. Puede hacer que el código sea más limpio, pero me interesan las opiniones sobre si usas el alcance "privado" de tus variables, métodos, etc. Las herramientas como CodeRush que generan código para ti incluyen la palabra "privada", entonces yo ' Me da curiosidad si esto es bueno o malo o solo una cuestión de preferencia personal.Como "privado" es el alcance predeterminado en C# - ¿debería eliminarse la palabra "privada" de las firmas para obtener un código más limpio?
Respuesta
El código del limpiador es más explícito en cuanto a las intenciones del diseñador. Usar private
demuestra una elección deliberada, no abierta al debate. La caída al valor predeterminado abre las preguntas: ¿fue esto a propósito, o simplemente olvidó incluir un modificador?
Retire el privado y pedir a sus compañeros desarrolladores si están confundidos o no
Personalmente me siento, incluyendo privada que el código sea más legible. Me gustaría dar más importancia a "legibilidad" que "estar limpio"
Más código _readable _is_ _cleaner_. ¡Cleaner no es (necesariamente) más corto! –
Corresponde al compilador cómo interpretar métodos u otros miembros de la clase sin privado, protegido o público. Se puede cambiar en la versión nex. Entonces no lo hagas
Eso sería un _breaking_ change ... –
En realidad, en VB6 los procedimientos son públicos por defecto. Eso cambió en VB.Net. Sí, rompiendo el cambio. Cualquiera que no haya declarado su alcance de método tenía mucho trabajo por hacer al migrar el código de VB6 a VB.Net. – DOK
En una base de código donde las cosas que son públicas son una pérdida de información (por ejemplo, ya no se ofuscarán), desea que public
sobresalga. La eliminación de private
también tiene el mismo efecto de 'marea que sale' en protected
y otra visibilidad innecesariamente elevada.
Lo ideal sería utilizar una regla StyleCop o similar para hacer que el código sea realmente coherente (aunque eso, como con todas las reglas de código, debería acordarse entre los desarrolladores antes de que alguien llegue a una conclusión al respecto).
(BTW Su argumento en la premisa es que el soporte de CodeRush para omitirlo es incorrecto; las opciones le permiten establecer la visibilidad del método, etc. private
(OOTB) o 'predeterminado' (no especifique nada)).
Ruben: ¿me puede indicar dónde puedo hacer que "privado" no aparezca en las opciones de DevExpress para CodeRush? – Neal
DevExpress \ Options - Editor \ Code Style \ Scope - Métodos: Seleccione "Predeterminado" –
@RoryBecker gracias por intervenir. Mientras estamos aquí, solo me di cuenta de que existía porque tenía la mente ensangrentada y estaba en mi tercera vuelta de cada menú de opciones allí. El problema es que 'Predeterminado' significa poco. No conozco la solución, pero tal vez debería decir 'Predeterminado (sin palabra clave emitida)' o algo así? (Sí, sé que es más que probable técnicamente el término correcto en el estándar lang) –
- 1. ¿Debería Java romper la compatibilidad con versiones anteriores en beneficio de un lenguaje más limpio?
- 2. ¿Cuál es el alcance predeterminado de un método en Java?
- 3. el uso de la palabra clave privada
- 4. buscando analizador de código C++ para ver todas las firmas
- 5. ¿Qué es un "encabezado privado" en C?
- 6. Escribiendo código limpio, rendimiento para el iPhone
- 7. Haskell records, un enfoque más limpio?
- 8. Interfaz privada vs. método privado: objetivo c
- 9. Patrones y más para código gui limpio y sencillo
- 10. ¿Necesita C# la palabra clave privada?
- 11. ¿Cómo es el código HTML en este sitio tan limpio?
- 12. ¿Debería eliminarse el código anterior/heredado/no utilizado del repositorio de control de origen?
- 13. ¿Cuál es el alcance predeterminado del bucle foreach en Perl?
- 14. C++ ¿Es privado realmente privado?
- 15. Cuál es el punto de "Como" palabra clave en C#
- 16. palabra clave privada vs no palabra clave privada
- 17. ¿Debería usar el modificador de acceso privado si es redundante?
- 18. ¿Cuál es la forma más eficiente de obtener un arenero limpio de git?
- 19. C++ - Inicializando un mapa estático como miembro de clase privada
- 20. código más limpio de arrastrar y soltar en JavaScript Canvas
- 21. ¿Cuándo debería usar la palabra clave "this" en C++?
- 22. Definición de 'código limpio'
- 23. alcance del constructor privado en la clase jerarquizada
- 24. F # vs. C# performance Firmas con código de ejemplo
- 25. ¿Cómo obtener las firmas de métodos de un archivo jar?
- 26. ¿Cuál es la necesidad de un constructor privado en C#?
- 27. Alcance de un delegado en C#
- 28. ¿Cuál es el mejor algoritmo para la palabra más cercana
- 29. ¿Cómo hacer el código más limpio al informar el progreso a un usuario?
- 30. ¿Qué es mejor? estática privada vs privada
Excepto que privado es el valor predeterminado (excepto para las clases no anidadas). Entonces, lo mejor que el diseñador puede hacer para que el código sea más seguro y fácil de entender es mantener la superficie pública lo más pequeña posible. Hacer algo privado no requiere una decisión deliberada. Hacer algo no privado sí lo hace. –
@Kyralessa: mencioné que es el valor predeterminado, y mi argumento es que, al menos en principio, _todo_ lo que debes hacer es _deliberate_, no solo marcar algo 'public'. –
Estás asumiendo que omitir el modificador solo podría ser accidental. –