ho usato IntelliJ per circa 5 anni fa (dalla versione 4.5) e ho anche letto la maggior parte del libro di Manning "IntelliJ in Action" e ancora non mi considererei un guru. In realtà, volevo anche fare "plain old Java development" con esso, e onestamente devo dire che è abbastanza buono in questo. Come le altre risposte, posso solo dire che c'è un vantaggio preciso nella sua disponibilità che lo mette davvero in cima. Usiamo Eclipse anche qui al lavoro, e anche se non ho tanta esperienza, posso dirvi che ci sono sicuramente molte cose di base che mancano. Ho dedicato un po 'di tempo e impegno per imparare Eclipse, cercando come fare le cose di tutti i giorni che ho dato per scontato in IntelliJ, e per lo più non sono lì o sono implementate molto male. La roba del refactoring è sicuramente la cosa che aiuta molto.
A parte il refactoring, penso che ci siano solo un sacco di piccoli tocchi che lo rendono davvero utile. Credo che un esempio potrebbe aiutare a chiarire ...
Prova questa:
creare una nuova classe vuota. Sposta il cursore all'interno delle parentesi graffe e fai psvm e premi Ctrl-J - questo espande "psvm" in "public static void main (String [] args)". C'è un'intera lista di idiomi comunemente usati che questa scorciatoia gestirà (ed è anche configurabile).All'interno del blocco di codice principale, immettere questo codice:
public static void main(String[] args) {
int x = 1000;
sout
}
Alla fine del "sout", fare Ctrl-J di nuovo - vedrete un altro pop-up che ti permette di scegliere tra alcune diverse espansioni, ma in in generale questo si espande in "System.out.println (" ")" e utile posiziona il cursore tra le doppie virgolette (sono piccoli tocchi come questo che fanno davvero brillare, penso. "Confrontati con Visual Studio" IntelliSense "- un crock totale se me lo chiedi).
In ogni caso, backspace sulla prima virgoletta doppia - notare che elimina la doppia virgoletta corrispondente? Fa la stessa cosa anche con parentesi e parentesi. Penso che ci siano alcuni casi in cui preferisco che non lo faccia, ma la maggior parte delle volte aiuta molto. Torna alla modifica del codice: è sufficiente digitare x modo che il codice appare come segue:
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);
}
Ora, spostare il cursore sopra alla dichiarazione di x, e fare Maiusc-F6 - questo è il refactoring in- posto di dialogo (non so come chiamarlo, quindi l'ho appena inventato). Il nome "x" prende una casella colorata attorno ad esso e puoi iniziare a digitare un nuovo nome per questo - mentre digiti, anche tutti gli usi di quel nome vengono aggiornati dinamicamente. Un altro tocco pulito mi piace molto.
Prova questo: mettere una riga di commento veramente lungo da qualche parte, in questo modo:
// this is a really long comment blah blah blah i love to hear myself talking hahaha
Ora che si decide il commento è troppo lungo, quindi si sposta il cursore al centro di essa da qualche parte e premi invio. IntelliJ inserirà la parte rimanente del commento con un "//" anteposto: "sa" questa è una continuazione del commento precedente, quindi la commenta per te. Un altro tocco pulito.
// this is a really long comment blah
// blah blah i love to hear myself talking hahaha
Un altro grande vantaggio che mi piace di IntelliJ rispetto a Eclipse è che è molto meno intrusivo - ho veramente odiato come Eclipse sarebbe riuscito a ottenere i popup in cima popup, e messa a fuoco del mouse sarebbe da qualche parte, ma il focus della tastiera è bloccato su qualcosa al di sotto, ecc. Penso che sia possibile lavorare in modo tale che questo genere di cose non avvenga, ma all'inizio mi ha infastidito immensamente. Ciò mi ricorda che in IntelliJ, se sposti il cursore del mouse sul navigatore di pacchetti o file nel pannello di sinistra, quel pannello ottiene automaticamente il fuoco del mouse, così mi sono abituato a usare immediatamente la rotellina del mouse per guardarmi intorno. In Eclipse? Passate il mouse sopra, ma la messa a fuoco è rimasta nel riquadro di modifica, quindi è necessario fare CLIC con il mouse per trasferire lo stato attivo, quindi utilizzare la rotellina del mouse per guardarsi intorno. Come ho detto, sono molti piccoli tocchi come quello che aiutano la produttività.
Mentre si esegue la codifica, prestare attenzione alla barra di gronda sinistra per i simboli di tipo "lampadina" rossi sulla linea corrente - questo è IntelliJ che dice che ci sono possibili cose che può fare. Usa Alt-Invio per far apparire una piccola finestra di dialogo sul posto e ti dirà cosa può fare automaticamente. Supponiamo che tu digiti una definizione di metodo chiamata "getFoo()" e che non ci sia alcun membro foo - offrirà di crearlo per te. Oppure se stai usando una classe e chiami un metodo inesistente come getFoo() - offrirà di creare un getter e un membro, o un metodo regolare. È semplicemente utile.
In generale, direi che piccoli tocchi non sono ciò di cui i guru IntelliJ vorranno davvero parlare, ma apprezzo molto il modo in cui questo tipo di cose sono "ben fatte". Si prendono cura dei piccoli dettagli in modo da non dover spendere così tanto tempo di esecuzione mentale controllando la propria sintassi. Lo considero un maggiordomo che mi aiuta con la mia codifica: si occupa di piccole faccende per me, quindi non ne ho bisogno. Batman ha il suo Alfred e io ho il mio IntelliJ.Tutte le impostazioni sono disposte atrocemente da modificare se vuoi, ma sembra che le impostazioni predefinite siano tutte orientate a migliorare la tua produttività, invece di infastidirti continuamente con decisioni davvero banali (specialmente quelle che faresti quasi sempre la stessa scelta comunque).
In IntelliJ ci sono alcuni difetti definiti: il prezzo è un po 'alto, ed è abbastanza grande che ci vuole un po' per caricare un grande progetto. Sono fortunato perché la mia azienda paga per la licenza e anche una workstation molto carina, quindi si carica abbastanza velocemente, ma il tuo chilometraggio può variare.
"non ha un aspetto molto diverso ..." - si sa, da una distanza non riesco a capire la differenza tra cioccolato e cacca , o. :) – weiji