JavaRush /จาวาบล็อก /Random-TH /Eclipse, NetBeans หรือ IntelliJ IDEA การเลือก IDE สำหรับก...
Bender
ระดับ
Маунтин-Вью

Eclipse, NetBeans หรือ IntelliJ IDEA การเลือก IDE สำหรับการพัฒนา Java

เผยแพร่ในกลุ่ม
Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 1เราขอนำเสนอการดัดแปลงบทความโดย Martin Heller โปรแกรมเมอร์และบรรณาธิการของทรัพยากร JavaWorld คุณคงเคยได้ยินเกี่ยวกับ IDE ยอดนิยมสามอันดับแรกสำหรับการพัฒนา Java แล้ว 90 เปอร์เซ็นต์ของโปรแกรมเมอร์อุตสาหกรรมใช้ Eclipse, NetBeans หรือ IntelliJ IDEA และ IDE แต่ละตัวเหล่านี้ก็มีข้อดีและข้อเสียของตัวเอง ในบทความนี้เราจะพยายามอธิบายเพื่อให้คุณเข้าใจว่าอันไหนที่เหมาะกับคุณ แม้ว่าแน่นอนว่าจะเป็นการดีกว่าถ้าลองทั้งสามอย่างในที่ทำงานและค้นหาสิ่งที่ดีที่สุดสำหรับคุณ ไม่มีบทวิจารณ์ใดสามารถแทนที่สิ่งนี้ได้

สภาพแวดล้อมการพัฒนาคืออะไร?

คำตอบสั้นๆ ก็คือ สภาพแวดล้อมการพัฒนาคือโปรแกรมหรือหลายโปรแกรมที่คุณใช้ในการสร้างโปรแกรม กระบวนการนี้จริงๆ แล้วรวมถึงการเขียนโค้ด การดีบั๊ก การเปิดใช้งาน และการบูรณาการเข้ากับระบบควบคุมเวอร์ชัน หากนักพัฒนาก่อนหน้านี้มักใช้โปรแกรมแก้ไขข้อความแบบธรรมดา (บางครั้งถึงแม้จะไม่มีการเน้นไวยากรณ์ก็ตาม) เช่น Notepad และบรรทัดคำสั่ง ตอนนี้พวกเขามักจะใช้โปรเซสเซอร์ออลอินวัน สภาพแวดล้อมการพัฒนาแบบรวม หรือ IDE

ไอดีคืออะไร?

สภาพแวดล้อมการพัฒนาแบบรวมหรือภาษาอังกฤษ สภาพแวดล้อมการพัฒนาแบบรวม - IDE - เป็นโปรแกรมที่มีเครื่องมือสำหรับการพัฒนาซอฟต์แวร์ โดยทั่วไปแล้ว สภาพแวดล้อมการพัฒนาสมัยใหม่ประกอบด้วย:
  • โปรแกรมแก้ไขข้อความพร้อมการเน้นโค้ด
  • คอมไพเลอร์หรือล่าม
  • เบราว์เซอร์คลาส ตัวตรวจสอบวัตถุ และไดอะแกรมลำดับชั้นของคลาส
  • เครื่องมือประกอบอัตโนมัติ
  • ดีบักเกอร์;
  • เครื่องมือสำหรับการทำงานร่วมกับระบบควบคุมเวอร์ชัน (Git)
  • เครื่องมือที่ทำให้การออกแบบส่วนต่อประสานผู้ใช้แบบกราฟิกง่ายขึ้น
ฉันเคยทำงานกับ IDE เหล่านี้มาก่อน แต่สำหรับการศึกษานี้ ฉันติดตั้ง IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE และ NetBeans 8.1 Java EE บนแล็ปท็อป MacBook Pro ฉันทดสอบ IDE บนโปรเจ็กต์ Java โอเพ่นซอร์สหลายตัว

สิ่งที่คาดหวังจาก IDE

IDE สมัยใหม่สำหรับ "นักพัฒนา Java ที่ดี" ควรรองรับ Java 8, Scala, Groovy รวมถึงภาษาเครื่องเสมือน Java อื่น ๆ ที่เขาใช้เป็นประจำ การสนับสนุนแอปพลิเคชันเซิร์ฟเวอร์หลักและเฟรมเวิร์กเว็บยอดนิยม รวมถึง Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails และ Vaadin ก็มีประโยชน์เช่นกัน IDE จะต้องเข้ากันได้กับบิลด์ระบบควบคุมเวอร์ชันใดๆ เช่น Ant, Maven หรือ Gradle พร้อมด้วย Git, SVN, CVS, Mercurial หรือ Bazaar นอกจากนี้ สำหรับสภาพแวดล้อมการพัฒนา สิ่งสำคัญคือต้องสามารถทำงานกับฐานข้อมูลและเลเยอร์ไคลเอนต์ของสแต็กของคุณ เพื่อรองรับ JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate ในตัว รวมถึง Java Persistence เอพีไอ สุดท้ายนี้ มีเหตุผลที่จะหวังว่า IDE จะช่วยให้คุณสามารถแก้ไข สร้าง ดีบัก และทดสอบระบบโดยไม่ต้องเครียดโดยไม่จำเป็น ตามหลักการแล้ว สภาพแวดล้อมการพัฒนาไม่เพียงแต่สนับสนุนการเติมโค้ดอัจฉริยะเท่านั้น แต่ยังสนับสนุนการปรับโครงสร้างใหม่และเมตริกโค้ดอย่างชาญฉลาดอีกด้วย ในหลายกรณี จะมีประโยชน์ในการรองรับเฟรมเวิร์กการทดสอบและสตับ หากทีมของคุณใช้ระบบตั๋วและ CI/CD คุณต้องมี IDE เพื่อให้สามารถเชื่อมต่อกับพวกเขาได้ และตัดสินใจว่าคุณต้องการปรับใช้และแก้ไขจุดบกพร่องในคอนเทนเนอร์และคลาวด์หรือไม่ เราได้ระบุเฉพาะความคาดหวังพื้นฐานเท่านั้น (บางทีคุณอาจมีอะไรเพิ่มเติม) และตอนนี้เรามาดูคู่แข่งของเราให้ละเอียดยิ่งขึ้น

IntelliJ IDEA

Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 2ในแง่ของคุณสมบัติและราคา IntelliJ IDEA มีสองเวอร์ชัน: รุ่น Community ฟรี และรุ่น Ultimate แบบชำระเงินพร้อมฟังก์ชันเพิ่มเติม รุ่นชุมชนได้รับการออกแบบมาสำหรับการพัฒนา JVM และ Android เวอร์ชันฟรีรองรับ Java, Kotlin, Groovy และ Scala หุ่นยนต์; มาเวน, Gradle และ SBT; ทำงานร่วมกับระบบควบคุมเวอร์ชัน Git, SVN, Mercurial และ CVS Ultimate Edition เหมาะสำหรับการพัฒนาเว็บและองค์กร IDE เวอร์ชันนี้ไม่เพียงใช้งานได้กับ Git, SVN, Mercurial และ CVS เท่านั้น แต่ยังใช้ได้กับ Perforce, ClearCase และ TFS ด้วย ในนั้นคุณสามารถเขียนเป็น JavaScript และ TypeScript โดยปกติแล้ว มีการรองรับ Java EE, Spring, GWT, Vaadin, Play, Grails และเฟรมเวิร์กอื่นๆ อีกจำนวนหนึ่ง และแน่นอนว่าเราทำไม่ได้หากไม่มี SQL และเครื่องมือสำหรับการทำงานกับฐานข้อมูล แนวคิดที่แนะนำนักพัฒนา IDE นี้เมื่อกำหนดนโยบายการกำหนดราคาคือเวอร์ชันเชิงพาณิชย์ (ขั้นสูงสุด) จะมาแทนที่คอมพิวเตอร์ของมืออาชีพ เนื่องจากประสิทธิภาพการทำงานจะเพิ่มขึ้น หากโปรแกรมเมอร์ Java มีรายได้ 50,000 ดอลลาร์ต่อปี (หรือมากกว่านั้น) ผลตอบแทนจากการลงทุนที่ใช้ไปกับ IDE IntelliJ IDEA ที่ชำระเงิน ($500 สำหรับการสมัครสมาชิกรายปี) จะเกิดขึ้นอย่างรวดเร็วมากเนื่องจากการเร่งงานของเขาเพียงเล็กน้อย ในปีต่อๆ มา ราคาสำหรับธุรกิจลดลง สำหรับสตาร์ทอัพและฟรีแลนซ์มีราคาที่ต่ำกว่ามาก และสำหรับนักเรียน ครู แชมป์ Java และนักพัฒนาโอเพ่นซอร์ส ราคานั้นฟรีโดยสิ้นเชิง IntelliJ IDEA สร้างความประทับใจด้วยความเข้าใจโค้ดที่ลึกซึ้ง การยศาสตร์อันชาญฉลาด คุณสมบัติการพัฒนาในตัว และการสนับสนุนหลายภาษา Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 3
รูปที่ 1 IntelliJ IDEA แสดงจำนวนคำเตือนและการเดาตามการวิเคราะห์ทางสถิติของโค้ด Java คุณสามารถศึกษาสมมติฐานโดยละเอียดเพิ่มเติมได้โดยคลิกที่สมมติฐานดังที่แสดงในภาพ ในหลายกรณี คุณจะได้รับรายการพร้อมตัวเลือกและตัวเลือกการแก้ไข

ความเข้าใจอย่างลึกซึ้งเกี่ยวกับโค้ด

การเน้นไวยากรณ์และการเติมโค้ดให้สมบูรณ์เป็นเรื่องปกติสำหรับโปรแกรมแก้ไข Java สมัยใหม่ IDEA ก้าวไปอีกขั้นด้วยการนำเสนอ "การเติมข้อความอัตโนมัติอัจฉริยะ" คำนี้หมายความว่าสภาพแวดล้อมการพัฒนาแสดงรายการสัญลักษณ์ที่เกี่ยวข้องมากที่สุดที่ใช้ได้ในบริบทที่กำหนด รายการสัญลักษณ์ไม่เพียงแต่ขึ้นอยู่กับบริบท “ที่ยอมรับโดยทั่วไป” เท่านั้น แต่ยังขึ้นอยู่กับรูปแบบการเขียนโปรแกรมของนักพัฒนาด้วย ความถี่ที่เขาใช้โอเปอเรเตอร์บางตัว “Chain Completion” ยังแสดงรายการสัญลักษณ์ที่เกี่ยวข้องซึ่งได้รับอนุญาตผ่านวิธีการหรือตัวรับในบริบทปัจจุบัน นอกจากนี้ สำหรับสมาชิกแบบคงที่หรือค่าคงที่ IDEA จะเพิ่มคำสั่งการนำเข้าที่จำเป็นโดยอัตโนมัติ ในทุกกรณีของการเติมข้อความอัตโนมัติ IDEA จะพยายามเดาประเภทของสัญลักษณ์ในขณะรันไทม์ ปรับแต่งการเลือก และใช้การเลือกประเภทหากจำเป็น โค้ด Java มักจะมีตัวอย่างจากภาษาอื่นเป็นสตริง IDEA สามารถแทรกโค้ด SQL, XPath, HTML, CSS หรือ JavaScript ลงในตัวอักษรสตริง Java ในแง่นี้ IDE สามารถปรับโครงสร้างโค้ดในหลายภาษาได้ ตัวอย่างเช่น หากคุณเปลี่ยนชื่อคลาสในการแมป JPA IDEA จะอัปเดตเอนทิตี JPA และคลาสนิพจน์ที่สอดคล้องกัน เมื่อทำการรีแฟคเตอร์โค้ด นักพัฒนามีความปรารถนา (ค่อนข้างเป็นธรรมชาติ): เพื่อให้โค้ดที่ซ้ำกันทั้งหมดได้รับการปรับโครงสร้างใหม่ด้วย IDEA Ultimate ค้นหารายการที่ซ้ำกันและแฟรกเมนต์ที่คล้ายกัน และยังใช้การปรับโครงสร้างใหม่กับชิ้นส่วนเหล่านั้นอีกด้วย IntelliJ IDEA แยกวิเคราะห์โค้ดเมื่อโหลดและโดยตรงเมื่อคุณป้อน โดยจะชี้ให้เห็นถึงปัญหาที่น่าสงสัย (ดังในภาพด้านบน) และรายการทางเลือกของการแก้ไขปัญหาที่พบอย่างรวดเร็วที่อาจเกิดขึ้น

การยศาสตร์

Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 4IntelliJ IDEA ได้รับการออกแบบมาเพื่อไม่ให้นักพัฒนาต้องออกจากสภาวะการผลิตที่ต่อเนื่องเมื่อเขาหรือเธออยู่ในสถานะนั้นแล้ว หน้าต่าง Project ดังภาพแรกด้านซ้าย จะหายไปด้วยการคลิกเมาส์เพียงครั้งเดียว เพื่อให้โปรแกรมเมอร์สามารถมุ่งความสนใจไปที่หน้าต่างตัวแก้ไขโค้ดได้ สำหรับการดำเนินการทั้งหมดที่จำเป็นในขณะเขียนโค้ด จะมีคีย์ผสมสำหรับการเรียกอย่างรวดเร็ว รวมถึงการกำหนดสัญลักษณ์ในหน้าต่างป๊อปอัป ในตอนแรกชุดค่าผสมทั้งหมดนี้เป็นเรื่องยากที่จะจดจำ แต่คุณจะค่อยๆชินกับชุดค่าผสมเหล่านี้และใช้เฉพาะชุดเหล่านี้เท่านั้น อย่างไรก็ตาม แม้ว่าโปรแกรมเมอร์จะไม่ได้ใช้แป้นพิมพ์ลัดก็ตาม ตามที่แสดงให้เห็นในทางปฏิบัติ เขาก็คุ้นเคยกับการทำงานใน IDEA ได้อย่างง่ายดายและรวดเร็ว ฉันต้องการทราบเป็นพิเศษว่าดีบักเกอร์ IDEA: ค่าตัวแปรจะแสดงโดยตรงในหน้าต่างตัวแก้ไขถัดจากซอร์สโค้ดที่เกี่ยวข้อง เมื่อสถานะของตัวแปรเปลี่ยนแปลง สีไฮไลต์จะเปลี่ยนไปด้วย

เครื่องมือในตัว

IntelliJ IDEA มอบอินเทอร์เฟซแบบรวมให้กับระบบควบคุมเวอร์ชันส่วนใหญ่ รวมถึง Git, SVN, Mercurial, CVS, Perforce และ TFS คุณสามารถจัดการการเปลี่ยนแปลงได้โดยตรงใน IDE ซึ่งสะดวกมาก ตอนที่ฉันกำลังทดสอบ IDEA ฉันมีความปรารถนาที่จะให้การเปลี่ยนแปลงล่าสุดในซอร์สโค้ดปรากฏในหน้าต่างตัวแก้ไขเป็นคำอธิบายประกอบ (เช่น ที่เกิดขึ้น เช่น ใน Visual Studio) ปรากฎว่า IDEA มีปลั๊กอินพิเศษสำหรับสิ่งนี้ IDEA ยังมาพร้อมกับเครื่องมือสร้าง รันไทม์ทดสอบ เครื่องมือครอบคลุม และหน้าต่างเทอร์มินัลในตัว IntelliJ ไม่มีโปรไฟล์ของตัวเอง แต่สามารถเชื่อมต่อกับบุคคลที่สามได้โดยใช้ปลั๊กอิน ตัวอย่างเช่น YourKit ที่สร้างโดยอดีตผู้พัฒนาหลักของ JetBrains หรือ VisualVM (ซึ่งเป็นเวอร์ชันรีแพ็คเกจของ Profiler NetBeans) การดีบักใน Java อาจเป็นเรื่องที่เจ็บปวดเมื่อมีสิ่งลึกลับทุกประเภทเกิดขึ้นกับคลาสที่คุณไม่มีแหล่งที่มา IDEA มีตัวถอดรหัสสำหรับกรณีดังกล่าว การเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ใน Java จำเป็นต้องมีการโต้ตอบกับฐานข้อมูลบ่อยครั้ง ดังนั้นโปรแกรมเมอร์ IDEA Ultimate จะชื่นชอบความสะดวกสบายของเครื่องมือสำหรับการทำงานกับ SQL และฐานข้อมูล แต่หากความสามารถไม่เพียงพอสำหรับบางคน คุณสามารถซื้อ IDEA Ultimate เวอร์ชันที่มี SQL IDE (DataGrip) ในตัวได้ อย่างไรก็ตาม จะมีราคาแพงกว่าการสมัครสมาชิก IDEA Ultimate ปกติเล็กน้อย IntelliJ IDEA รองรับเซิร์ฟเวอร์แอปพลิเคชัน JVM หลักทั้งหมด และอนุญาตให้คุณปรับใช้และแก้ไขจุดบกพร่องบนเซิร์ฟเวอร์เหล่านี้ ซึ่งขจัดปัญหาที่โปรแกรมเมอร์ Java Enterprise ทุกคนคุ้นเคย IDEA ยังรองรับ Docker ด้วย (ผ่านปลั๊กอินที่เพิ่มหน้าต่างเครื่องมือ Docker พิเศษให้กับสภาพแวดล้อมการพัฒนา อย่างไรก็ตาม IDEA มีปลั๊กอินมากมาย  

พูดได้หลายภาษาที่แท้จริง

IDEA ได้ขยายการรองรับโค้ดสำหรับ Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS และเฟรมเวิร์กอื่นๆ คุณอาจสังเกตเห็นว่าไม่ใช่ทั้งหมดที่มีเฉพาะ Java IDEA “เข้าใจ” ภาษาอื่น ๆ ได้ทันที - Groovy, Kotlin, Scala, JavaScript, TypeScript และ SQL หากคุณไม่เห็นภาษาที่คุณกำลังมองหาในรายการนี้ แสดงว่าขณะนี้มีปลั๊กอินภาษา IntelliJ 19 ภาษา ซึ่งรองรับ R, Elm และ D โดยเฉพาะ

คราส IDE

Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 5 ประมาณ 10 ปีที่แล้ว เมื่อถามถึง IDE ที่ดีที่สุด นักพัฒนา Java ก็ตอบอย่างมั่นใจว่า: Eclipse เป็นเวลาหลายปีที่สภาพแวดล้อมการพัฒนานี้ครองตำแหน่ง Java IDE อย่างมั่นใจ สภาพแวดล้อมนี้เป็นโอเพ่นซอร์สฟรีโดยสมบูรณ์ เขียนด้วยภาษา Java เป็นหลัก อย่างไรก็ตาม สถาปัตยกรรมแบบโมดูลาร์ทำให้ Eclipse สามารถใช้กับภาษาอื่นได้ โครงการ Eclipse ซึ่งริเริ่มโดย IBM ปรากฏในปี 2544 พวกเขาต้องการแทนที่สภาพแวดล้อมการพัฒนาตระกูล IBM Visual Age ที่ใช้ Smalltalk เป้าหมายหลักตามชื่อก็คือการทำให้ Microsoft Visual Studio โดดเด่นกว่า (eclipse ในภาษาอังกฤษแปลว่า eclipse) ความสะดวกในการพกพาของ Java ช่วยให้ Eclipse เป็นสภาพแวดล้อมข้ามแพลตฟอร์ม: IDE นี้ทำงานบน Linux, Mac OS X, Solaris และ Windows ไม่ว่าดีขึ้นหรือแย่ลง Java Standard Widget Toolkit (SWT) อย่างน้อยก็มีส่วนรับผิดชอบบางส่วนต่อรูปลักษณ์และความรู้สึกของ Eclipse Eclipse เป็นหนี้ประสิทธิภาพของ JVM (หรือตามที่ผู้หวังดีบางคนบอกว่าขาดไป) Eclipse ทำงานค่อนข้างช้า เนื่องจากมันถูกรูทในฮาร์ดแวร์ที่ค่อนข้างเก่าและ JVM เวอร์ชันเก่า แม้กระทั่งทุกวันนี้ยังดูเหมือนช้า โดยเฉพาะหากคุณแนบปลั๊กอินจำนวนมากเข้ากับมัน ค่าใช้จ่ายด้านทรัพยากรของ Eclipse บางส่วนสามารถนำมาประกอบกับคอมไพเลอร์ส่วนเพิ่มในตัว ซึ่งจะทำงานทุกครั้งที่โหลดไฟล์หรืออัปเดตโค้ด นี่เป็นสิ่งที่มีประโยชน์ โดยจะตรวจจับข้อผิดพลาดเมื่อป้อนข้อความ โดยไม่คำนึงถึง build โปรเจ็กต์ Eclipse จะรักษาโมเดลเนื้อหาที่มีข้อมูลเกี่ยวกับลำดับชั้นของชนิด การอ้างอิง และการประกาศอิลิเมนต์ Java Eclipse เวอร์ชันปัจจุบันเรียกว่า Neon (4.6.0) ฉันติดตั้ง Eclipse Java EE IDE สำหรับนักพัฒนาเว็บแล้ว (นี่ไม่ใช่ตัวเลือกเดียว คุณสามารถเลือกอย่างอื่นได้) ประกอบด้วย Eclipse SDK ขั้นต่ำและมีการเพิ่มปลั๊กอินตามความต้องการ อย่างไรก็ตาม การทำงานกับปลั๊กอินใน IDE นี้ไม่เหมาะกับคนใจเสาะ ปลั๊กอินของบุคคลที่สามมักจะขัดแย้งกัน แม้ว่าข้อกำหนดอย่างเป็นทางการของปลั๊กอินจะไม่พูดอะไรเกี่ยวกับเรื่องนี้ก็ตาม Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 6
รูปที่ 2 จากซ้ายไปขวา มีแถบเครื่องมือ Eclipse สี่แถบ: Package Explorer, Java Editor, โครงสร้างคลาส Java และรายการงาน โปรเจ็กต์ที่โหลดเข้าสู่ Eclipse ในรูปนี้คือเฟรมเวิร์กการทดสอบ JUnit แผงสามารถเปลี่ยนได้อย่างง่ายดาย

การสนับสนุนปลั๊กอิน

ระบบนิเวศปลั๊กอินของ Eclipse เป็นทั้งจุดแข็งของ IDE และเป็นหนึ่งในปัญหาหลัก เป็นเพราะความไม่เข้ากันของปลั๊กอินที่บางครั้งแอสเซมบลีทั้งหมดล้มเหลว และโปรแกรมเมอร์ต้องเริ่มทำงานใหม่ทั้งหมดอีกครั้ง ปัจจุบันมีปลั๊กอินมากกว่า 1,700 ปลั๊กอินที่เขียนขึ้นสำหรับ Eclipse ทั้งแบบเป็นทางการและไม่เป็นทางการ ซึ่งอาจใช้งานได้ดีหรือไม่ก็ได้ ปลั๊กอิน Eclipse รองรับภาษาการเขียนโปรแกรมมากกว่า 100 ภาษาและเฟรมเวิร์กการพัฒนาแอปพลิเคชันเกือบ 200 รายการ เซิร์ฟเวอร์ Java ส่วนใหญ่ยังได้รับการสนับสนุน: หากคุณกำหนดการเชื่อมต่อเซิร์ฟเวอร์ใหม่จาก Eclipse คุณจะถูกนำไปยังรายการโฟลเดอร์ผู้จำหน่ายซึ่งคุณจะพบแอปพลิเคชันเซิร์ฟเวอร์ประมาณ 30 รายการ จะมี Apache Tomcat มากถึงเก้าสายพันธุ์เพียงอย่างเดียว ผู้ค้าเชิงพาณิชย์มีแนวโน้มที่จะรวมโซลูชันของตนเข้าด้วยกัน ตัวอย่างเช่น มีรายการ Red Hat JBoss Middleware เพียงรายการเดียว และภายในคุณจะพบเครื่องมือเซิร์ฟเวอร์ WildFly และ EAP รวมถึง JBoss AS

การแก้ไข การรีแฟคเตอร์ และการดีบัก

ประสบการณ์ครั้งแรกของคุณกับ Eclipse อาจทำให้เกิดความสับสนและสับสนได้ ขั้นตอนแรกคือการตั้งค่า Eclipse และทำความคุ้นเคยกับสถาปัตยกรรมแนวความคิดของเวิร์กสเปซ มุมมอง และมุมมอง ทั้งหมดนี้กำหนดโดยปลั๊กอินที่คุณติดตั้ง สำหรับการพัฒนา Java ฝั่งเซิร์ฟเวอร์ คุณอาจใช้มุมมองการเรียกดู Java, Java EE และ Java, มุมมอง Package Explorer, มุมมองการดีบัก, มุมมองการซิงโครไนซ์คำสั่งเครื่องมือเว็บ, มุมมองการพัฒนาฐานข้อมูล และมุมมองการดีบักฐานข้อมูล ในทางปฏิบัติ ทุกอย่างสมเหตุสมผลเมื่อคุณเปิดหน้าต่างที่คุณต้องการ Eclipse มักจะนำเสนอวิธีแก้ปัญหาต่างๆ หลายวิธีเสมอ ตัวอย่างเช่น คุณสามารถดูโค้ดโดยใช้เปอร์สเปคทีฟการเรียกดู Java สิ่งที่ควรเลือกเป็นเรื่องของรสนิยมและทางเลือก การค้นหา Java แบบพิเศษช่วยให้คุณค้นหาการประกาศ การอ้างอิง และการเกิดขึ้นของแพ็คเกจ Java ประเภท วิธีการ ฟิลด์ คุณยังสามารถใช้การเข้าถึงและดูตัวอย่างการค้นหาอย่างรวดเร็วได้ รูปแบบโค้ดทั่วไปสามารถสร้างได้จากเทมเพลตโค้ด Java Refactoring ใน Eclipse รองรับการดำเนินการ 23 รายการ ตั้งแต่การดำเนินการเปลี่ยนชื่อทั่วไปไปจนถึงการเปลี่ยนแปลงที่ไม่ชัดเจน (ดังในหนังสือของ Martin Fowler) Eclipse รองรับทั้งการดีบักแบบโลคัลและแบบรีโมต หากคุณใช้ JVM ที่รองรับการดีบักแบบรีโมต การดีบักค่อนข้างเป็นมาตรฐาน: คุณกำหนดเบรกพอยต์แล้วดูตัวแปรในแท็บดีบัก แน่นอน คุณสามารถอ่านโค้ดของคุณและประเมินนิพจน์ได้ Eclipse มีฐานข้อมูลมากมายที่รวบรวมเอกสารอายุ ค่านิยม และประโยชน์ที่แตกต่างกัน น่าเสียดายที่การค้นหารูปภาพในคำแนะนำที่ไม่สอดคล้องกับเวอร์ชันปัจจุบัน เช่น ด้วยอินเทอร์เฟซที่ล้าสมัยและเค้าโครงปุ่ม เป็นเรื่องปกติสำหรับ IDE นี้ น่าเสียดายที่ปัญหาการอัปเดตเอกสารล่าช้าเป็นเรื่องปกติมากสำหรับโปรเจ็กต์ซอร์สโค้ดใดๆ

เน็ตบีนส์

Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 7NetBeans เริ่มต้นจากโครงการนักศึกษามหาวิทยาลัยในกรุงปรากในปี 1996 ในปี 1997 IDE กลายเป็นผลิตภัณฑ์เชิงพาณิชย์ และในปี 1999 Sun Microsystems (บริษัทแม่ของ Java) ซื้อไป และในปีถัดมาก็มีการเปิดตัวโอเพ่นซอร์ส เวอร์ชันปัจจุบัน 8.1 ทำงานบนเครื่องที่ใช้ Windows, Mac OS X, Linux และ Solaris แพ็คเกจพกพาสามารถรันบนระบบใดก็ได้ที่มีเครื่อง Java อยู่ ฉันดาวน์โหลดชุด Java EE ด้วยตัวเอง ซึ่งเป็นหนึ่งในหกแพ็คเกจการดาวน์โหลดที่เป็นไปได้ ชุดรวมนี้รองรับ JavaScript และ HTML, GlassFish และ Tomcat แต่ไม่รองรับ PHP, C/C++/Fortran, Groovy และ Grails: สามารถรับได้ในแพ็คเกจ "รวมทุกอย่าง" (หรือเพียงแค่ "ทั้งหมด") อย่างไรก็ตาม หากฉันต้องการ ฉันสามารถดาวน์โหลดการสนับสนุนสำหรับภาษาข้างต้นได้ตลอดเวลาโดยเลือกปลั๊กอินที่เหมาะสม (หรืออื่น ๆ ) NetBeans มีน้อยกว่า Eclipse แต่โดยปกติแล้วจะไม่ขัดแย้งกัน ฤดูใบไม้ร่วงนี้ Oracle (ซึ่งซื้อ NetBeans หลังจากซื้อ Sun Microsystems) ตัดสินใจถ่ายโอนสภาพแวดล้อมการพัฒนานี้ภายใต้การดูแลของ Apache Software Foundation พร้อมด้วยสิทธิ์ทั้งหมด ซอร์สโค้ด เครื่องหมายการค้า โดเมน "netbeans.org" และโครงสร้างพื้นฐานอื่น ๆ อีกจำนวนหนึ่ง องค์ประกอบ ดังนั้นอนาคตของโครงการจึงยังไม่ชัดเจน แม้ว่าก่อนหน้านี้ระบบจะมีสิทธิ์ที่เกี่ยวข้องบางประการก็ตาม ดังนั้นจึงเป็น NetBeans ที่เป็นรายแรกที่ได้รับการสนับสนุนสำหรับ Java 8 เกือบจะในทันทีหลังจากการเปิดตัวแพลตฟอร์มที่อัปเดต และถูกเรียกว่า "IDE อย่างเป็นทางการสำหรับ Java 8" อย่างไรก็ตาม หนึ่งเดือนหลังจากการเปิดตัว ข้อได้เปรียบนี้ก็หายไป: ตอนนั้นเองที่ IDE อื่น ๆ ก็ได้รับการสนับสนุนสำหรับ Java 8 เช่นกัน อย่างไรก็ตาม ฉันต้องการชี้ให้เห็นว่าการรองรับ Java 8 ของ NetBeans นั้นดีมาก และ IDE นั้นยอดเยี่ยมสำหรับการสานต่อเทคนิค Java 8 ให้เป็นโค้ด "เก่า" เครื่องมือแก้ไข ตัววิเคราะห์โค้ด และตัวแปลงจะช่วยให้โปรแกรมเมอร์อัปเกรดโค้ดโดยใช้โครงสร้างทั่วไปของ Java 8 - นิพจน์แลมบ์ดา ตัวดำเนินการฟังก์ชัน และการอ้างอิงเมธอด ปลั๊กอิน JavaScript ใน NetBeans 8 ทำหน้าที่สนับสนุน Node.js และเครื่องมือ JavaScript ล่าสุด เช่น Gulp และ Mocha ได้อย่างยอดเยี่ยมในการรองรับล่าม Nashorn JavaScript Eclipse, NetBeans หรือ IntelliJ IDEA  การเลือก IDE สำหรับการพัฒนา Java - 8
รูปที่ 3 ที่นี่ NetBeans กำลังรันโปรเจ็กต์ที่ใช้ Maven เดียวกันกับที่เปิด IntelliJ IDEA ในรูปที่ 1 สังเกตการทำงานที่ได้รับการปรับปรุงในเมนูบริบทและเมนูย่อยการปรับโครงสร้างใหม่

การแก้ไขและการปรับโครงสร้างใหม่

NetBeans Editor รองรับภาษา ตรวจจับข้อผิดพลาดในขณะที่คุณพิมพ์ และช่วยเหลือคุณเกี่ยวกับคำแนะนำเครื่องมือและการเติมโค้ดอัจฉริยะ ตามความรู้สึกส่วนตัว IDE จัดการกับงานนี้ได้เร็วกว่า Eclipse แต่ค่อนข้างช้ากว่า IntelliJ IDEA นอกจากนี้ NetBeans ยังมีเครื่องมือการรีแฟคเตอร์เต็มรูปแบบ (ดังแสดงในรูปที่ 3) ซึ่งช่วยให้โปรแกรมเมอร์สามารถปรับโครงสร้างโค้ดใหม่ได้โดยไม่ทำให้โค้ดเสียหาย ทำการวิเคราะห์แหล่งที่มา และยังเสนอคำแนะนำที่หลากหลายสำหรับการแก้ไขด่วนหรือส่วนขยายโค้ดอีกด้วย NetBeans มีเครื่องมือออกแบบ Swing GUI ซึ่งเดิมเรียกว่า "Project Matisse" นักพัฒนาชื่นชมเครื่องมือการปรับโครงสร้างอัตโนมัติ Inspect & Transform ซึ่งเปิดตัวใน NetBeans 7.1 ช่วยให้คุณสามารถวิเคราะห์รหัสโครงการและทำการปรับปรุงที่แนะนำได้ แม้ว่าโดยส่วนตัวแล้ว ฉันชอบทดสอบโค้ดของตัวเองทั้งหมดด้วยการทดสอบหน่วยก่อน จากนั้นจึงเรียกใช้เครื่องมือที่สามารถทำการเปลี่ยนแปลงครั้งใหญ่ได้ ฉันต้องทนทุกข์ทรมานจากการแก้ไขอัตโนมัติทุกประเภทซ้ำแล้วซ้ำเล่าซึ่งนำไปสู่ผลลัพธ์ที่แก้ไขไม่ได้

การสร้าง การดีบัก และการทำโปรไฟล์

NetBeans มีการสนับสนุนดั้งเดิมที่ยอดเยี่ยมสำหรับ Maven และ Ant รวมถึงปลั๊กอินสำหรับ Gradle ฉันมีความสุขมากเมื่อพบว่าโปรเจ็กต์ Maven ได้รับการปฏิบัติเหมือนเป็น "ดั้งเดิม" โดยระบบ ซึ่งหมายความว่าสามารถเปิดได้โดยไม่ต้องนำเข้า NetBeans ยังมีการแสดงผลกราฟิกที่น่าดึงดูด (และมีประโยชน์) สำหรับการขึ้นต่อกันของ Maven ดีบักเกอร์ NetBeans Java นั้นไม่ได้แย่ แต่ก็มีคำเตือนอยู่บ้าง วิชวลดีบักเกอร์แยกต่างหากช่วยให้โปรแกรมเมอร์สามารถจับภาพหน้าจอของอินเทอร์เฟซผู้ใช้แบบกราฟิกและสำรวจอินเทอร์เฟซของแอปพลิเคชันที่สร้างโดยใช้ JavaFX และ Swing ตัวสร้างโปรไฟล์ NetBeans ทำให้ชัดเจนยิ่งขึ้นว่า CPU และหน่วยความจำถูกใช้อย่างไร และมีเครื่องมือที่ยอดเยี่ยมสำหรับการค้นหาหน่วยความจำรั่ว

Java IDE ตัวไหนดีกว่ากัน? เปรียบเทียบสามยักษ์ใหญ่

ฉันใช้ IDE ทั้งสาม Eclipse, NetBeans และ IntelliJ IDEA ตลอดหลายปีที่ผ่านมาตามลำดับเวลาที่ระบุไว้ ทุกครั้งที่ฉันเปลี่ยนมาใช้ IDE อื่น ฉันรู้สึกว่าประสิทธิภาพการทำงานของฉันเพิ่มขึ้น แต่แม้ว่าฉันจะเชื่อมั่นอย่างแน่วแน่ว่า IDEA คือตัวเลือกสุดท้ายของฉัน บางครั้งฉันก็ต้องกลับไปใช้ IDE ตัวใดตัวหนึ่งจากสองตัวที่เหลือ ตัวอย่างเช่น นี่เป็นกรณีที่ Eclipse เป็นเครื่องมือเดียวที่รองรับการพัฒนา Android (ปัจจุบันมี Android Studio ซึ่งเป็น IDE อย่างเป็นทางการในปัจจุบันสำหรับ Android ซึ่งใช้ IntelliJ IDEA) แน่นอนว่า IDE ทั้งสามมีแฟนๆ และผู้ว่า ฉันรู้จัก Java Developer จำนวนมากที่ชื่นชอบ IntelliJ IDEA รวมถึงแฟน ๆ ของ Visual Studio C++ และ C# ที่ภักดี บ่อยกว่านั้น คนเหล่านี้พอใจกับความจริงที่ว่าประสิทธิภาพการทำงานของพวกเขาเพิ่มขึ้น และค่าสมัครสมาชิกรายปีจะได้รับคืนหลังจากใช้งาน IDEA เวอร์ชันที่ต้องชำระเงินเพียงไม่กี่สัปดาห์ อย่างไรก็ตาม ผู้ใช้ NetBeans และ Eclipse มักจะยึดติดกับเครื่องมือของตน และสงสัยว่าเหตุใดโปรแกรมเมอร์คนอื่นๆ จึงยินดีจ่ายเงินให้กับ IDEA ฉันอยากจะแนะนำนักพัฒนา Java ใหม่ให้อยู่ห่างจาก Eclipse แม้ว่าจะยังคงเป็น IDE ที่ได้รับความนิยมมากที่สุดสำหรับ Java แต่ก็เป็นเรื่องยากสำหรับผู้เริ่มต้น: เป็นเรื่องง่ายที่จะหลงทางใน Eclipse ทั้งในระหว่างการปรับใช้ระบบและระหว่างการทำงานประจำวัน Eclipse มีระบบนิเวศของปลั๊กอินที่ครอบคลุมมากที่สุดในบรรดา IDE ทั้งหมด และยังมีแนวโน้มที่จะเกิดปัญหามากที่สุดเนื่องจากการติดตั้งชุดปลั๊กอินเดียวกันเหล่านี้ที่เข้ากันไม่ได้ น่าเสียดายที่ในขณะที่ใช้ Eclipse ฉันต้องลบแอสเซมบลีที่เสียหายของ IDE นี้ซ้ำแล้วซ้ำอีก และติดตั้งบันเดิลที่ "สะอาด" NetBeans นั้นดีสำหรับนักพัฒนาส่วนใหญ่ มันมีตัวสร้างโปรไฟล์ที่ยอดเยี่ยม และฉันก็ใช้มันในบางครั้ง อย่างไรก็ตาม ฉันชอบที่จะจ่ายเงินสำหรับ IntelliJ IDEA Ultimate และอนาคตของ NetBeans ก็ยังไม่ชัดเจน สำหรับนักพัฒนา Java ใหม่ที่ยังไม่มีงบประมาณในการซื้อเครื่องมือ ฉันขอแนะนำให้ใช้ NetBeans หรือ IntelliJ IDEA Community Edition ขึ้นอยู่กับความต้องการของพวกเขา อันแรกนั้นคุ้มค่าที่จะเลือกสำหรับผู้ที่กำลังเขียนโค้ดเซิร์ฟเวอร์ Java แต่ถ้าคุณไม่อยู่ในประเภทของผู้ที่สามารถรับ IntelliJ IDEA Ultimate ได้ฟรีหรือมีส่วนลดมากมาย (นักเรียนหรือโปรแกรมเมอร์ที่กำลังพัฒนาโอเพ่นซอร์ส โครงการ).

Java IDE แบบ "เบา"

ในปัจจุบัน นักพัฒนา Java ส่วนใหญ่ใช้ IDEA, NetBeans หรือ Eclipse แต่บางครั้งก็จำเป็นต้องมีสภาพแวดล้อมการพัฒนาที่เบากว่า หรือแม้แต่โปรแกรมแก้ไขโค้ด เช่น Sublime Text, emacs หรือ vim ที่รองรับปลั๊กอิน Java ฉันได้แสดงรายการตัวเลือกที่เหมาะสมไว้ด้านล่างสำหรับผู้ที่มองหาสิ่งที่เบากว่าเล็กน้อย:
  • DrJava — небольшая бесплатная среда разработки. Её создали для студентов Университета Райса, и она стала довольно популярной: DrJava загрузor уже более 2 млн раз. DrJava призвана развивать разработку, основанную на тестировании (test-driven development). Среда содержит «умный» редактор codeа, панель взаимодействия для оценки codeа applications, отладчик уровня источника и инструменты модульного тестирования.
  • BlueJ бесплатная среда разработки Java, созданная специалистами Кентского университета для начинающих программистов. Эта среда поддерживается Oracle. BlueJ отличается гораздо более лаконичным и простым интерфейсом, чем профессиональные IDE, такие, How NetBeans or Eclipse, и даже содержит специальный учебник по основам ООП.
  • JCreator — ещё одна небольшая Java IDE для Windows, написанная на C++ (из соображений увеличения производительности). Платная version Pro оснащена отладчиком, поддержкой Ant и code wizards, ну а бесплатная version (LE) — нет.
  • Eclipse Che — браузерная облачная IDE: Java, C++, JavaScript, Python, PHP, Ruby и SQL — список языков, которые она поддерживает. .

Выбор Java IDE в зависимости от проекта

ฉันได้พยายามอธิบายคุณประโยชน์ที่สำคัญของ Java IDE ที่สำคัญที่สุดทั้งสามตัว และกล่าวถึงคู่แข่งเล็กๆ น้อยๆ ที่มีประโยชน์ของพวกเขาโดยย่อ ในการเลือกสภาพแวดล้อมการพัฒนา Java ที่เหมาะสม คุณจะต้องชั่งน้ำหนักข้อดีและข้อเสีย และจับคู่กับความต้องการและความต้องการของโปรเจ็กต์ของคุณ หากคุณเข้าร่วมทีม เป็นความคิดที่ดีที่จะใช้ IDE เดียวกันกับนักพัฒนาคนอื่นๆ แม้ว่าจะไม่จำเป็นก็ตาม หากทีมของคุณโฮสต์ซอร์สบน GitHub จะสะดวกกว่าโดยธรรมชาติหาก IDE ของคุณรองรับ GitHub ใช่ คุณสามารถจัดการการถ่ายโอนโค้ดโดยไม่ต้องใช้ IDE โดยใช้ไคลเอ็นต์ GitHub หรือบรรทัดคำสั่ง git แต่การข้ามระหว่างระบบต่างๆ จะมีประสิทธิภาพเพียงใด? สิ่งสำคัญคือ IDE รองรับระบบบิลด์ ตัวอย่างเช่น หากเป็น Maven คุณไม่น่าจะต้องการสร้างระบบใหม่ใน Ant เพื่อการทดสอบในพื้นที่ โชคดีที่ Java IDE ขนาดใหญ่ทั้งสามรองรับ Ant, Maven และ Gradle ไม่ว่าจะแกะกล่องหรือใช้ปลั๊กอินก็ตาม แต่สำหรับ IDE ที่ "เล็ก" สิ่งนี้อาจไม่เป็นจริง เป็นความปรารถนาตามธรรมชาติสำหรับสภาพแวดล้อมการพัฒนาเพื่อรองรับเวอร์ชันของ JRE ที่ใช้ในโครงการ หากเวอร์ชันไม่ตรงกัน มีความเป็นไปได้สูงที่จะได้รับข้อบกพร่องพิเศษจำนวนมาก ซึ่งจะปรากฏในตัวคุณ แต่ไม่ใช่ในสมาชิกในทีมคนอื่นๆ ไม่น่าเป็นไปได้ที่สถานการณ์เช่นนี้จะส่งผลดีต่อกรรมของคุณ ตรงไปตรงมา ความไม่สอดคล้องกันของ JRE มีแนวโน้มที่จะเกิดขึ้นเนื่องจากข้อผิดพลาดในการกำหนดค่ามากกว่าเนื่องจากขาดการสนับสนุน IDE เว้นแต่ว่า IDE จะยังไม่ได้อัปเดตเป็น Java เวอร์ชันใหม่ แค่เชื่อว่าถ้า IDE ของคุณรองรับเฟรมเวิร์กและเทคโนโลยีที่ใช้ในโปรเจ็กต์อย่างเต็มที่ มันจะช่วยให้งานเร็วขึ้นได้จริงๆ คุณมักจะจัดการมันต่อไป แต่หาก IDE เข้าใจว่าคำสั่ง JPA เกี่ยวข้องกับเอนทิตี JPA และคลาสนิพจน์ (เช่น IntelliJ) อย่างไร คุณจะใช้เวลากับโค้ดที่เกี่ยวข้องกับ JPA น้อยกว่าหากคุณเข้าใจผิดโดยสิ้นเชิง ถ้า IDE รองรับเฟรมเวิร์กการทดสอบและตัวดำเนินการโค้ดที่ใช้สำหรับโปรเจ็กต์ คุณสามารถรันการทดสอบได้โดยไม่ต้องเปลี่ยนสภาพแวดล้อมการทำงาน นอกจากนี้ยังจะช่วยเร่งกระบวนการพัฒนาอีกด้วย ในที่สุด งานก็จะเร็วขึ้นหาก IDE เข้ากันได้กับระบบการติดตามจุดบกพร่องและระบบตั๋วของโปรเจ็กต์ ขอย้ำอีกครั้งว่า คุณสามารถใช้ไคลเอ็นต์แบบสแตนด์อโลนหรือเว็บได้ เช่น JIRA แต่ก็ยากที่จะไม่เห็นด้วยว่าการตรวจสอบตั๋วจะเร็วกว่ามากโดยไม่ต้องเปลี่ยนหน้าต่าง ในขณะที่ยังคงอยู่ใน IDE โดยตรง

ฟรีหรือจ่ายเงิน?

หลังจากทดสอบ IntelliJ IDEA Ultimate ฉันรู้สึกถึงสภาพแวดล้อมการพัฒนาที่เหมาะสม รถคาดิลแลคแห่งโลก IDE ฉันจะไม่พูดอย่างชัดเจนว่า IDEA เป็น IDE ที่ดีที่สุดสำหรับ Java แต่สำหรับฉันเป็นเช่นนั้น อีกครั้ง แม้ว่าจะไม่ฟรี แต่ฉันคิดว่าประสิทธิภาพการทำงานที่ได้รับจากการใช้งานนั้นคุ้มค่ากับการสมัครสมาชิกรายปี สำหรับผู้เริ่มต้นที่ไม่สามารถจ่ายค่าสมัครสมาชิก IntelliJ IDEA Ultimate รายปีได้ ฉันแนะนำให้ใช้ NetBeans แทน Eclipse แน่นอนว่าระบบนิเวศของปลั๊กอิน Eclipse ในปัจจุบันได้รับการพัฒนามากกว่า IDE อื่น ๆ มาก แต่มันรกเกินไปและรุงรังมาก: นักพัฒนามือใหม่เสี่ยงต่อการติดอยู่ในป่าของ IDE, Java และการจมอยู่กับงานจะจางหายไปในพื้นหลัง . ยังกล่าวถึงทางเลือกที่ "เบา" ซึ่งสองทางเลือกนี้ได้รับการพัฒนาเพื่อการศึกษาโดยเฉพาะ ถ้าคุณเพิ่งเริ่มเรียนภาษาและชอบสภาพแวดล้อมแบบมินิมอลลิสต์ ทำไมจะไม่ได้ล่ะ?
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION