2009-09-16 24 views
5

Descargué IntelliJ IDEA y comencé con la evaluación de 30 días.Por qué utilizar Intellij, o qué hacer durante la evaluación

Ahora me pregunto, ¿por qué debería usar IntelliJ para el desarrollo antiguo de java (así que no Hibernate, JSP, etc.)? No se ve tan diferente de eclipse o NetBeans, así que espero que algún gurú de IntelliJ pueda dar algunos ejemplos de cosas que IntelliJ puede hacer para justificar invertir el dinero en él. Intento usar la evaluación para que sea completa y no quiero perderme una característica importante.

Ya está disponible una lista de things possible in IntelliJ but not in eclipse, pero estoy más interesado en el flujo de trabajo diario que en algunas características poco claras que se usarán dos veces al mes.

+11

"no se ve tan diferente ..." - usted sabe, desde una distancia no puedo decir la diferencia entre el chocolate y caca , ya sea. :) – weiji

Respuesta

12

He estado usando para IntelliJ alrededor de 5 años (desde la versión 4.5) y también leí la mayor parte del libro de Manning "IntelliJ in Action" y todavía no me consideraría un gurú. De hecho, también quise hacer un "simple desarrollo anterior de Java" con él, y sinceramente debo decir que es bastante bueno en eso. Al igual que las otras respuestas, solo puedo decir que hay una ventaja definida en su utilidad que realmente lo excede. También usamos Eclipse aquí en el trabajo, y aunque no tengo tanta experiencia, puedo decirte que definitivamente hay muchas cosas básicas que faltan. Puse un tiempo y un esfuerzo serios para aprender Eclipse, buscando cómo hacer todos los tipos de cosas que doy por hecho en IntelliJ, y en su mayoría no están allí o están muy mal implementados. El material de refactorización es definitivamente lo que ayuda mucho.

Aparte de la refactorización, creo que hay un montón de pequeños detalles que realmente hacen que esto sea útil. Creo que un ejemplo podría ayudar a aclarar ...

Prueba esto:

crear una nueva clase vacía. Mueva el cursor dentro de las llaves y haga psvm y presione Ctrl-J - esto expande el "psvm" en "public static void main (String [] args)". Hay una lista completa de modismos de uso común que este atajo manejará (y también es configurable).Dentro del bloque de código principal, introduzca el código:

public static void main(String[] args) { 
    int x = 1000; 
    sout 
} 

Al final de "Sout", hacer Ctrl-J de nuevo - verá otra ventana emergente que te permite elegir de algunos expansiones diferentes, pero en En general esto se expande a "System.out.println (" ")" y helpfully coloca el cursor entre las comillas dobles (son pequeños detalles como este que realmente lo hacen brillar, creo. Compare con "IntelliSense" de Visual Studio - una vasija total si me preguntas).

De todos modos, retroceda sobre la primera comilla doble - observe que elimina la comilla doble correspondiente? Hace lo mismo con llaves y soportes, también. Creo que hay algunos casos de esquina donde prefiero que no lo haga, pero la gran mayoría de las veces me ayuda mucho. Volver a la edición de código: sólo tiene que escribir x lo que el código se verá así:

public static void main(String[] args) { 
    int x = 1000; 


    // add a few blank lines here too - the need for 
    // this will be obvious a little later 

    System.out.println(x); 
} 

Ahora, mueva el cursor sobre la declaración de x, y no Shift-F6 - esta es la in- refactorización colocar el diálogo (no sé cómo llamarlo, así que lo inventé). El nombre "x" tiene un recuadro de color a su alrededor, y puede comenzar a escribir un nuevo nombre para él: a medida que escribe, todos los usos de ese nombre también se actualizan dinámicamente. Otro toque limpio que realmente me gusta.

Prueba esto: poner un comentario de línea muy larga en algún lugar, de este modo:

// this is a really long comment blah blah blah i love to hear myself talking hahaha 

Ahora que usted decide el comentario es demasiado largo, por lo que se mueve el cursor hasta el centro de la misma en algún lugar y pulse la tecla Enter. IntelliJ colocará la "porción restante" del comentario con un "//" al comienzo, "sabe" que es una continuación del comentario anterior, por lo que lo comentará por usted. Otro toque limpio.

// this is a really long comment blah 
// blah blah i love to hear myself talking hahaha 

Otra gran ventaja que me gusta de IntelliJ comparación con Eclipse es que es mucho menos intrusivo - que realmente odiaba la forma en Eclipse lograría obtener ventanas emergentes en la parte superior de ventanas emergentes, y el foco del ratón estaría en alguna parte, pero el foco del teclado se ha quedado atascado en algo debajo, etc. Creo que es posible trabajar de tal manera que este tipo de cosas no sucedan, pero en primer lugar me molestó inmensamente. Eso me recuerda que, en IntelliJ, si mueve el cursor del mouse sobre el paquete o el navegador de archivos en el panel izquierdo, ese panel obtiene el enfoque automático del mouse, por lo que me acostumbré a usar la rueda del mouse inmediatamente para mirar alrededor. En Eclipse? Pasa el mouse por encima, pero el foco permanece en el panel de edición, por lo que tiene que hacer CLIC con el mouse para transferir el foco, y luego poder usar la rueda del mouse para mirar alrededor. Como dije, son muchos pequeños detalles como los que ayudan a la productividad.

Mientras codifica, preste atención a la barra de canaleta izquierda para símbolos de tipo "bombilla" roja en la línea actual - esto es IntelliJ que le dice que hay cosas posibles que puede hacer. Use Alt-Intro para mostrar un cuadro de diálogo pequeño y le dirá de qué se trata automáticamente. Supongamos que escribe una definición de método llamada "getFoo()" y no hay ningún miembro de foo; ofrecerá crearlo para usted. O si está utilizando una clase y llama a un método no existente como getFoo(), ofrecerá crear un getter y un miembro, o un método regular. Simplemente es útil.

En general, diría que los gurús de IntelliJ realmente no quieren hablar de pequeños detalles, pero realmente aprecio cómo este tipo de cosas simplemente están "bien hechas". Cuidan pequeños detalles para que no tenga que gastar tanto tiempo de ejecución mental comprobando su propia sintaxis. Lo considero un mayordomo ayudándome con mi codificación: se ocupa de los pequeños quehaceres para mí, así que no tengo que hacerlo. Batman tiene su Alfred, y yo tengo mi IntelliJ.Todos los ajustes están increíblemente diseñados para que los modifique si lo desea, pero parece que los valores predeterminados están orientados a mejorar su productividad, en lugar de molestarlo todo el tiempo con decisiones realmente mundanas (especialmente aquellas que casi siempre haría la misma elección de todos modos).

Existen algunos inconvenientes definitivos para IntelliJ: el precio es un poco alto, y es bastante grande que puede llevar un tiempo cargarlo en un proyecto grande. Tengo la suerte de que mi empresa paga la licencia y una estación de trabajo muy agradable, por lo que se carga razonablemente rápido, pero su kilometraje puede variar.

+6

La mayoría de las características que describes como específicas de IntelliJ también están presentes en Netbeans y Eclipse. – JRL

+2

Es curioso, pero la mayoría de los ejemplos dados aquí existen en Eclipse: escriba main y Ctrl + Space para el método principal, escriba syso (para sysout) y Ctrl + Space para System.out.println(), resalte xy escriba Alt + Shift + R para cambiarle el nombre ... OMI, esto confirma que preferir un IDE sobre otro es muy relativo a tus hábitos de codificación, tu conocimiento de tu entorno actual y, por lo tanto, es bastante subjetivo. –

+5

Sí, lo sé. Me escapé a eso en mi respuesta con el prefacio "y en su mayoría no están allí o están muy mal implementados". Al igual que mi broma -comenta sobre chocolate y caca- son del mismo color, no significa que sean iguales. – weiji

1

No soy un gurú de IntelliJ IDEA pero lo que a los fanboys les gusta de IntelliJ son las excelentes funciones de refactorización y de ayuda de código. A menudo afirman que este producto es muy superior a su competidor desde este punto de vista.

Personalmente, soy partidista del siguiente principio: use el IDE con el que se siente más productivo, no el que alguien más prefiera.

4

Acabo de regresar a Eclipse después de 2 años con Intellij (debido a las preferencias de un cliente).

Estoy buscando que Eclipse sea menos helpful. Sé que es un término nebuloso, pero los comentarios de Intellij fueron más claros, la interfaz de usuario me dio mejor información sobre lo que estaba sucediendo, la construcción automática parecía más fluida. La configuración/configuración del proyecto parece más intuitiva.

Esto es quizás subjetivo, pero a veces es por eso que usted prefiere uno por encima. Se siente que poco más pulido poco, un poquito más amigable ...

(no creo que el plugin para IntelliJ VIM es mejor, pero eso es otra historia!)

10

Tengo un trabajo diurno en el que utilizo Eclipse (porque eso es todo lo que está permitido). También tengo mi propia compañía donde hago "moonlight" haciendo trabajo por contrato y uso IntelliJ.

Yo diría que sus conjuntos de características son más o menos iguales. Prácticamente las mismas refactorizaciones, las mismas ayudas de código, el mismo estilo de uso, etc. Eclipse podría decirse que tiene mejores complementos, y probablemente muchos más, que IntelliJ. IntelliJ simplemente "conoce" las cosas de manera inmediata, como Spring e Hibernate, y estas cosas están mejor integradas que los complementos de Eclipse de funcionalidad similar.

La razón por la que elijo usar IntelliJ cuando está permitido (personalmente comprado y actualizado varias veces) es que todo lo que hace se siente más limpio. Es difícil poner mi dedo en ello, pero la misma funcionalidad en IntelliJ se siente más ágil y fácil de usar que en Eclipse, lo suficiente como para que yo pague a pesar de que hay un IDE gratis con todas las funciones disponibles.

Por lo tanto, las actividades que debe hacer para decidir son las siguientes: utilice IntelliJ todos los días para todas sus tareas de desarrollo durante 30 días. Siga la curva de aprender nuevos atajos y formas de búsqueda, refactorización, etc. y sospecho que lo preferirá. Si no, Eclipse todavía está ahí para ti.

+0

El enlace a la tecla del número de línea en eclipse me volvía loco (Ctrl + L, creo) porque no es como cualquier otra aplicación de Windows (Ctrl + G). Estoy de acuerdo en que fueron todas las pequeñas cosas que me hicieron saltar del barco. – dhable

3

2weiji: utilizar Tab en lugar de Ctrl + J :-) :-) Es mucho más práctico)
Sout continuación Tab
PSVM continuación Tab
iter luego Pestaña
etc ...: o)

+0

Gracias - Tab es realmente muy útil. Para el mapa de teclas predeterminado, creo que es mejor que Ctrl-J. Desafortunadamente para mí, utilizo un mapa de teclas de emacs modificado, por lo que parece que en esta situación, la "Pestaña de Emacs" tiene prioridad sobre "Variable de plantilla siguiente" - ¿es así? – weiji

2

¿Por qué usar IntelliJ? Porque lo encuentro más consistente en su interfaz de usuario y más pulido. Le permite mantener sus manos sobre el teclado por más tiempo, en lugar de alternar entre el teclado y el mouse. Como han dicho otras personas, son las pequeñas cosas que se suman.

Encontré la funcionalidad de las intenciones del usuario un gran ahorro de tiempo, y la forma en que revisa el código y sugiere optimizaciones y corrige las malas prácticas. Puedo presionar Alt-Enter en muchos contextos y el IDE puede descifrar e insertar lo que debería estar allí. Cosas molestas como declaraciones de tipo, optimización de un for-loop antiguo para usar el nuevo tipo de bucle JDK-5, eliminación de asignaciones de valores redundantes o variables no utilizadas.

Ser capaz de escribir primero el uso de un método que no existe, y luego presionar una combinación de teclas y hacer que el IDE escriba la estructura básica del método: gran ahorro de tiempo. Me proporciona un mejor flujo de trabajo, porque le permite pensar primero en cómo usará un método, cómo se ve cuando lo lee en contexto.

apoyo Refactoring - este fue el gran punto de venta cuando empecé a usarlo en 2003, y creo que sigue a la vanguardia (pero escucho Netbeans también es bastante bueno ahora)

altamente recomendamos que tenga un vistazo a la referencia IntelliJ KeyMap.

Tenga una mirada en esta discusión para los accesos directos de uso frecuente: What are the most useful Intellij IDEA keyboard shortcuts?

Cuestiones relacionadas