java - oxygen - windowbuilder eclipse
Eclipse como IDE: ¿Qué es lo que te falta como principiante en Java? (19)
"Problemas de principiante" Me he visto a mí mismo (he usado Eclipse por un buen tiempo, pero me sigue "sorprendiendo" de vez en cuando) y ayudando a sus colegas a comenzar a usar Eclipse:
- Es lo suficientemente grande y complejo para ser muy intimidante para algunos al principio. Parece que la gente considera netbeans más fácil de usar inicialmente. Un colega se refugió con el editor de VI por un dios mientras ...
- La instalación de complementos puede ser complicada (encontrar las URL del sitio, conocerlos, ¿por qué es "instalar" + "actualizar" en el menú Ayuda?)
- Las actualizaciones siguen siendo lentas (pero mucho mejores que antes) con Eclipse 3.5 / Galileo. Es difícil entender qué complementos instalar solo por su nombre a veces.
- ¿Alguna plataforma además de Mac? ¿Las preferencias bajo el menú Ventana parecen ilógicas?
- Entender cómo configurar la ruta de la clase del proyecto de forma ordenada. Configuración de la versión JDK del proyecto adecuado.
- Falta o interacción inesperada entre classpath de ant / maven build tools y eclipse''s (ant / maven clean provoca errores en el compilador de Eclipse cuando se comparte classpath, etc.).
- Las vistas y (gran número de) perspectivas son confusas / abrumadoras al principio. ¿Cuáles son útiles cuando? ¿Cómo arrastrar vistas a la ubicación deseada o restaurar las cerradas?
- Algunas combinaciones de versiones de JDK / Eclipse requerían demasiado espacio PermGen que el disponible por defecto, tomó un tiempo para diagnosticar.
Estoy trabajando en una solución que apunta a resolver los problemas que experimentan los programadores novatos cuando están "modificando el código" al mismo tiempo que corrigen errores / realizan solicitudes de cambio, en el código en producción. Eclipse, como todos sabemos, es un gran IDE. Las características tales como la finalización de código, la declaración abierta, la jerarquía de tipos, el explorador de paquetes, el navegador, la búsqueda de referencias, etc. ayudan a las personas a arreglar las cosas más rápido en comparación con el uso de Textpad.
Si usted es un programador java novato y está utilizando Eclipse IDE, ¿qué áreas del Eclipse IDE cree que fueron menos útiles / menos intuitivas? Si usted es un programador experimentado, ¿cuáles son los problemas comunes que los novatos buscan para resolverlos?
Ignore los problemas relacionados con: Dominio (Conocimiento del negocio), Infra (dónde probar su cambio, etc.), relacionado con el rendimiento (la búsqueda de eclipses es lenta, etc.), el nivel de habilidad en un idioma particular (piense en el desarrollador como un noob). .. y piensa un lenguaje - Java
Hice una encuesta local en mi pequeño equipo y aquí hay algunos:
- Los principiantes que usan Eclipse para manejar el código que se escribe en las interfaces donde se proporciona la implementación en tiempo de ejecución. Hacer una ''Declaración abierta'' siempre te mostrará una interfaz. Esto podría ser confuso a veces.
- Eclipse no es intuitivo al desarrollar EJBs. Claro, usted sabe que todo lo que tiene que hacer para crear un nuevo bean es hacer clic con el botón derecho y ''Crear Bean'', sin embargo, una vez creado, no muestra ayuda contextual sobre cuál debería ser el próximo paso. Por ejemplo, generando stubs.
- Cuando el Mapeo de fuente de datos con beans de entidad, cambiar algo complica todo el flujo de cosas y eclpise nunca se queja o insinúa.
- Al desarrollar aplicaciones que utilizan Struts, eclipse no le dice que al cambiar struts-config.xml, se vería afectado el flujo web en particular.
En este punto, para mí, como alguien que está interesado en recopilar opiniones para mi investigación, parece que Eclipse podría usar más ''sugerencias de tiempo de ejecución contextuales''.
Estoy seguro de que la comunidad tendrá mucho más que agregar ... Agregue más de sus experiencias negativas (solo desde la perspectiva del cambio de código).
EDIT: Supongo que mi pregunta era demasiado larga y confusa. Voy a reformularlo un poco y lo mantendré corto:
Mientras "realiza un cambio de código" (no es análogo al formato de código, actividades relacionadas con infraestructura, CVS, etc., diga algo como refactorización), ¿qué características del eclipse IDE no le gustaron / odiaron más? Aquí están los ejemplos:
- Al modificar el código que se ha escrito en las interfaces: ''Abrir Declaración / F3 en una instancia de objeto le muestra la interfaz cuando la implementación se proporciona en tiempo de ejecución''.
- Al cambiar aplicaciones usando EJBs: No hay ayuda contextual
- Al cambiar aplicaciones usando MVC (Spring / Struts): no hay advertencias sobre el impacto del cambio.
Aquí hay características básicas que faltan por lo que sé:
- Muestra el comienzo ''{'' cuando estés al final ''}'' donde el comienzo ''{'' está fuera de la vista
- Sincronizar automáticamente el editor con el explorador de paquetes.
- Ir a vista diferente (explorador de paquetes, esquema, etc.) con el teclado
- Búsqueda en línea, que no abre un diálogo.
- Ir a la siguiente ubicación de error con el teclado
- Ir a la siguiente / anterior estructura con teclado
- Más estabilidad en general .
Estas características funcionan muy bien en IntelliJ. Especialmente el # 1 y el # 5 son realmente útiles.
Como principiante, no hice cosas EJB o Struts. O incluso la asignación de origen de datos. Así que creo que el título de la pregunta puede ser un poco engañoso.
Me hubiera gustado tener algo como JadClipse incorporado para "mirar" el código de la biblioteca cuando lo golpeo en la depuración o tal. Pero debe quedar MUY claro que este es un "código reconstituido" y no debe ser pirateado.
En segundo lugar, los Noobs deben ser mucho más conscientes de que Shift-F2 les proporcionará la documentación API para cualquier clase / método que estén viendo. Conozco a muchos programadores Java novatos que exploran sus API sin nada más que completar el código; faltan muchos consejos valiosos proporcionados por los autores de la biblioteca.
Creo que el mayor problema que enfrenté (y aún enfrento) con Eclipse es que no es particularmente consciente de las tecnologías estándar que rodean el desarrollo moderno de Java. Si estoy desarrollando una aplicación, podría incluir lo siguiente:
- Primavera
- Maven
- JSF / Struts 2
- Subversión
- JUIT
Creo que Eclipse maneja esas tecnologías en niveles crecientes de conocimiento: (por lo que JUnit estará bien, funcionará de manera inmediata; Subversion requiere Subclipse, y es un poco más complejo que el soporte de CVS; JSF necesita que se instalen algunas herramientas de WTP; ... probablemente sea mejor que configures tus propios comandos de herramientas externas en lugar de confiar en M2Eclipse, a menos que se haya vuelto dramáticamente mejor en los últimos tiempos; y Spring, bueno, como dices, prueba a presionar ctrl haciendo clic en un método y podrás es casi seguro que obtenga una interfaz, porque la implementación está oculta detrás de un archivo de configuración de Spring).
Hacer todo esto para jugar juntos y revisar / compilar, luego compilar / ejecutar pruebas / registrar es la parte difícil. El cambio de código en sí es probablemente fácil :)
Creo que el problema con todos los IDE para principiantes es la desconexión de la cadena de herramientas: cómo el compilador toma alguna fuente y la compila en un bytecode que luego ejecuto usando la VM con un classpath configurado correctamente.
Como desarrollador, me encanta el hecho de que no necesito lidiar con esto, y nunca me encontré incapaz de hacer lo que quiero con respecto a configuraciones de construcción más complejas, pero es muy importante para los principiantes entender lo que sucede cuando presionas eso. Botón de reproducción para ser ignorado.
Descubrí que Visual Studio era fácil de captar, intenté hacer clic en cada botón al menos una vez y descubrí lo que hace todo. Está pensado por un solo equipo de diseño en el nivel más alto, y todo sigue los estándares de arriba a abajo, más o menos.
Entonces, juego con Eclipse. En términos técnicos, en el mejor de los casos es una tontería. Mira el diálogo de preferencias; es un choque de trenes abrumador, a menos que ya sepa exactamente lo que está buscando, y cómo el desarrollador que trabaja en esa característica decidió llamarlo.
La configurabilidad de Eclipse se basa en el hecho de que ya sabe cómo configurarlo. La curva de aprendizaje allí es terrible, y la única salvación es que, para empezar, la mayoría de los valores predeterminados están bien.
Eclipse no tiene un diseñador visual para los componentes Swing.
Compare eso con Visual Studio, donde:
- haga clic en ''nueva forma''
- arrastre los botones y los cuadros de texto al formulario, muévalos, agregue algunas etiquetas
- Haga doble clic en un botón, agregue un código
- hecho, una aplicación rápida, mostrársela al jefe, recibir un pago / promoción / pausa para el café
En Eclipse, debe usar Netbeans en su lugar (es decir, no Eclipse ...), o usar el SWT de IBM, o codificar los formularios Swing a mano.
Creo que sería muy bueno tener un gran diseñador de formularios wysiwyg en Eclipse para formularios Swing.
En Eclipse faltan las siguientes:
Visualización de software, como por ejemplo, System Complexity View [Lanza 2003]
Y también por Lanza, la Clase Blueprint [Ducasse 2005]
Post Scriptum: Visualización de software en Eclipse: X-Ray proporciona una vista de la complejidad del sistema de los proyectos Java, http://xray.inf.usi.ch/xray.php (a través de @anjaguzzi y Paul Lammertsma )
Visualización de software http://xray.inf.usi.ch/img/xraySystemComplexityView.png
Y luego, el filtrado colaborativo "otros desarrolladores que editaron este método antes también lo editaron" [Zimmermann 2005]
Y la colección de ejemplos navegables, y la autocompletación en el nivel de estos ejemplos. Es decir, por ejemplo si tu escribes.
ByteBuffer buf = file.
y haga clic en Autocompletar, debe buscar en la base de código y las interwebs ejemplos que conviertan archivos a bytebuffers e inserte esas 10-20 líneas allí.
- Parseweb admite a los desarrolladores al recomendar secuencias de invocación de métodos que producen un tipo de datos de destino requerido a partir de los tipos de parámetros de entrada dados. http://doi.acm.org/10.1145/1453101.1453129
- Prospector apoya a los desarrolladores al recomendar secuencias de invocación de métodos que producen un tipo de datos de destino requerido a partir de los tipos de parámetros de entrada dados. http://doi.acm.org/10.1145/1064978.1065018
- Strathcona proporciona ejemplos de código fuente y contexto estructural para el fragmento de código en desarrollo. http://lsmr.cpsc.ucalgary.ca/papers/holmes-icse-2005.pdf
- Rascal recomienda cómo y cuándo llamar a los métodos de objetos de bibliotecas comunes como Java Swing, basándose en un análisis de las clases existentes. Utiliza filtrado colaborativo. http://dx.doi.org/10.1007/s10462-005-9012-8
Y, por supuesto, también la característica de que puedo escribir una prueba de unidad y luego el IDE busca en las interwebs las clases que pasan la prueba. ¡Si, esto se puede hacer!
- CodeGenie es un complemento de Eclipse que te permite escribir pruebas unitarias y luego usa el motor de búsqueda de código fuente Sourcerer para encontrar clases de aprobación. http://doi.acm.org/10.1145/1529282.1529384
- CodeConjurer que se basa en Merobase también ofrece esa función, consulte http://dx.doi.org/10.1109/MS.2008.110
Esta lista podría seguir y seguir, los buenos puntos de partida para más trabajo son los procedimientos del pasado
- Conferencia sobre Repositorios de Software Minero (MSR)
- Taller de Ingeniería de Software de Búsqueda (SUITE)
- Taller sobre sistemas de recomendación para ingeniería de software (RSSE)
que están todos bajo el paraguas de la conferencia ICSE.
Falta Eclipse. Maven Incrustado en la distribución estándar, Maven ayudaría a cualquier usuario a obtener su programa todos los archivos jar y una mejor administración de la biblioteca. Netbeans ya tiene estas herramientas. También eclipse pierde las herramientas integradas para la implementación de hibernación, spring, xfire y tomcat utilizando maven.
Visite este sitio http://maven.apache.org/
Fui un noob a eclipse recientemente, principalmente haciendo cosas de Android y BlackBerry. Y una cosa que se me escapa hasta hoy es la gran cantidad de opciones y configuraciones, y varios lugares en los que se pueden encontrar. Por ejemplo, si tiene un complemento instalado (por ejemplo, el complemento de BlackBerry), la configuración puede encontrarse en las preferencias generales. o BlackBerry prefs o el proyecto prefs.
Siempre es una caza.
Integración VCS: normalmente, el desarrollador también es nuevo en fusionar cambios, mantener sincronizadas las copias de trabajo, resolver conflictos, etc. A menudo hay varias formas de lograr lo mismo en Eclipse y he visto esta causa de confusión en varias ocasiones (en realidad, también he visto esto con desarrolladores experimentados; ellos conocen Subversion pero no Eclipse, y este último trata de ''ocultar'' ''las operaciones de repositorio subyacentes).
La integración de Android SDK está llena de jank. Los diseños xml no se procesan correctamente. La finalización del código no funciona bien. IBM necesita arreglar el jank seguro.
La otra parte confusa es que para el desarrollo web hay una versión separada que debe usarse. Bueno, no me gustó esto en absoluto y sé que mucha gente simplemente no le gusta esto.
Para mí, el mayor obstáculo para aprender a usar eclipse de manera efectiva fue entender dónde establecer la ruta de clase y también cómo descubrir exactamente qué se incluye en la ruta de clase para las distintas etapas de desarrollo (compilar, construir, probar). Durante mucho tiempo estuve confundido acerca de la diferencia entre el tiempo de compilación, las configuraciones de depuración y las clases de configuración de ejecución. Luego, si metes la hormiga en la mezcla (que crea automáticamente una configuración de ejecución), se vuelve aún más confuso para los novatos.
Para mí, la mayoría de los problemas de los novatos en Eclipse provienen de una de sus fortalezas, su configurabilidad y estructura de complementos.
Cuando necesito cambiar una propiedad en Eclipse, parece que siempre tengo que dedicar unos minutos a determinar dónde cambiarla. Ejemplo: cambiar el editor de Java para insertar 4 espacios en lugar de una pestaña. La barra de búsqueda en las propiedades siempre es bienvenida :-)
Eso y la falta de documentación para algunos de los complementos siempre son divertidos cuando estoy configurando un proyecto.
EDITAR: Siempre puede mostrar las clases que implementan una interfaz usando ctrl-T.
Una cosa que agregaría es que cuando tengo un proyecto complejo, tiendo a usar Refrescar y proyectar-> Reconstruir todo * mucho ". Y uso TortoiseSVN para organizar cosas fuera de Eclipse, porque muchas veces esto es más fácil ( Sin embargo, si estoy modificando el proyecto fuera de Eclipse, * siempre "salgo de Eclipse y hago una actualización completa y compilación cuando lo reinicio. De lo contrario Eclipse se confunde a veces.
Todos mis otros problemas con Eclipse ya se han mencionado, excepto uno: es slooooooooow. ¿Su objetivo era demostrar que la gente de "Java es lento", no? Supongo que esto está relacionado con el "Eclipse hace todo", pero dejé de usarlo porque se retrasa cada vez que hago clic en algo. Cambiar pestañas? Retraso. Abrir preferencias? Retraso. ¿Cambiar pestañas en las preferencias? Retraso. Es como usar Photoshop con 32 Mb de memoria.
Ah, y es increíblemente feo. Me gustaría poder conseguirlo con una verdadera integración de GTK +.
Un lector de mente que genera código sobre la marcha, de modo que un solo clic es suficiente para completar un proyecto.
cuando probé eclipse por primera vez, odiaba absolutamente su coplexidad ... tenías que hacer un montón de cosas antes de poder empezar a trabajar. Además, tiene muchas opciones para verificar y no siempre se explica por sí mismo lo que hace cada botón.
en lugar de eso comencé a usar netbeans. Mucho más intuitivo y más fácil de manejar. compruebe que no hay demasiados botones y la mayoría de las veces sabe qué hace el botón, incluso si no tiene ni idea de java (como lo había hecho en ese momento).
cuando volví a cambiar a eclipse (debido a algunas características no compatibles con netbeans) parecía mucho más fácil trabajar con él. por lo que alguna parte de la interfaz gráfica de usuario puede agregarse de una manera no intuitiva y los principiantes definitivamente lo tendrán difícil.
- sencillez
- claridad
- consistencia
Podría escribirlo mucho más en detalle, pero creo que el eclipse tiene sobrepeso y está demasiado orientado a las características, en lugar de ser fácil de usar. En mi opinión, esto concierne tanto a principiantes como a profesionales.