Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 1ما اقتباسی از مقاله ای از مارتین هلر، برنامه نویس و ویراستار منبع JavaWorld را مورد توجه شما قرار می دهیم. احتمالاً قبلاً در مورد سه IDE محبوب برای توسعه جاوا شنیده اید. 90 درصد برنامه نویسان صنعتی از Eclipse، NetBeans یا IntelliJ IDEA استفاده می کنند و هر کدام از این IDE ها مزایا و معایب خاص خود را دارند. در این مقاله سعی می کنیم آنها را شرح دهیم تا متوجه شوید کدام یک برای شما مناسب است. اگرچه، البته، بهتر است هر سه را در محل کار امتحان کنید و دریابید که چه چیزی برای شما بهتر است. هیچ بررسی نمی تواند جایگزین این باشد.

محیط توسعه چیست؟

پاسخ بسیار کوتاه این است که یک محیط توسعه یک برنامه یا چندین برنامه است که شما از آنها برای ایجاد برنامه استفاده می کنید. این فرآیند در واقع شامل نوشتن کد، اشکال زدایی، راه اندازی و ادغام آن با سیستم های کنترل نسخه است. اگر توسعه دهندگان قبلی اغلب از یک ویرایشگر متن ساده (گاهی اوقات حتی بدون برجسته سازی نحو)، مانند Notepad و خط فرمان استفاده می کردند، اکنون اغلب از پردازنده های همه کاره، محیط های توسعه یکپارچه یا IDE استفاده می کنند.

IDE چیست؟

محیط توسعه یکپارچه یا به زبان انگلیسی محیط توسعه مجتمع - IDE - برنامه ای است که حاوی ابزارهایی برای توسعه نرم افزار است. به طور معمول، یک محیط توسعه مدرن شامل:
  • ویرایشگر متن با برجسته کردن کد.
  • کامپایلر یا مفسر؛
  • مرورگر کلاس، بازرس شی، و نمودار سلسله مراتبی کلاس.
  • ابزارهای اتوماسیون مونتاژ؛
  • اشکال زدا؛
  • ابزارهای ادغام با سیستم های کنترل نسخه (Git)؛
  • ابزارهایی برای ساده سازی طراحی یک رابط کاربری گرافیکی.
من قبلاً با این IDE ها کار کرده ام، اما برای این مطالعه IntelliJ IDEA Ultimate 2016.2، Eclipse Neon Java EE و NetBeans 8.1 Java EE را روی یک لپ تاپ مک بوک پرو نصب کردم. من IDE را روی چندین پروژه منبع باز جاوا آزمایش کردم.

از یک IDE چه انتظاری باید داشت

یک IDE مدرن برای یک «توسعه‌دهنده جاوا سالم» باید از جاوا 8، اسکالا، Groovy و همچنین سایر زبان‌های ماشین مجازی جاوا که او مرتباً از آنها استفاده می‌کند، پشتیبانی کند. پشتیبانی از سرورهای برنامه اصلی و محبوب ترین چارچوب های وب، از جمله Spring MVC، JSF، Struts، GWT، Play، Wicket، Grails و Vaadin نیز مفید خواهد بود. IDE باید با هر سیستم کنترل نسخه، مانند Ant، ​​Maven یا Gradle، همراه با Git، SVN، CVS، Mercurial یا Bazaar سازگار باشد. علاوه بر این، برای محیط توسعه مهم است که بتوانید با پایگاه‌های داده و لایه مشتری پشته خود کار کنید، از جاوا اسکریپت داخلی، TypeScript، HTML، SQL، JavaServer Pages، Hibernate و همچنین Java Persistence پشتیبانی کنید. API. در نهایت، منطقی است که امیدوار باشیم که IDE به شما امکان ویرایش، ایجاد، اشکال زدایی و آزمایش سیستم ها را بدون استرس غیر ضروری بدهد. در حالت ایده آل، محیط توسعه نه تنها از تکمیل کد هوشمند، بلکه از refactoring هوشمند و معیارهای کد نیز پشتیبانی می کند. در بسیاری از موارد، پشتیبانی از چارچوب‌های آزمایشی و خرد مفید خواهد بود. اگر تیم شما از سیستم بلیط و CI/CD استفاده می کند، برای اینکه بتوانید به آنها وصل شوید به IDE نیاز دارید. و تصمیم بگیرید که آیا به استقرار و اشکال زدایی در کانتینرها و ابرها نیاز دارید یا خیر. ما فقط انتظارات اساسی را فهرست کرده ایم (شاید چیزی برای اضافه کردن داشته باشید)، و اکنون بیایید نگاهی دقیق تر به رقبای خود بیندازیم.

ایده IntelliJ

Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 2از نظر ویژگی‌ها و قیمت، IntelliJ IDEA در دو نسخه ارائه می‌شود: نسخه رایگان انجمن و نسخه پولی Ultimate با عملکرد گسترده. نسخه Community برای توسعه JVM و Android طراحی شده است. نسخه رایگان از Java، Kotlin، Groovy و Scala پشتیبانی می کند. اندروید؛ Maven، Gradle و SBT؛ با سیستم های کنترل نسخه Git، SVN، Mercurial و CVS کار می کند. نسخه Ultimate برای توسعه وب و سازمانی مناسب است. این نسخه از IDE نه تنها با Git، SVN، Mercurial و CVS، بلکه با Perforce، ClearCase و TFS نیز کار می کند. در آن می توانید در جاوا اسکریپت و تایپ اسکریپت بنویسید. طبیعتاً از Java EE، Spring، GWT، Vaadin، Play، Grails و تعدادی فریمورک دیگر پشتیبانی می شود. و البته، ما نمی‌توانستیم بدون SQL و ابزارهای کار با پایگاه‌های داده کار کنیم. ایده ای که توسعه دهندگان این IDE را در هنگام تنظیم سیاست قیمت گذاری راهنمایی می کند این است که نسخه تجاری آن (Ultimate) جای خود را در رایانه های حرفه ای ها بگیرد و به همین دلیل بهره وری آنها افزایش می یابد. اگر یک برنامه نویس جاوا سالانه 50 هزار دلار (یا حتی بیشتر) درآمد داشته باشد، بازگشت سرمایه صرف شده در IDE IntelliJ IDEA پرداخت شده (500 دلار برای اشتراک سالانه) به دلیل حتی تسریع جزئی در کار او بسیار سریع اتفاق می افتد. در سال‌های بعد، قیمت برای کسب‌وکارها کاهش می‌یابد، برای استارت‌آپ‌ها و فریلنسرها به میزان قابل‌توجهی پایین‌تر است، و برای دانش‌آموزان، معلمان، قهرمانان جاوا و توسعه‌دهندگان منبع باز کاملا رایگان است. IntelliJ IDEA با درک عمیق کد، ارگونومی هوشمند، ویژگی‌های توسعه داخلی و پشتیبانی از چند زبان تحت تأثیر قرار می‌گیرد. Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 3
شکل 1. IntelliJ IDEA تعداد اخطارها و حدس ها را بر اساس تجزیه و تحلیل آماری کد جاوا نشان می دهد. همانطور که در تصویر نشان داده شده است، می توانید با کلیک بر روی آنها فرضیات را با جزئیات بیشتری مطالعه کنید. در بسیاری از موارد شما یک لیست با انتخاب ها و گزینه های تصحیح دریافت خواهید کرد.

درک عمیق کد

برجسته کردن نحو و تکمیل کد ساده برای هر ویرایشگر جاوا مدرن رایج است. IDEA با ارائه «تکمیل خودکار هوشمند» فراتر رفت. این اصطلاح به این معنی است که محیط توسعه فهرستی از مرتبط ترین نمادهای قابل اجرا در یک زمینه معین را نشان می دهد. فهرست نمادها نه تنها به زمینه، یعنی "به طور کلی پذیرفته شده"، بلکه به سبک برنامه نویسی توسعه دهنده بستگی دارد، به اینکه او چند وقت یکبار از اپراتورهای خاص استفاده می کند. "تکمیل زنجیره" حتی فهرستی از نمادهای قابل اجرا را نشان می دهد که از طریق روش ها یا دریافت کننده ها در زمینه فعلی مجاز هستند. علاوه بر این، برای اعضای ثابت یا ثابت، IDEA به طور خودکار هر گونه دستور واردات ضروری را اضافه می کند. در تمام موارد تکمیل خودکار، IDEA تلاش می‌کند تا نوع نماد را در زمان اجرا حدس بزند، انتخاب آن را اصلاح کند و حتی در صورت لزوم یک نوع ریخته‌گری را اعمال کند. کد جاوا اغلب شامل قطعه هایی از زبان های دیگر به عنوان رشته است. IDEA می‌تواند کدهای SQL، XPath، HTML، CSS یا جاوا اسکریپت را به رشته‌های جاوا تزریق کند. از این نظر، IDE می‌تواند کد را در چندین زبان تغییر دهد. به عنوان مثال، اگر نام یک کلاس را در یک نقشه برداری JPA تغییر دهید، IDEA موجودیت و کلاس عبارت JPA مربوطه را به روز می کند. هنگام بازسازی یک قطعه کد، توسعه‌دهنده یک تمایل (کاملاً طبیعی) دارد: این که همه نسخه‌های تکراری این کد نیز دوباره ساخته شوند. IDEA Ultimate قطعات تکراری و مشابه را پیدا می‌کند و همچنین Refactoring را برای آنها اعمال می‌کند. IntelliJ IDEA کد را هنگام بارگذاری و مستقیماً با وارد کردن آن تجزیه می کند. به مشکلات مشکوک اشاره می کند (مانند تصویر ما در بالا) و به صورت اختیاری لیستی از راه حل های سریع احتمالی مشکلات پیدا شده را ارائه می دهد.

ارگونومی

Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 4IntelliJ IDEA طوری طراحی شده است که یک توسعه‌دهنده را پس از اینکه در حال حاضر در وضعیت بهره‌وری است، از بین نبرد. پنجره Project که در تصویر اول در سمت چپ نشان داده شده است، با یک کلیک ساده ماوس ناپدید می شود تا برنامه نویس بتواند روی پنجره ویرایشگر کد تمرکز کند. برای همه اقداماتی که در هنگام نوشتن کد مورد نیاز است، کلیدهای ترکیبی برای فراخوانی سریع آنها وجود دارد، از جمله تعریف نمادها در پنجره های بازشو. در ابتدا به خاطر سپردن همه این ترکیب ها سخت است، اما به تدریج به آنها عادت می کنید و فقط از آنها استفاده می کنید. با این حال، حتی اگر برنامه نویس از میانبرهای صفحه کلید استفاده نکند، همانطور که تمرین نشان می دهد، به راحتی و به سرعت به کار در IDEA عادت می کند. من می خواهم به خصوص به اشکال زدایی IDEA توجه کنم: مقادیر متغیر مستقیماً در پنجره ویرایشگر در کنار کد منبع مربوطه نمایش داده می شوند. هنگامی که وضعیت یک متغیر تغییر می کند، رنگ هایلایت نیز تغییر می کند.

ابزارهای داخلی

IntelliJ IDEA یک رابط یکپارچه برای اکثر سیستم های کنترل نسخه، از جمله Git، SVN، Mercurial، CVS، Perforce و TFS فراهم می کند. می توانید تغییرات را مستقیماً در IDE مدیریت کنید که بسیار راحت است. وقتی داشتم IDEA را آزمایش می کردم، تمایل داشتم که آخرین تغییر در کد منبع در پنجره ویرایشگر به عنوان حاشیه نویسی نمایش داده شود (مثلاً در ویژوال استودیو). همانطور که مشخص است، IDEA یک پلاگین ویژه برای این کار دارد. IDEA همچنین دارای ابزارهای ساخت، زمان اجرای آزمایشی، ابزارهای پوشش و پنجره ترمینال داخلی است. IntelliJ پروفایلر مخصوص به خود را ندارد، اما افراد ثالث را می توان با استفاده از افزونه ها به آن متصل کرد. به عنوان مثال، YourKit، که توسط توسعه‌دهنده پیشین JetBrains یا VisualVM (که یک نسخه بسته‌بندی مجدد از پروفایل‌کننده NetBeans است) ایجاد شده است. اشکال زدایی در جاوا زمانی که انواع و اقسام چیزهای مرموز برای کلاس هایی اتفاق می افتد که منبع آن را ندارید می تواند دردسرساز باشد. IDEA شامل یک دیکامپایلر برای چنین مواردی است. برنامه نویسی سمت سرور در جاوا نیاز به تعامل مکرر با پایگاه های داده دارد، بنابراین برنامه نویسان 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 و سایر فریم ورک ها را گسترش داده است. احتمالاً متوجه شده اید که همه آنها مختص جاوا نیستند. IDEA مستقیماً زبان های دیگر را می فهمد - Groovy، Kotlin، Scala، JavaScript، TypeScript و SQL. اگر زبان مورد نظر خود را در این لیست نمی بینید، در حال حاضر 19 افزونه زبان IntelliJ وجود دارد که به طور خاص از R، Elm و D پشتیبانی می کنند.

Eclipse IDE

Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 5 حدود 10 سال پیش، هنگامی که از یک توسعه دهنده جاوا در مورد بهترین IDE سوال شد، با اطمینان پاسخ داد: Eclipse. برای سال‌ها، این محیط توسعه با اطمینان در بین IDE‌های جاوا جای داشت. این محیط کاملاً رایگان و متن باز است که عمدتاً به زبان جاوا نوشته شده است. با این حال، معماری ماژولار آن اجازه می دهد تا Eclipse با زبان های دیگر استفاده شود. پروژه Eclipse که توسط IBM آغاز شد، در سال 2001 ظاهر شد. آنها می خواستند محیط های توسعه خانواده IBM Visual Age مبتنی بر اسمال تاک را جایگزین کنند. خوب، هدف اصلی، همانطور که حتی از نامش پیداست، پیشی گرفتن از مایکروسافت ویژوال استودیو بود (eclipse در انگلیسی به معنای کسوف است). قابلیت حمل جاوا به Eclipse کمک می کند تا یک محیط چند پلتفرمی باشد: این IDE روی Linux، Mac OS X، Solaris و Windows اجرا می شود. خوب یا بد، جعبه ابزار استاندارد جاوا (SWT) حداقل تا حدی مسئول ظاهر و احساس Eclipse است. Eclipse عملکرد خود را مدیون JVM است. Eclipse بسیار کند کار می کند، زیرا ریشه در سخت افزارهای قدیمی و نسخه های قدیمی JVM دارد. حتی امروز هم کند به نظر می رسد، به خصوص اگر پلاگین های زیادی را به آن متصل کنید. برخی از سربار منابع Eclipse را می توان به کامپایلر افزایشی داخلی آن نسبت داد، که هر زمان که فایلی بارگذاری می شود یا کد به روز می شود، اجرا می شود. این یک چیز مفید است؛ هنگام وارد کردن متن، خطاها را تشخیص می دهد. صرف نظر از ساخت، پروژه Eclipse یک مدل محتوا را حفظ می کند که حاوی اطلاعاتی در مورد سلسله مراتب انواع، ارجاعات و اعلانات عناصر جاوا است. نسخه فعلی Eclipse Neon (4.6.0) نام دارد. من Eclipse Java EE IDE را برای توسعه دهندگان وب نصب کردم (این تنها گزینه نیست، می توانید چیز دیگری را انتخاب کنید). این شامل حداقل Eclipse SDK است و در صورت تقاضا افزونه ها اضافه می شوند. به هر حال، کار با پلاگین ها در این IDE برای افراد ضعیف نیست. پلاگین های شخص ثالث اغلب با یکدیگر در تضاد هستند، اگرچه مشخصات رسمی آنها چیزی در این مورد نمی گوید. Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 6
شکل 2. از چپ به راست، چهار نوار ابزار Eclipse وجود دارد: Package Explorer، Java Editor، Java Class Structure و Task List. پروژه بارگذاری شده در Eclipse در این شکل چارچوب تست JUnit است. پانل ها را می توان به راحتی تعویض کرد.

پشتیبانی از افزونه

اکوسیستم پلاگین Eclipse هم نقطه قوت IDE است و هم یکی از مشکلات اصلی آن. به دلیل ناسازگاری افزونه ها است که گاهی اوقات کل اسمبلی ها از کار می افتند و برنامه نویسان مجبور می شوند دوباره کار را شروع کنند. در حال حاضر بیش از 1700 افزونه برای Eclipse نوشته شده است، رسمی و غیر رسمی، که ممکن است عالی کار کنند یا نه. پلاگین های Eclipse از بیش از 100 زبان برنامه نویسی و تقریبا 200 فریمورک توسعه اپلیکیشن پشتیبانی می کنند. اکثر سرورهای جاوا نیز پشتیبانی می‌شوند: اگر اتصال سرور جدیدی را از Eclipse تعیین کنید، به فهرستی از پوشه‌های فروشنده هدایت می‌شوید که در آن حدود 30 سرور برنامه را خواهید یافت. به تنهایی 9 نوع آپاچی تامکت وجود خواهد داشت. فروشندگان تجاری تمایل دارند راه حل های خود را با هم ترکیب کنند: به عنوان مثال، تنها یک مورد Red Hat JBoss Middleware وجود دارد و در داخل شما ابزارهای سرور WildFly و EAP و همچنین JBoss AS را خواهید یافت.

ویرایش، refactoring و اشکال زدایی

اولین تجربه شما با Eclipse می تواند گیج کننده و حتی گیج کننده باشد. اولین قدم این است که Eclipse را راه اندازی کنید و به معماری مفهومی آن از فضاهای کاری، نماها و نماها عادت کنید. همه اینها توسط افزونه هایی که نصب کرده اید تعیین می شود. برای توسعه جاوا سمت سرور، احتمالاً از نماهای مرور Java، Java EE و Java، نمای Package Explorer، نمای اشکال زدایی، نمای همگام سازی دستورات ابزارهای وب، نمای توسعه پایگاه داده و نمای اشکال زدایی پایگاه داده استفاده خواهید کرد. در عمل، وقتی پنجره های مورد نیاز خود را باز می کنید، همه چیز معنا پیدا می کند. Eclipse تقریبا همیشه چندین راه برای حل یک مشکل خاص ارائه می دهد. به عنوان مثال، می توانید کد را با استفاده از چشم انداز مرور جاوا مشاهده کنید. اینکه چه چیزی را انتخاب کنیم یک موضوع سلیقه و انتخاب است. جستجوی ویژه جاوا به شما امکان می دهد اعلان ها، مراجع و موارد بسته های جاوا، انواع، روش ها، فیلدها را بیابید. همچنین می توانید از دسترسی و پیش نمایش سریع جستجو استفاده کنید. الگوهای کد رایج را می توان از الگوهای کد تولید کرد. جاوا Refactoring در Eclipse از 23 عملیات پشتیبانی می‌کند، از عملیات تغییر نام رایج تا تبدیل‌های کمتر آشکار (مانند کتاب مارتین فاولر). Eclipse هم از اشکال زدایی محلی و هم از راه دور پشتیبانی می کند، مشروط بر اینکه از JVM استفاده کنید که از اشکال زدایی از راه دور پشتیبانی می کند. اشکال زدایی بسیار استاندارد است: شما نقاط شکست را تعریف می کنید و سپس متغیرها را در برگه اشکال زدایی مشاهده می کنید. البته، شما می توانید از کد خود عبور کرده و عبارات را ارزیابی کنید. Eclipse دارای پایگاه داده وسیعی از اسناد سنی، ارزش ها و سودمندی های مختلف است. متأسفانه، یافتن تصویری در دستورالعمل ها که با نسخه فعلی مطابقت ندارد، به عنوان مثال، با رابط کاربری قدیمی و چیدمان دکمه، یک اتفاق رایج برای این IDE است. متأسفانه، مشکل به روز رسانی دیرهنگام اسناد برای هر پروژه کد منبع بسیار رایج است.

NetBeans

Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 7NetBeans به عنوان یک پروژه دانشجویی دانشگاه در پراگ در سال 1996 آغاز شد. در سال 1997، IDE به یک محصول تجاری تبدیل شد و در سال 1999 توسط Sun Microsystems (والدین جاوا) خریداری شد و سال بعد یک نسخه متن باز ارائه کرد. نسخه فعلی 8.1 بر روی دستگاه های دارای ویندوز، مک او اس ایکس، لینوکس و سولاریس اجرا می شود. خوب، بسته قابل حمل را می توان روی هر سیستمی که یک ماشین جاوا برای آن وجود دارد اجرا کرد. من باندل Java EE را برای خودم دانلود کردم، یکی از شش بسته دانلود ممکن است. این بسته از جاوا اسکریپت و HTML، GlassFish و Tomcat پشتیبانی می کند، اما از PHP، C/C++/Fortran، Groovy و Grails پشتیبانی نمی کند: آنها را می توان در بسته "All Inclusive" (یا به سادگی "All") به دست آورد. با این حال، در صورت تمایل، می توانم در هر زمان با انتخاب افزونه مناسب (یا هر افزونه) پشتیبانی از زبان های فوق را دانلود کنم. NetBeans تعداد آنها کمتر از Eclipse است، اما معمولاً با یکدیگر تضاد ندارند. پاییز امسال، Oracle (که NetBeans را پس از خرید Sun Microsystems خریداری کرد) تصمیم گرفت این محیط توسعه را به همراه کلیه حقوق، کد منبع، علامت تجاری، دامنه "netbeans.org" و تعدادی زیرساخت دیگر تحت بال بنیاد نرم افزار آپاچی منتقل کند. عناصر. بنابراین، آینده پروژه هنوز مبهم است، اگرچه این سیستم قبلاً دارای امتیازات مرتبط خاصی بود. بنابراین، NetBeans اولین کسی بود که تقریباً بلافاصله پس از انتشار پلتفرم به روز شده، از جاوا 8 پشتیبانی دریافت کرد و "IDE رسمی برای جاوا 8" نام گرفت. با این حال، یک ماه پس از انتشار، این مزیت از بین رفت: در آن زمان بود که سایر IDE ها نیز از جاوا 8 پشتیبانی کردند. با این حال، می‌خواهم به این نکته اشاره کنم که پشتیبانی از جاوا 8 NetBeans واقعاً خوب است و IDE برای ترکیب کردن ترفندهای جاوا 8 در کدهای "قدیمی" عالی است. ویرایشگرها، تحلیل‌گرهای کد و مبدل‌های آن به برنامه‌نویس کمک می‌کنند تا کد را با استفاده از ساختارهای معمولی جاوا 8 - عبارات لامبدا، عملگرهای عملکردی و مراجع روش ارتقا دهد. پلاگین های جاوا اسکریپت در NetBeans 8 در پشتیبانی از Node.js و جدیدترین ابزارهای جاوا اسکریپت مانند Gulp و Mocha و همچنین پشتیبانی از مفسر جاوا اسکریپت Nashorn کار بسیار خوبی انجام می دهند. Eclipse، NetBeans یا IntelliJ IDEA؟  انتخاب یک IDE برای توسعه جاوا - 8
شکل 3. در اینجا NetBeans همان پروژه مبتنی بر Maven را اجرا می کند که IntelliJ IDEA در شکل 1 باز شد.

ویرایش و بازسازی

ویرایشگر NetBeans از زبان‌ها پشتیبانی می‌کند، هنگام تایپ خطاها را شناسایی می‌کند و در راهنمایی‌های ابزار و تکمیل کد هوشمند به شما کمک می‌کند. با توجه به احساس ذهنی، IDE سریعتر از Eclipse با این کار کنار می آید، اما تا حدودی کندتر از IntelliJ IDEA. علاوه بر این، NetBeans دارای طیف کاملی از ابزارهای refactoring است (همانطور که در شکل 3 نشان داده شده است) که به برنامه نویس اجازه می دهد تا کد را بدون شکستن آن بازسازی کند، تجزیه و تحلیل منبع را انجام دهد و همچنین طیف گسترده ای از نکات را برای رفع سریع یا پسوند کد ارائه می دهد. NetBeans شامل ابزار طراحی Swing GUI است که قبلاً به عنوان "Project Matisse" شناخته می شد. توسعه دهندگان از ابزار بازسازی خودکار Inspect & Transform که در NetBeans 7.1 معرفی شده است بسیار قدردانی می کنند. این به شما امکان می دهد کد پروژه را تجزیه و تحلیل کنید و بهبودهای پیشنهادی را انجام دهید. اگرچه شخصاً ترجیح می‌دهم ابتدا تمام کدهای خودم را با تست‌های واحد آزمایش کنم و تنها پس از آن ابزارهایی را اجرا کنم که می‌توانند تغییرات اساسی ایجاد کنند. من بارها از انواع اصلاحات خودکار که منجر به عواقب جبران ناپذیری شده است رنج برده ام.

ساخت، اشکال زدایی و پروفایل

NetBeans دارای پشتیبانی داخلی عالی برای Maven و Ant و همچنین یک پلاگین برای Gradle است. وقتی متوجه شدم که سیستم با پروژه های Maven به عنوان "بومی" برخورد می کند، بسیار خوشحال شدم. این بدان معناست که می توان آنها را به سادگی باز کرد تا اینکه وارد کرد. NetBeans همچنین دارای یک صفحه نمایش گرافیکی جذاب (و مفید) برای وابستگی های Maven است. اشکال زدای جاوا NetBeans بد نیست، اما با برخی اخطارها همراه است. یک دیباگر بصری جداگانه به برنامه نویس اجازه می دهد تا از رابط گرافیکی کاربر اسکرین شات بگیرد و رابط های برنامه های کاربردی ساخته شده با JavaFX و Swing را بررسی کند. نمایه ساز NetBeans نحوه استفاده از CPU و حافظه را واضح تر می کند و دارای ابزارهای عالی برای یافتن نشت حافظه است.

کدام Java IDE بهتر است؟ مقایسه سه گانه غول ها

من از هر سه IDE، Eclipse، NetBeans و IntelliJ IDEA در طول سال‌ها به ترتیب زمانی ذکر شده استفاده کرده‌ام. هر بار که به IDE دیگری تغییر می کردم، احساس می کردم بهره وری من افزایش می یابد. اما حتی زمانی که کاملاً متقاعد شدم که IDEA انتخاب نهایی من است، گاهی اوقات مجبور می شدم به یکی از دو IDE باقی مانده برگردم. به عنوان مثال، در زمانی که Eclipse تنها ابزاری بود که از توسعه اندروید پشتیبانی می‌کرد، اینطور بود (امروزه Android Studio وجود دارد، IDE رسمی فعلی برای اندروید، که بر اساس IntelliJ IDEA است). البته هر سه IDE طرفداران و مخالفان خود را دارند. من بسیاری از توسعه دهندگان جاوا را می شناسم که عاشق IntelliJ IDEA هستند و همچنین طرفداران وفادار Visual Studio C++ و C#. بیشتر اوقات، این افراد از این واقعیت خوشحال هستند که بهره وری آنها افزایش یافته است و هزینه اشتراک سالانه تنها پس از چند هفته استفاده از نسخه پولی IDEA بازپرداخت می شود. با این حال، کاربران NetBeans و Eclipse نیز اغلب به ابزارهای خود وابسته هستند و تعجب می کنند که چرا برنامه نویسان دیگر مایل به پرداخت پول برای IDEA هستند. من به توسعه دهندگان جدید جاوا توصیه می کنم که از Eclipse دوری کنند. علیرغم این واقعیت که هنوز هم محبوب ترین IDE برای جاوا است، برای مبتدیان دشوار است: گم شدن در طبیعت Eclipse، هم در حین استقرار سیستم و هم در حین کار روزانه آسان است. Eclipse گسترده‌ترین اکوسیستم پلاگین را در بین تمام IDEها دارد و همچنین به دلیل نصب مجموعه ناسازگاری از همین پلاگین‌ها، احتمال خرابی بیشتر است. متأسفانه، در حین استفاده از Eclipse، من بارها مجبور شدم یک مجموعه شکسته دیگر از این IDE را حذف کنم و یک بسته نرم افزاری "تمیز" را نصب کنم. NetBeans برای اکثر توسعه دهندگان خوب است، پروفایلی عالی دارد و من گاهی از آن استفاده می کنم. با این حال، من ترجیح می دهم برای IntelliJ IDEA Ultimate هزینه کنم. و آینده NetBeans هنوز نامشخص است. برای توسعه دهندگان جدید جاوا که هنوز بودجه ای برای خرید ابزار ندارند، بسته به نیازشان استفاده از NetBeans یا IntelliJ IDEA Community Edition را توصیه می کنم. اولین مورد برای کسانی که در حال کدنویسی سرورهای جاوا هستند ارزش انتخاب دارد، اما فقط در صورتی که در دسته افرادی قرار نگیرید که می توانند IntelliJ IDEA Ultimate را به صورت رایگان یا با تخفیف زیاد دریافت کنند (دانشجویان یا برنامه نویسانی که در حال توسعه یک منبع باز هستند. پروژه).

"سبک" جاوا IDE

امروزه اکثر توسعه دهندگان جاوا از IDEA، NetBeans یا Eclipse استفاده می کنند، اما گاهی اوقات نیاز به محیط های توسعه سبک تر یا حتی ویرایشگرهای کد مانند Sublime Text، emacs یا vim وجود دارد که از افزونه های جاوا پشتیبانی می کنند. من گزینه های معقول را در زیر برای کسانی که به دنبال چیزی سبک تر هستند فهرست کرده ام:
  • 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 в зависимости от проекта

من سعی کردم مزایای مهم هر یک از سه IDE مهم جاوا را شرح دهم و به طور خلاصه به رقبای کوچک مفید آنها اشاره کنم. برای انتخاب محیط توسعه جاوا مناسب، باید مزایا و معایب را بسنجید و آنها را با نیازهای خود و نیازهای پروژه هایتان مطابقت دهید. اگر در حال پیوستن به یک تیم هستید، ایده خوبی است که از همان IDE مانند سایر توسعه دهندگان استفاده کنید، اگرچه این کار الزامی نیست. اگر تیم شما میزبان منابعی در GitHub باشد، طبیعتا راحت‌تر خواهد بود اگر IDE شما از GitHub پشتیبانی کند. بله، شما می توانید با استفاده از سرویس گیرنده GitHub یا خط فرمان git، انتقال کد را بدون IDE انجام دهید. اما چنین جهش هایی بین سیستم های مختلف چقدر موثر خواهد بود؟ همچنین مهم است که IDE از سیستم ساخت پشتیبانی کند. برای مثال، اگر Maven باشد، بعید است که بخواهید سیستم را در Ant برای آزمایش محلی بازسازی کنید. خوشبختانه، هر سه IDE بزرگ جاوا از Ant، ​​Maven و Gradle پشتیبانی می‌کنند، چه خارج از جعبه یا با یک پلاگین. اما برای IDE های "کوچک" ممکن است این درست نباشد. این یک تمایل طبیعی برای محیط توسعه برای پشتیبانی از نسخه JRE است که در پروژه استفاده می شود. اگر نسخه ها مطابقت نداشته باشند، احتمال زیادی وجود دارد که باگ های اضافی زیادی را دریافت کنید که مثلاً در شما ظاهر می شود اما در سایر اعضای تیم نه. بعید است که چنین وضعیتی تأثیر خوبی بر کارما داشته باشد. صادقانه بگویم، ناهماهنگی JRE بیشتر به دلیل خطاهای پیکربندی رخ می دهد تا به دلیل عدم پشتیبانی IDE، مگر اینکه IDE هنوز به نسخه جدیدی از جاوا به روز نشده باشد. فقط باور کنید که اگر IDE شما به طور کامل از چارچوب ها و فناوری های مورد استفاده در پروژه پشتیبانی کند، واقعا به سرعت بخشیدن به کار کمک می کند. به احتمال زیاد به هر حال آن را مدیریت خواهید کرد. اما، اگر IDE بفهمد که عبارات JPA چگونه با کلاس‌های عبارت و نهاد JPA مرتبط هستند (مانند IntelliJ)، زمان بسیار کمتری را برای کدهای مرتبط با JPA صرف خواهید کرد تا اینکه کاملاً اشتباه متوجه شوید. خوب، اگر IDE از چارچوب تست و اجرای کد مورد استفاده برای پروژه پشتیبانی می کند، می توانید تست ها را بدون تغییر محیط کاری اجرا کنید. این نیز روند توسعه را سرعت می بخشد. در نهایت، اگر IDE با سیستم ردیابی اشکال و بلیط پروژه سازگار باشد، کار سریعتر پیش می رود. باز هم، می‌توانید از یک سرویس گیرنده مستقل یا وب استفاده کنید، مثلاً JIRA، اما مخالفت با این که بررسی بلیط‌ها بدون تغییر پنجره بسیار سریع‌تر است، در حالی که مستقیماً در IDE باقی می‌ماند، دشوار است.

رایگان یا پولی؟

پس از آزمایش IntelliJ IDEA Ultimate، احساس کردم که محیط توسعه مناسبی دارم. نوعی کادیلاک از دنیای IDE. من به صراحت نمی گویم که IDEA بهترین IDE برای جاوا است، اما برای من این طور است. باز هم، در حالی که رایگان نیست، من فکر می کنم سود حاصل از استفاده از آن ارزش اشتراک سالانه را دارد. برای مبتدیانی که توانایی پرداخت اشتراک سالانه IntelliJ IDEA Ultimate را ندارند، توصیه می کنم به جای Eclipse از NetBeans استفاده کنند. البته، امروزه اکوسیستم پلاگین‌های Eclipse بسیار توسعه‌یافته‌تر از هر IDE دیگری است، اما بسیار بزرگ و نامرتب است: یک توسعه‌دهنده تازه کار خطر گیر کردن در جنگل IDE، جاوا و غوطه‌ور شدن در کار را در پس‌زمینه محو می‌کند. . همچنین گزینه های "سبک وزن" را مورد بررسی قرار داد که دو مورد از آنها به طور خاص برای اهداف آموزشی توسعه یافته بودند. خوب، اگر تازه شروع به یادگیری زبان کرده اید و یک محیط مینیمالیستی را ترجیح می دهید - چرا که نه؟