¿Que particularidades o características de Java son las que utilizas con mayor frecuencia en tu vida profesional?
Hola que tal a todos, mientras checaba algunos temas de Java por la red, me cruzó por la mente, esta pregunta y me da curiosidad por saber la respuesta y supuse que no hay mejor sitio para saber la respuesta que en en esta comunidad de Java México.
Es decir, al programar profesionalmente en Java ¿sueles utilizar frecuentemente, herencia, polimorfismo, swing, rmi, etc?
Y también estoy consciente de que temas tales como herencia y polimorfismo caen más dentro de los que es la POO.
Eso es todo y espero haberme explicado. Nada mas quiero saber un poco de cómo es la vida profesional como programador en Java.
- cfpmx's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
Demasiado vaga...
Creo que es demasiado vaga la pregunta...
En cualquier proyecto que he hecho en Java, siempre uso herencia... todos los objetos que hago implícitamente heredan de Object. Aparte de eso, he implementado varias interfaces de Java, he creado mis propias interfaces para darles una y en el futuro otra o más implementaciones, he creado clases abstractas para tener varias subclases con comportamiento similar...
Swing casi no uso, pero sí he hecho algunas aplicaciones muy sencillas con Swing (para probar algunas cosas nada más).
RMI sí he usado, tanto implementar un servicio RMI como invocarlo.
Pero fuera de eso no sé qué más te gustaría saber... si te refieres a librerías, las que yo uso en prácticamente cualquier proyecto nuevo son:
Si te refieres a paquetes de Java (más allá de java.util y java.lang), depende mucho del proyecto pero llevo un rato ya usando con bastante frecuencia java.util.concurrent y java.net para manejar thread pools y sockets (cliente y servidor) de manera directa.
Hola que tal, gracias por tu
Hola que tal, gracias por tu respuesta, realmente esperaba algo así como lo que me acabas de responder, es pregunta digamos algo general y un tanto personal, ya que me da curiosidad por saber con que se trabaja frecuentemente en Java y para mi también es interesante conocer en que trabajan alguno de los usuarios de aquí. Realmente no es una pregunta cultural y a muchos les puede no interesar tanto cómo es la vida de algunos de los por aquí.
PD: Respecto a la herencia, creo que es algo muy obvio que todos la utilizamos siempre por Object, así como también solemos utilizar final, abstract, implements prácticamente de manera forzada por que son particularidades de Java. Simplemente quería saber que tan frecuente sería por ejemplo, proyectos donde se utilice muchas jerarquías de herencia, por que estamos de acuerdo que también nos puede tocar hacer software, en la que la herencia no sea tan indispensable (y obviamente, teniendo en cuenta que todas nuestras clases van a heredar de Object). Y También estoy de consciente de que las respuestas pueden variar por persona y según el empleo que tengan, pero en fin, como les comenté, es una pregunta muy personal pero que también podría interesar a quienes a penas están por entrar en la vida profesional. Hasta luego y gracias.
Herencia simple
Nunca me he encontrado en la necesidad de heredar más allá de 3 o 4 generaciones, cuando mucho. Es decir:
Object --> Miclase1 --> Miclase2 --> Miclase3 --> Miclase4
Incluso ahí ya se ve un poco exagerado. En mi experiencia a lo mucho se ven cosas como esto:
Interfaz --> Implementacion1 --> Subclase1
Tal vez todavía una subclase2 que herede de subclase1, pero nada más. De hecho si me encontrara algun dia con un caso de herencia de 5 niveles o más, revisaría minuciosamente el código y de ser posible interrogaría al autor o autores para entender las razones de tanta herencia, porque para mí es señal de mal diseño, o de falta de comunicación entre integrantes del equipo, cosas así.
En mi caso...
En mi caso las tecnologías Java con las que me encuentro más en proyectos son:
- Spring core ya en casi todos, su uso ya se generalizó.
- JavaServer Faces o algún framework derivado de él, como Woodstock (ya obsoleto) y ICEFaces.
- Log4j en casi todos los proyectos.
- Struts 1, todavía hay muchos sistemas legacy que requieren mantenimientos.
- En el caso de persistencia solo me he encontrado con Hibernate en varios proyectos, no me he encontrado con iBatis u otros ORM's.
- He hecho un par de proyectos pequeños con SWT, la librería GUI de Eclipse... y no me he encontrado en ninguno de Swing.
En resumen eso es lo más recurrente en mi caso.
Saludos!
Javier Ramírez Jr.
http://twitter.com/xbenek
http://www.javamexico.org/tema/lineamientos_de_publicacion
En lo particular las
En lo particular las tecnologías que utilizo referentes a java son:
- J2ME para aplicaciones moviles, muy en resumen con las siguientes tecnologías:
- CDC, CLDC, MIDP, J2ME Polish, SuperWava
- Para el escritorio: Netbeans Rich Client Platform, Swing/AWT
- Para la web y otras cosas: T5, JSF, Struts, Ant, Maven, slf4j (logging) Spring, Hibernate ...
https://nbtapestrysupport.dev.java.net/
Pues... en general
Maven, log4J, JSF, un poco de struts.
Sobre herencia y polimorfismo... pues en todos mis proyectos.
RMI un poco
Axis para webservices
Spring en algunos proyectos al igual que hibernate
Y no me he metido mucho a escritorio asi que de swing no se mucho.
Un saludo