Estoy a punto de crear una clase de usuario para mi proyecto. ¿Alguna opinión sobre si es una mala práctica crear una clase tan comúnmente nombrada? Podría complementarlo con un prefijo específico para mi proyecto.clase de Java "User" naming best practice?
Respuesta
Esto es lo que packages son para.
Bueno, puede terminar importando dos paquetes con clase "Usuario". Eso probablemente causaría algunos dolores de cabeza. – rkg
@Ravi, pero si eso fuera un problema, podría consultar las clases por sus nombres completos. –
@Michael: Es cierto, pero creo que daña la legibilidad del código. – rkg
El uso de nombres comunes no es una mala práctica, hasta que a menos que describa el nombre como tal para la funcionalidad de la clase. tenga en cuenta crear paquetes adecuados que puedan definir su clase más específicamente.
Le sugiero que definitivamente prefija un término específico de la aplicación a su clase de usuario. "Usuario" es demasiado común y vago. Puede terminar fácilmente usando API que tiene una clase o interfaz de "Usuario". Aunque los últimos IDEs hacen que sea relativamente fácil refactorizar su código, sería más sencillo y más limpio si tiene una clase de "Usuario" específica para la aplicación.
Estoy de acuerdo con usted. Comienza a convertirse en un desastre cuando tienes múltiples clases con el mismo nombre. –
Debe usar Java package
s para evitar conflictos de nombres. No hay nada de malo en usar un nombre común, solo asegúrese de ponerlo en su propio paquete. Por ejemplo, usted podría tener la siguiente estructura:
com/
yourwebsite/
yourproject/
userdata/
User.java
A continuación, iniciar el archivo "User.java" con:
package com.yourwebsite.yourproject.userdata;
Cuando se importa, se debería utilizar:
import com.yourwebsite.yourproject.userdata.User;
Aún sugeriría que las personas no nombren sus clases "Cadena" o "Lista" o "Colección" o "Excepción" o "Conexión" o "Sesión". Estoy de acuerdo con "Usuario", aunque solo sea porque no se usa comúnmente en otros lugares (en mi área de trabajo actual, que tiene muchas bibliotecas, solo hay una en "com.sun.tools.internals ..." y otra en "org" .hsqldb ", ninguno de los cuales es probable que use). – Thilo
@Thilo, sí, ciertamente no usaría nombres que ya estén en uso en ninguno de los paquetes "java. *" O "javax. *", Pero a la fecha no hay clase de usuario en la API de Java. –
Siempre trato de usar nombres comunes como Usuario para mayor claridad. Solo asegúrese de que los nombres se extraigan del dominio del problema y del vocabulario existente del proyecto. Esté alerta a las ambigüedades, y si surge, cambie el nombre de la clase. Los IDE modernos con soporte de refactorización automatizado lo hacen fácil.
Sí. Tener el nombre correcto de la clase en el paquete apropiado será lo correcto. Los IDE les gusta IntelliJ, un soporte muy bueno para buscar e importar nombres de clase, incluso puede ser automático. – Jayan
Es improbable que este nombre sea utilizado por ninguna API pública, por lo que está bien que una aplicación lo use.
- 1. Sql naming best practice
- 2. Spring Webflow Best Practice
- 3. Best practice Error handling
- 4. UISegmentedControl Best Practice
- 5. Anular Ext.data.Connection - Best Practice
- 6. Hibernate Performance Best Practice?
- 7. MVC ViewBag Best Practice
- 8. versión Vs nil - Best Practice
- 9. C++ namespace best practice dilemma
- 10. Cocoa Callback Design: Best Practice
- 11. Best Practice WPF Prism Resources
- 12. Android Package Structure Best Practice
- 13. API Wrapper Architecture Best Practice
- 14. Sencha Touch unit testing best practice?
- 15. Android "Best Practice" uso de Intents
- 16. Best Practice LongRunning Creación de tareas
- 17. Verilog Best Practice - Incrementando una variable
- 18. Hg post-merge commit message, best practice?
- 19. Django ajax error response best practice
- 20. ASP.Net MVC Try Catch Best Practice
- 21. Scala string pattern matching best practice
- 22. Subversion Branch/Trunk Best Practice: ¿mantener actualizada la sucursal?
- 23. JSF CDI: Conversation scope bean [s] best practice
- 24. Android Best Practice on Actualización de la interfaz de usuario de BroadcastReceiver a una determinada actividad
- 25. Perl class naming convention
- 26. Naming Loops en Python
- 27. javascript best practice define variable (espacio de nombres) check no está ya definido
- 28. GlobalAssemblyInfo.cs y naming fuerte
- 29. Naming Include Guards
- 30. En Java Concurrency In Practice por Brian Goetz
es ese proyecto destinado a ser utilizado como una biblioteca por otros proyectos (y el usuario va a ser una clase pública)? – Thilo
No. Propio proyecto web. En realidad, me siento muy cómodo manteniendo al usuario como usuario, pero también tenemos otro concepto de dominio de una sesión. Aún no he llegado a eso, pero nombrar a alguien ya me está dando acidez estomacal. – Steve