Προγραμματισμός

Επιλέγοντας το Java IDE

Ενημερώθηκε: Δεκέμβριος 2018.

Κάθε προγραμματιστής Java χρειάζεται έναν επεξεργαστή προγραμματισμού ή IDE που μπορεί να βοηθήσει με τα grungier τμήματα της σύνταξης Java και τη χρήση βιβλιοθηκών τάξεων και πλαισίων. Το να αποφασίζετε ποιος συντάκτης ή IDE θα σας ταιριάζει εξαρτάται από πολλά πράγματα, συμπεριλαμβανομένης της φύσης των υπό ανάπτυξη έργων, του ρόλου σας στον οργανισμό, της διαδικασίας που χρησιμοποιείται από την ομάδα ανάπτυξης και του επιπέδου και των δεξιοτήτων σας ως προγραμματιστή. Πρόσθετες εκτιμήσεις είναι εάν η ομάδα έχει τυποποιήσει τα εργαλεία και τις προσωπικές σας προτιμήσεις.

Τα τρία IDE που επιλέγονται πιο συχνά για ανάπτυξη Java από διακομιστή είναι τα IntelliJ IDEA, Eclipse και NetBeans. Αυτές δεν είναι οι μόνες επιλογές, ωστόσο, και αυτή η κριτική θα περιλαμβάνει και ορισμένα ελαφριά IDE.

Για αυτήν την ενημέρωση, έκανα νέες εγκαταστάσεις του IntelliJ IDEA Ultimate 2018.3, Eclipse IDE 2018-09 για Java EE Developers και Apache NetBeans (επώαση) IDE 9 σε Mac. Έλεγξα επίσης πολλά έργα ανοιχτού κώδικα Java για να μπορέσω να δοκιμάσω όλα τα IDE στα ίδια έργα.

Σχετικά με αυτήν την ενημέρωση

Αυτή η κριτική για το IDE δημοσιεύθηκε για πρώτη φορά τον Σεπτέμβριο του 2016 και ενημερώθηκε τον Δεκέμβριο του 2018. Σε αυτά τα μεσοδιάστημα, η γλώσσα Java, τα API, το οικοσύστημα JVM και ορισμένα πλαίσια έχουν εξελιχθεί σημαντικά. Το Java EE 8 εισήγαγε ή ενημέρωσε πολλές προδιαγραφές τεχνολογίας Java, όπως JSON-B (JavaScript Object Notation Binding), Java EE Security, Servlet 4.0 και JSF (JavaServer Faces) 2.3 για τη δημιουργία διεπαφών χρήστη από διακομιστή. Το Java EE 8 ήταν επίσης η τελική έκδοση Java για επιχειρήσεις από την Oracle: Το Ίδρυμα Eclipse ανέλαβε την ευθύνη για τη διαχείριση της τεχνολογίας, την οποία μετονομάστηκε σε Jakarta EE. Εν τω μεταξύ, το JUnit έχει προχωρήσει στην έκδοση 5, σπάζοντας τις ενσωματώσεις. Το IDEA και το Eclipse έχουν και οι δύο εγγενή υποστήριξη για το JUnit 5, αλλά από αυτήν τη στιγμή το NetBeans δεν το γράφει.

Όλες αυτές οι αλλαγές θα πρέπει να αποτελούν μέρος της αξιολόγησής σας ενός IDE, είτε για γενική χρήση είτε για ένα συγκεκριμένο έργο.

Το NetBeans 10 προσθέτει υποστήριξη για JUnit 5 και JDK 11

Κυκλοφόρησε τον Ιανουάριο του 2019, το NetBeans 10 προσθέτει υποστήριξη για JDK 11 και JUnit 5.

Βασικά: Τι χρειάζεστε από ένα Java IDE

Τουλάχιστον, ελπίζετε ότι το IDE σας υποστηρίζει Java 8 ή / και 11 (οι εκδόσεις LTS), Scala, Groovy, Kotlin και οποιεσδήποτε άλλες γλώσσες JVM χρησιμοποιείτε συχνά. Θα θέλατε επίσης να υποστηρίζει τους κύριους διακομιστές εφαρμογών και τα πιο δημοφιλή πλαίσια ιστού, συμπεριλαμβανομένων των Spring MVC, JSF, Struts, GWT, Play, Grails και Vaadin. Το IDE σας πρέπει να είναι συμβατό με οποιοδήποτε σύστημα ελέγχου έκδοσης και έκδοσης χρησιμοποιεί η ομάδα ανάπτυξης. Παραδείγματα περιλαμβάνουν Apache Ant με Ivy, Maven και Gradle, μαζί με Git, SVN, CVS, Mercurial και Bazaar. Για επιπλέον πίστωση, το IDE σας θα πρέπει να μπορεί να χειρίζεται τα επίπεδα πελάτη και βάσης δεδομένων της στοίβας σας, υποστηρίζοντας ενσωματωμένο JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate και το Java Persistence API.

Τέλος, ελπίζετε ότι το Java IDE σας επιτρέπει να επεξεργαστείτε, να δημιουργήσετε, να διορθώσετε και να δοκιμάσετε τα συστήματά σας με ευκολία και χάρη. Στην ιδανική περίπτωση, όχι μόνο θα έχετε έξυπνη ολοκλήρωση κώδικα, αλλά και αναδιαμόρφωση και μετρήσεις κώδικα. Εάν βρίσκεστε σε ένα κατάστημα που αναπτύσσει δοκιμαστική ανάπτυξη, χρειάζεστε υποστήριξη για τα δοκιμαστικά σας πλαίσια και το stubbing. Εάν η ομάδα σας χρησιμοποιεί σύστημα εισιτηρίων και CI / CD, είναι καλύτερο αν το IDE σας μπορεί να συνδεθεί σε αυτά. Εάν πρέπει να αναπτύξετε και να εντοπίσετε σφάλματα σε κοντέινερ και σύννεφα, το IDE σας θα σας βοηθήσει να το κάνετε.

Έχοντας υπόψη αυτό το θεμέλιο, ας εξετάσουμε τους διεκδικητές.

IntelliJ IDEA

Το IntelliJ IDEA, το κορυφαίο Java IDE τόσο από άποψη λειτουργιών όσο και απόδοσης, διατίθεται σε δύο εκδόσεις: τη δωρεάν έκδοση Κοινότητας και την πληρωμένη έκδοση Ultimate, η οποία έχει επιπλέον χαρακτηριστικά.

Η έκδοση κοινότητας προορίζεται για ανάπτυξη JVM και Android. Υποστηρίζει Java, Kotlin, Groovy και Scala. Android; Maven, Gradle και SBT; και Git, SVN, Mercurial, CVS και TFS.

Η έκδοση Ultimate, που προορίζεται για ανάπτυξη ιστοσελίδων και επιχειρήσεων, υποστηρίζει το Perforce εκτός από τα άλλα συστήματα ελέγχου εκδόσεων. υποστηρίζει JavaScript και TypeScript. υποστηρίζει Java EE, Spring, GWT, Vaadin, Play, Grails και άλλα πλαίσια. και περιλαμβάνει εργαλεία βάσης δεδομένων και υποστήριξη SQL.

Η ιδέα είναι ότι η εμπορική (Ultimate) έκδοση θα κερδίσει τη θέση της στην επιφάνεια εργασίας ενός επαγγελματία, δικαιολογώντας μια συνδρομή επί πληρωμή μέσω της αυξημένης παραγωγικότητας του προγραμματιστή. Εάν κερδίζετε 50K $- 100K $ ετησίως ως προγραμματιστής Java, δεν χρειάζεται μεγάλη αύξηση της παραγωγικότητας για να σας δώσει μια γρήγορη απόδοση επένδυσης με συνδρομή IDEA 500 $ / έτος. Η τιμή μειώνεται τα επόμενα χρόνια για τις επιχειρήσεις, είναι πολύ χαμηλότερη για νεοσύστατες επιχειρήσεις και ιδιώτες και είναι δωρεάν για μαθητές, δασκάλους, "πρωταθλητές Java" και προγραμματιστές ανοιχτού κώδικα.

Η IntelliJ προειδοποιεί το IDEA για βαθιά ενημέρωση σχετικά με τον κώδικά σας, την εργονομία προγραμματιστή, τα ενσωματωμένα εργαλεία προγραμματιστή και μια εμπειρία προγραμματισμού polyglot. Ας αναλύσουμε λεπτομερώς τι σημαίνουν αυτές οι λειτουργίες και πώς μπορούν να σας βοηθήσουν.

Μάρτιν Χέλλερ

Βαθιά εικόνα του κωδικού σας

Η σύνταξη χρωμάτων και η απλή συμπλήρωση κώδικα δίνονται για τους επεξεργαστές Java. Το IDEA υπερβαίνει αυτό που παρέχει «έξυπνη ολοκλήρωση», που σημαίνει ότι μπορεί να εμφανίσει μια λίστα με τα πιο σχετικά σύμβολα που ισχύουν στο τρέχον πλαίσιο. Αυτά βαθμολογούνται από την προσωπική σας συχνότητα χρήσης. Η "ολοκλήρωση της αλυσίδας" γίνεται πιο βαθιά και εμφανίζει μια λίστα με τα ισχύοντα σύμβολαπροσβάσιμο μέσω μεθόδων ή χρηστών στο τρέχον πλαίσιο. Το IDEA συμπληρώνει επίσης στατικά μέλη ή σταθερές, προσθέτοντας αυτόματα τις απαραίτητες δηλώσεις εισαγωγής. Σε όλες τις ολοκληρώσεις κώδικα, το IDEA προσπαθεί να μαντέψει τον τύπο συμβόλου χρόνου εκτέλεσης, να βελτιώσει τις επιλογές του από αυτό και να προσθέσει μετάδοση τάξεων ανάλογα με τις ανάγκες.

Ο κώδικας Java περιέχει συχνά άλλες γλώσσες ως συμβολοσειρές. Το IDEA μπορεί να εισάγει τμήματα κώδικα SQL, XPath, HTML, CSS και / ή JavaScript σε γραμματοσειρές Java String. Για αυτό το θέμα, μπορεί να αναπαράγει κώδικα σε πολλές γλώσσες. Για παράδειγμα, εάν μετονομάσετε μια κλάση σε μια δήλωση JPA, το IDEA θα ενημερώσει την αντίστοιχη κλάση οντοτήτων και τις εκφράσεις JPA.

Όταν επαναπροσδιορίζετε ένα κομμάτι κώδικα, ένα από τα πράγματα που συνήθως θέλετε να κάνετε είναι επίσης να αναπαράγετε όλα τα αντίγραφα αυτού του κώδικα. Το IDEA Ultimate μπορεί να εντοπίσει διπλά και παρόμοια θραύσματα και να εφαρμόσει και το refactoring σε αυτά.

Το IntelliJ IDEA αναλύει τον κωδικό σας όταν φορτώνει και όταν πληκτρολογείτε. Προσφέρει επιθεωρήσεις για να επισημάνει πιθανά προβλήματα και, εάν το επιθυμείτε, μια λίστα με γρήγορες διορθώσεις στο πρόβλημα που εντοπίστηκε.

Εργονομία προγραμματιστή

Η IntelliJ σχεδίασε το IDEA με τη δημιουργική ροή του προγραμματιστή -γνωστός "να βρίσκεστε στη ζώνη" - κατά νου. Το παράθυρο εργαλείου έργου που φαίνεται στα αριστερά στο σχήμα 1 εξαφανίζεται από την προβολή με ένα απλό κλικ του ποντικιού, ώστε να μπορείτε να επικεντρωθείτε στον επεξεργαστή κώδικα. Όλα όσα θέλετε να κάνετε κατά την επεξεργασία έχει μια συντόμευση πληκτρολογίου, συμπεριλαμβανομένης της εμφάνισης ορισμών συμβόλων σε ένα αναδυόμενο παράθυρο. Ενώ η εκμάθηση των συντομεύσεων χρειάζεται χρόνο και πρακτική, τελικά γίνονται δεύτερη φύση. Ακόμα και χωρίς να γνωρίζει τις συντομεύσεις, ένας προγραμματιστής μπορεί να μάθει να χρησιμοποιεί το IDEA εύκολα και γρήγορα.

Ο σχεδιασμός του προγράμματος εντοπισμού σφαλμάτων IDEA είναι ιδιαίτερα καλός. Οι μεταβλητές τιμές εμφανίζονται ακριβώς στο παράθυρο του προγράμματος επεξεργασίας, δίπλα στον αντίστοιχο πηγαίο κώδικα. Όταν αλλάζει η κατάσταση μιας μεταβλητής, αλλάζει και το χρώμα της επισήμανσης.

Ενσωματωμένα εργαλεία προγραμματιστή

Το IntelliJ IDEA παρέχει μια ενοποιημένη διεπαφή για τα περισσότερα κύρια συστήματα ελέγχου εκδόσεων, συμπεριλαμβανομένων των Git, SVN, Mercurial, CVS, Perforce και TFS. Μπορείτε να κάνετε όλη τη διαχείριση αλλαγών σας απευθείας στο IDE. Καθώς δοκίμασα το IDEA, εύχομαι ότι το τελευταία αλλαγή σε ένα μπλοκ πηγαίου κώδικα θα εμφανιζόταν στο παράθυρο του προγράμματος επεξεργασίας ως σχολιασμός (όπως συμβαίνει στο Visual Studio). Όπως αποδεικνύεται, υπάρχει μια προσθήκη για αυτό.

Το IDEA ενσωματώνει επίσης εργαλεία κατασκευής, δοκιμαστικούς δρομείς και εργαλεία κάλυψης, καθώς και ένα ενσωματωμένο παράθυρο τερματικού. Το IntelliJ δεν έχει το δικό του προφίλer, αλλά υποστηρίζει αρκετούς προφίλ τρίτων μέσω πρόσθετων. Αυτά περιλαμβάνουν το YourKit, το οποίο δημιουργήθηκε από έναν πρώην κύριο προγραμματιστή IntelliJ και το VisualVM, το οποίο είναι μια επανασυσκευασμένη έκδοση του προφίλ προφίλ NetBeans.

Ο εντοπισμός σφαλμάτων Java μπορεί να είναι ένας πόνος όταν συμβαίνουν μυστηριώδη πράγματα σε τάξεις για τις οποίες δεν έχετε πηγαίο κώδικα. Το IDEA συνοδεύεται από έναν αποκωδικοποιητή για αυτές τις περιπτώσεις.

Ο προγραμματισμός διακομιστή Java περιλαμβάνει συχνά εργασία με βάσεις δεδομένων, οπότε το IDEA Ultimate περιλαμβάνει εργαλεία βάσης δεδομένων SQL και NoSQL. Εάν χρειάζεστε περισσότερα, ένα ειδικό SQL IDE (DataGrip) είναι διαθέσιμο ως μέρος μιας συνδρομής σε όλα τα προϊόντα που είναι λίγο πιο ακριβό από μια συνδρομή IDEA Ultimate.

Το IntelliJ IDEA υποστηρίζει όλους τους σημαντικούς διακομιστές εφαρμογών JVM και μπορεί να αναπτύξει και να εντοπίσει σφάλματα στους διακομιστές, διορθώνοντας ένα σημαντικό σημείο για τους προγραμματιστές Enterprise Java. Το IDEA υποστηρίζει επίσης το Docker μέσω ενός πρόσθετου που προσθέτει ένα παράθυρο εργαλείου Docker. (Μιλώντας για προσθήκες, το IntelliJ έχει πολλά από αυτά.)

Προγραμματισμός Polyglot

Η IDEA έχει επεκτείνει τη βοήθεια κωδικοποίησης για Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS και άλλα πλαίσια. Δεν είναι όλα αυτά τα πλαίσια Java. Εκτός από την Java, το IDEA κατανοεί πολλές άλλες γλώσσες εκτός του πλαισίου, συμπεριλαμβανομένων των Groovy, Kotlin, Scala, JavaScript, TypeScript και SQL. Εάν χρειάζεστε περισσότερα, υπάρχουν επί του παρόντος εκατοντάδες πρόσθετα γλώσσας IntelliJ, συμπεριλαμβανομένων των προσθηκών για R, Elm, Go, Rust και D.

Eclipse IDE

Το Eclipse, το πιο δημοφιλές Java IDE, είναι δωρεάν και ανοιχτού κώδικα και γράφεται κυρίως στην Java, αν και η αρχιτεκτονική του plugin επιτρέπει την επέκταση του Eclipse σε άλλες γλώσσες. Το Eclipse δημιουργήθηκε το 2001 ως έργο IBM για την αντικατάσταση της οικογένειας IDE με βάση το Smalltalk IBM Visual Age με ένα φορητό IDE που βασίζεται σε Java. Ένας στόχος του έργου ήταν να εκλείψει το Microsoft Visual Studio, εξ ου και το όνομα.

Η φορητότητα της Java βοηθά το Eclipse να είναι πολλαπλής πλατφόρμας: Το Eclipse εκτελείται σε Linux, Mac OS X, Solaris και Windows. Το Java Standard Widget Toolkit (SWT) είναι τουλάχιστον εν μέρει υπεύθυνο για την εμφάνιση και την αίσθηση του Eclipse, για καλό ή κακό. Ομοίως, το Eclipse οφείλει την απόδοσή του (ή, μερικοί λένε, την έλλειψή τους) στην JVM. Το Eclipse έχει τη φήμη ότι λειτουργεί αργά, το οποίο επιστρέφει σε παλαιότερο υλικό και παλαιότερα JVM. Ακόμα και σήμερα μπορεί να αισθάνεται αργή, ωστόσο, ειδικά όταν ενημερώνεται στο παρασκήνιο με πολλά εγκατεστημένα πρόσθετα.

Μέρος του overhead που συμβαίνει στο Eclipse είναι ο ενσωματωμένος στοιχειώδης μεταγλωττιστής του, ο οποίος εκτελείται κάθε φορά που φορτώνει ένα αρχείο και όποτε ενημερώνετε τον κωδικό σας. Αυτό είναι σε ισορροπία ένα πολύ καλό πράγμα και παρέχει δείκτες σφάλματος καθώς πληκτρολογείτε.

Ανεξάρτητα από το σύστημα κατασκευής, ένα έργο Eclipse Java διατηρεί επίσης ένα μοντέλο του περιεχομένου του, το οποίο περιλαμβάνει πληροφορίες σχετικά με την ιεραρχία τύπου, αναφορές και δηλώσεις στοιχείων Java. Αυτό είναι επίσης σε ισορροπία ένα καλό πράγμα, και επιτρέπει αρκετούς βοηθούς επεξεργασίας και πλοήγησης, καθώς και την προβολή διάρθρωσης.

Η τρέχουσα έκδοση του Eclipse είναι 2018-09. Εγκατέστησα το Eclipse IDE για Java EE Developers, αλλά υπάρχουν πολλά άλλα πακέτα εγκατάστασης, συμπεριλαμβανομένης της επιλογής εγκατάστασης του ελάχιστου Eclipse SDK και προσθήκης προσθηκών μόνο όπως απαιτείται. Η τελευταία επιλογή δεν είναι για την εξασθένιση της καρδιάς, ωστόσο: δεν είναι δύσκολο να εισαχθούν συγκρούσεις μεταξύ προσθηκών που δεν στην πραγματικότηταλένε ήταν ασυμβίβαστες.

Μάρτιν Χέλλερ

Επεκτάσιμη υποστήριξη εργαλείων

Το οικοσύστημα plugin είναι ένα από τα πλεονεκτήματα του Eclipse, καθώς και ως πηγή περιστασιακής απογοήτευσης. Η αγορά Eclipse περιέχει πάνω από 1.600 λύσεις αυτήν τη στιγμή, και τα πρόσθετα που συνεισφέρουν στην κοινότητα ενδέχεται να λειτουργούν ή να μην λειτουργούν όπως διαφημίζεται. Ωστόσο, τα πρόσθετα Eclipse περιλαμβάνουν υποστήριξη για περισσότερες από 100 γλώσσες προγραμματισμού και σχεδόν 200 πλαίσια ανάπτυξης εφαρμογών.

Υποστηρίζονται επίσης οι περισσότεροι διακομιστές Java: εάν ορίσετε μια νέα σύνδεση διακομιστή από το Eclipse, θα φτάσετε σε μια λίστα φακέλων προμηθευτών, κάτω από τους οποίους θα βρείτε περίπου 30 διακομιστές εφαρμογών, συμπεριλαμβανομένων εννέα εκδόσεων του Apache Tomcat. Οι εμπορικοί προμηθευτές τείνουν να συνδυάζουν τις προσφορές τους μαζί: για παράδειγμα, υπάρχει μόνο ένα στοιχείο στο Red Hat JBoss Middleware, το οποίο περιλαμβάνει WildFly και EAP Server Tools, καθώς και το JBoss AS.

Επεξεργασία, περιήγηση, refactoring και εντοπισμός σφαλμάτων

Η πρώτη εμπειρία ενός προγραμματιστή με το Eclipse μπορεί να είναι ανησυχητική, ακόμη και σύγχυση. Αυτό συμβαίνει επειδή το πρώτο σας έργο είναι να προσαρμοστείτε στην εννοιολογική αρχιτεκτονική των χώρων εργασίας, των προοπτικών και των προβολών του Eclipse, οι λειτουργίες των οποίων καθορίζονται από τα πρόσθετα που έχετε εγκαταστήσει. Για την ανάπτυξη διακομιστή Java, για παράδειγμα, είναι πιθανό να χρησιμοποιήσετε τις προοπτικές περιήγησης Java, Java EE και Java. την προβολή εξερευνητών πακέτων · η προοπτική εντοπισμού σφαλμάτων · μια ομάδα συγχρονισμού προοπτική? εργαλεία ιστού · προοπτική ανάπτυξης βάσης δεδομένων · και μια προοπτική εντοπισμού σφαλμάτων βάσης δεδομένων. Στην πράξη, όλα αυτά θα αρχίσουν να έχουν νόημα μόλις ανοίξετε τις απόψεις που χρειάζεστε.

Υπάρχουν συχνά περισσότεροι από ένας τρόποι για να κάνετε μια συγκεκριμένη εργασία στο Eclipse. Για παράδειγμα, μπορείτε να περιηγηθείτε στον κώδικα με την εξερεύνηση έργου ή / και την προοπτική περιήγησης Java. που επιλέγετε είναι θέμα γεύσης και εμπειρίας.

Η υποστήριξη αναζήτησης Java σάς επιτρέπει να βρείτε δηλώσεις, αναφορές και εμφανίσεις πακέτων, τύπων, μεθόδων και πεδίων Java. Μπορείτε επίσης να χρησιμοποιήσετε τη Γρήγορη πρόσβαση για αναζήτηση και να χρησιμοποιήσετε γρήγορες προβολές για να εμφανίσετε πράγματα όπως τα περιγράμματα τάξης.

$config[zx-auto] not found$config[zx-overlay] not found