ما اقتباسی از مقاله ای از مارتین هلر، برنامه نویس و ویراستار منبع JavaWorld را مورد توجه شما قرار می دهیم. احتمالاً قبلاً نام سه IDE برتر برای توسعه جاوا را شنیده اید. 90 درصد برنامه نویسان صنعتی از Eclipse یا NetBeans یا IntelliJ IDEA استفاده می کنند و هر کدام از این IDE ها مزایا و معایب خاص خود را دارند. در این مقاله سعی می کنیم آنها را شرح دهیم تا متوجه شوید کدام یک برای شما مناسب است. اگرچه، البته، بهتر است هر سه را در محل کار امتحان کنید، و دریابید که چه چیزی برای شما بهتر است. هیچ بررسی نمی تواند جایگزین این باشد. من قبلا با این IDE ها کار کرده ام، اما برای این تحقیق، IntelliJ IDEA Ultimate 2016.2، Eclipse Neon Java EE و NetBeans 8.1 Java EE را روی لپ تاپ مک بوک پرو نصب کردم. من IDE را روی چندین پروژه منبع باز جاوا آزمایش کرده ام.
از یک IDE چه انتظاری باید داشت
یک IDE مدرن «توسعهدهنده جاوا سالم» باید از Java 8، Scala، Groovy و همچنین سایر زبانهای ماشین مجازی جاوا که مرتباً از آنها استفاده میکند، پشتیبانی کند. پشتیبانی از سرورهای برنامه اصلی و محبوب ترین چارچوب های وب نیز خوب است، از جمله 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 API پشتیبانی کنید. در نهایت، منطقی است که امیدوار باشیم که IDE به شما امکان ویرایش، ایجاد، اشکال زدایی و آزمایش سیستم ها را بدون استرس غیر ضروری بدهد. در حالت ایده آل، اگر محیط توسعه نه تنها از تکمیل کد هوشمند، بلکه از refactoring هوشمند و معیارهای کد نیز پشتیبانی کند. در بسیاری از موارد، پشتیبانی از چارچوبهای آزمایشی و خرد مفید خواهد بود. اگر تیم شما از سیستم فروش بلیط و CI/CD استفاده می کند، برای اینکه بتوانید به آنها متصل شوید، به IDE نیاز دارید. همچنین، تصمیم بگیرید که آیا نیاز به استقرار و اشکال زدایی در کانتینرها و ابرها دارید یا خیر. ما فقط انتظارات اصلی را فهرست کرده ایم (شاید چیزی برای اضافه کردن داشته باشید)، و اکنون اجازه دهید نگاهی دقیق تر به رقبای خود بیندازیم.ایده IntelliJ
![](https://i1.wp.com/info.javarush.ru/uploads/images/00/08/68/2016/10/06/67eece.png)
![](https://i1.wp.com/info.javarush.ru/uploads/images/00/08/68/2016/10/06/538711.png)
درک عمیق کد
برجسته کردن نحو و تکمیل کد ساده در هر ویرایشگر جاوا مدرن رایج است. IDEA با ارائه «تکمیل خودکار هوشمند» قدمی فراتر برداشته است. این اصطلاح به این معنی است که محیط توسعه فهرستی از مرتبط ترین نمادهای قابل اجرا در یک زمینه مشخص را نشان می دهد. فهرست نمادها نه تنها به زمینه بهعنوان «معمولاً پذیرفتهشده»، بلکه به سبک برنامهنویسی توسعهدهنده بستگی دارد، به اینکه او چند وقت یکبار از اپراتورهای خاص استفاده میکند. "تکمیل زنجیره" لیستی از کاراکترهای قابل اجرا را نشان می دهد که از طریق روش ها یا دریافت کننده ها در زمینه فعلی مجاز هستند. همچنین، در مورد اعضای ثابت یا ثابت، IDEA به طور خودکار هر گونه دستور واردات ضروری را اضافه می کند. در تمام موارد تکمیل خودکار، IDEA سعی میکند نوع کاراکتر را در زمان اجرا حدس بزند، انتخاب خود را اصلاح کند و حتی در صورت لزوم از نوع ریختهگری استفاده کند. کد جاوا اغلب شامل قطعه هایی از زبان های دیگر به عنوان رشته است. IDEA میتواند کدهای SQL، XPath، HTML، CSS یا جاوا اسکریپت را به رشتههای جاوا تزریق کند. از این نظر، IDE میتواند کد را در چندین زبان تغییر دهد. به عنوان مثال، اگر نام یک کلاس را در یک نقشه برداری JPA تغییر دهید، IDEA موجودیت و کلاس عبارت JPA مربوطه را به روز می کند. هنگام بازسازی یک قطعه کد، توسعهدهنده یک تمایل (کاملاً طبیعی) دارد: این که تمام نسخههای تکراری این کد نیز بازسازی شوند. IDEA Ultimate قطعات تکراری و مشابه را پیدا می کند و آنها را نیز بازسازی می کند. IntelliJ IDEA کد را در بارگذاری و مستقیماً بر روی نوع تجزیه می کند. به مشکلات مشکوک اشاره می کند (مانند تصویر ما در بالا) و به صورت اختیاری لیستی از راه حل های سریع احتمالی مشکلات یافت شده را ارائه می دهد.ارگونومی
![](https://i2.wp.com/info.javarush.ru/uploads/images/00/08/68/2016/10/06/56f5e8.png)
ابزارهای داخلی
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 وجود دارد.![](https://i2.wp.com/info.javarush.ru/uploads/images/00/08/68/2016/10/06/4e540f.png)
![](https://i1.wp.com/info.javarush.ru/uploads/images/00/08/68/2016/10/06/240013.png)
پشتیبانی از افزونه
اکوسیستم پلاگین 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 تقریبا همیشه چندین راه برای حل یک مشکل خاص ارائه می دهد. به عنوان مثال، می توانید کد را با استفاده از چشم انداز مرور جاوا مشاهده کنید. اینکه چه چیزی را انتخاب کنیم یک موضوع سلیقه و انتخاب است. جستجوی ویژه جاوا به شما امکان می دهد اعلان ها، مراجع و موارد بسته های جاوا، انواع، روش ها، فیلدها را بیابید. همچنین می توانید از دسترسی سریع برای جستجو و پیش نمایش استفاده کنید. الگوهای کد رایج را می توان از الگوهای کد تولید کرد. بازسازي جاوا در Eclipse از 23 عمليات، از عمليات تغيير نام متداول گرفته تا تغييرات كمتر واضح (مانند كتاب مارتين فاولر) پشتيباني مي كند. Eclipse از اشکال زدایی هم به صورت محلی و هم از راه دور پشتیبانی می کند، مشروط بر اینکه از JVM استفاده کنید که از اشکال زدایی از راه دور پشتیبانی می کند. اشکال زدایی بسیار استاندارد است: شما نقاط شکست را تعریف می کنید و سپس به متغیرها در تب اشکال زدایی نگاه می کنید. البته، می توانید از کد خود عبور کرده و عبارات را ارزیابی کنید. Eclipse دارای پایگاه داده وسیعی از اسناد همه سنین، ارزشها و سودمندی است. افسوس، پیدا کردن تصویری در دستورالعمل ها که با نسخه فعلی مطابقت ندارد، به عنوان مثال، با رابط کاربری قدیمی و طرح بندی دکمه، یک چیز رایج برای این IDE است. متأسفانه، مشکل به روز رسانی دیرهنگام اسناد برای هر پروژه ای با کد منبع بسیار رایج است.![](https://i1.wp.com/info.javarush.ru/uploads/images/00/08/68/2016/10/06/bdd724.png)
![](https://i0.wp.com/info.javarush.ru/uploads/images/00/08/68/2016/10/06/1961da.png)
ویرایش و بازسازی
ویرایشگر 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 است. اشکال زدای Java NetBeans بد نیست، اما با احتیاط هایی همراه است. یک دیباگر بصری جداگانه به برنامه نویس اجازه می دهد تا از رابط کاربری گرافیکی اسکرین شات بگیرد و رابط های برنامه های ساخته شده با JavaFX و Swing را بررسی کند. نمایه ساز NetBeans نحوه استفاده از CPU و حافظه را واضح تر می کند و ابزارهای عالی برای یافتن نشت حافظه دارد.مقایسه سه غول
من از هر سه 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 قبلاً بیش از 2 میلیون بار دانلود شده است. DrJava برای توسعه توسعه مبتنی بر آزمایش (توسعه مبتنی بر تست) طراحی شده است. این محیط شامل یک ویرایشگر کد هوشمند، یک پانل تعاملی برای ارزیابی کد برنامه، یک دیباگر سطح منبع و ابزارهای تست واحد است.
- BlueJ یک محیط توسعه رایگان جاوا است که توسط دانشگاه کنت برای برنامه نویسان مبتدی ایجاد شده است. این محیط توسط اوراکل نگهداری می شود. BlueJ رابط بسیار تمیزتر و ساده تری نسبت به IDE های حرفه ای مانند NetBeans یا Eclipse دارد و حتی شامل یک آموزش اصولی OOP اختصاصی است.
- JCreator یک IDE کوچک جاوا برای ویندوز است که به زبان C++ نوشته شده است (به دلایل عملکرد). نسخه Pro پولی دارای دیباگر، پشتیبانی از مورچه و جادوگران کد است، در حالی که نسخه رایگان (LE) اینگونه نیست.
- Eclipse Che یک IDE ابری مبتنی بر مرورگر است که از Java، C++، JavaScript، Python، PHP، Ruby و SQL پشتیبانی میکند.
انتخاب یک Java IDE بسته به پروژه
من سعی کردم مزایای مهم هر یک از سه IDE مهم جاوا را شرح دهم و به طور خلاصه به رقبای کوچک مفید آنها اشاره کنم. برای انتخاب IDE مناسب، باید مزایا و معایب را بسنجید و آنها را با نیازهای خود و نیازهای پروژه هایتان مقایسه کنید. اگر به تیمی ملحق میشوید، ایده خوبی است که از همان IDE مانند سایر توسعهدهندگان استفاده کنید، اگرچه این کار الزامی نیست. اگر تیم شما در GitHub میزبانی می کند، طبیعتا راحت تر خواهد بود اگر IDE شما از GitHub پشتیبانی کند. بله، شما می توانید بدون IDE با استفاده از سرویس گیرنده GitHub یا خط فرمان git، commit را انجام دهید. اما چنین جهش هایی بین سیستم های مختلف چقدر موثر خواهد بود؟ همچنین مهم است که 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. باز هم، در حالی که رایگان نیست، به نظر من سودهای عملکردی ناشی از استفاده از آن ارزش اشتراک سالانه را دارد. برای مبتدیانی که توانایی پرداخت اشتراک سالانه IntelliJ IDEA Ultimate را ندارند، توصیه می کنم به جای Eclipse از NetBeans استفاده کنند. البته، اکوسیستم پلاگین Eclipse امروزه بسیار بیشتر از هر IDE دیگری توسعه یافته است، اما بسیار رشد یافته و نامرتب است: یک توسعه دهنده مبتدی به جای غوطه ور شدن در کار، خطر گرفتار شدن در طبیعت وحشی IDE را دارد. من همچنین گزینه های "سبک" را لمس کردم، که دو مورد از آنها به طور خاص برای اهداف آموزشی توسعه یافته بودند. خوب، اگر تازه شروع به یادگیری زبان کرده اید و یک محیط مینیمالیستی را ترجیح می دهید - چرا که نه؟تقریباً هر صاحب ابتدایی ترین تلفن همراه با مفهوم پلت فرم جاوا آشنایی دارد. محیط توسعه جاوا شامل ایجاد برنامه های کاربردی جهانی است که می توانند بدون توجه به سیستم عامل نصب شده برای اجرا استفاده شوند. جنبه های اصلی عملکرد و کاربرد آن را در نظر بگیرید.
توسعه جاوا؟
در واقع، محیط توسعه صرفاً یک زبان برنامه نویسی مبتنی بر دستورات عمومی است که توسط Java Runtime شناسایی شده است.
به طور کلی، محیط های توسعه زبان جاوا در یک ویندوز بدون یک پلت فرم اولیه نصب شده کار نخواهند کرد. اما چنین پشتیبانی در ابتدا ارائه می شود که هر کاربری را از نیاز به نصب اجزای اضافی نجات می دهد.
کاربرد در فناوری کامپیوتر
در ابتدا، این پروژه توسط Sun Microsystems Corporation توسعه داده شد که بعداً توسط Oracle پشتیبانی شد.
اما در نهایت محیط توسعه جاوا کاملا مستقل از سیستم های دسکتاپ یا موبایل است.
ماژول های داخلی سیستم های تلفن همراه
هنگام صحبت در مورد تلفن های هوشمند و تبلت ها، همان نسخه جاوا) فقط به استفاده از یک برنامه گرافیکی اشاره دارد که به شما امکان می دهد در چند دقیقه یک برنامه جاوا ایجاد کنید.
در واقع نوعی آدرس دهی یا درخواست در خود اپلیکیشن انجام می شود که عملکردهای آن در سیستم عامل ارائه شده است.
و این برای دستگاه های تلفن همراه صدق می کند. آیا متوجه شده اید که گاهی اوقات، با گذشت زمان، ویندوز فون یا اندروید از نظر ارائه به روز رسانی فوری شروع به "تف" می کنند؟ چیزی جز دو جزء نیست:
- زمان اجرا جاوا
- مایکروسافت دات نت فریم ورک.
غم انگیزترین چیز این است که جزء اول با خطاهای سیستم همراه نیست. این پلتفرم از نظر دستورات به صورت پیش فرض کاملا مستقل و قابل اجرا می باشد.
JAVA IDE: ساده ترین برنامه
این که این سیستم در نسخه های موبایل استفاده می شود، هیچ کس شکی ندارد. محیط توسعه اندروید جاوا پشتیبانی می شود، نه به ذکر محصولات "apple".
با این حال، از نظر برنامه های اجرایی، همه چیز به این سادگی نیست. و به همین دلیل.
اپلت های اجرایی
ابتدا باید فوراً به سیستمی که باید بایگانی مناسب در آن نصب شود توجه کنید (WinRAR - حداقل بهتر - 7-Zip).
محیط توسعه جاوا به این واقعیت اشاره دارد که داده ها به عنوان یک آرشیو ذخیره می شوند که برای باز کردن توسط ابزارهای استاندارد ویندوز در دسترس نیستند.
داده های بایگانی شده
در بهترین حالت، می توانید از استخراج کننده هایی مانند موارد ذکر شده در بالا استفاده کنید. اما اگر از فن آوری های روش فشرده سازی اضافی (حداکثر) در هنگام تشکیل بایگانی استفاده شود، در اینجا هیچ کمکی وجود ندارد.
حتی به روز رسانی بایگانی نیز نمی تواند تغییرات لازم را ایجاد کند. در اینجا باید بهروزرسانی کل پلتفرم را اعمال کنید، اگرچه در ابتدا پیام مربوط به بهروزرسانی موجود در سینی سیستم «آویزان» است.
به روز رسانی پلتفرم
به روز رسانی کاملا ساده ساخته شده است. فقط کافی است در سینی روی نماد چشمک زن کلیک کنید تا بروزرسانی موجود را نصب کنید. شناسایی ممکن است تا چند دقیقه طول بکشد. این خوبه.
اگر نمی خواهید صبر کنید، مشکلی نیست - به منبع رسمی مایکروسافت بروید و برنامه را از آنجا دانلود کنید. آیا این روش را دوست ندارید؟ JDK یا J2SE که پسوند جاوا است را نصب می کنیم و سپس ماژول مورد نظر را از ماژول های انتخاب شده نصب می کنیم و پس از آن فعال سازی به صورت خودکار انجام می شود. در پایان فرآیند، ممکن است لازم باشد سیستم را به طور کامل راه اندازی مجدد کنید.
چرا جاوا به سیستم عامل وابسته نیست؟
همانطور که قبلا ذکر شد، این زبان برنامه نویسی شی گرا است (مشابه C + / C ++، که ویندوز بر روی آن برنامه ریزی شده است).
اما ماهیت آن به گونه ای است که ماشین مجازی جاوا قادر است دستورات برنامه های اجرایی را به بایت کدهای ویژه ای که توسط هر سیستم کامپیوتری بدون توجه به توسعه دهنده آن شناسایی می شود، ترجمه کند. محیط توسعه جاوا به همان اندازه در رایانههای شخصی، در پلتفرمهای اینتل و در Android، Blackberry، iOS و سایر سیستمهای تلفن همراه به خوبی استفاده میشود.
در خود محیط نرم افزار سیستم عامل، یک ماژول داخلی وجود دارد که مسئول اجرای دستورات زبان است. و به هیچ وجه به محیط های خاصی مانند Microsoft .NET Framework یا هر محیط دیگری که فروشندگان سیستم عامل برای عملکرد اپلت های خود توسعه می دهند، نمی پردازد.
دستگاه های موبایل
حتی در مورد تلفن های همراه معمولی بدون سیستم عامل، آنها نیز از این پلت فرم پشتیبانی می کنند. به عنوان یک قاعده، نصب کننده ها دارای پسوندهای JAR یا JAD هستند و حتی بر روی تلفن های اولیه نیز به سادگی نصب می شوند.
در سیستم عاملها، میتوانید از بایگانیهایی مانند WinRAR استفاده کنید که بایگانیهایی مانند فایلهای SFX را بدون مشکل تشخیص میدهند. اگر روی چنین فایلی دابل کلیک کنید، محتویات آن به صورت خودکار استخراج می شود و آرشیو به همراه پلتفرم جاوا در این حالت در پس زمینه کار می کند.
چه می توانم بگویم، زیرا حتی بازی های قدیمی در ساده ترین تلفن ها را می توان به سادگی نصب کرد. اگرچه اعتقاد بر این است که آنها از سیستم عامل های "پیشرفته" استفاده نمی کنند، اما اینطور نیست.
حتی قدیمی ترین مدل های این نوع دارای پلت فرم هستند. تلفن چگونه کار می کند؟ در همان سیستم، همانطور که قبلاً مشخص است، پشتیبانی داخلی نیز وجود دارد که مسئولیت محیط های توسعه جاوا را بر عهده دارد.
در مورد خود دستوراتی که برای ایجاد برنامهها استفاده میشوند، توضیح آنها ممکن است زمان زیادی را ببرد. اما اگر ایده ایجاد یک برنامه مبتنی بر این زبان به وجود آمد، بهتر است یک برنامه تخصصی مانند پلتفرم ارائه شده توسط محیط دلفی نصب کنید.
نتیجه
همانطور که می بینید، محیط توسعه جاوا جهانی است و با هر سیستمی سازگار است. اما خیلی سریعتر از ترجمه دستور بر اساس C++/C++ کار می کند. طبق برخی مطالعات، سرعت کار می تواند 20 تا 30 برابر بیشتر باشد، اگرچه مصرف منابع حافظه در رتبه بالاتری قرار دارد.
اما برای جمع بندی، باید به تطبیق پذیری واقعی محیط توسعه جاوا اشاره کرد. در واقع، با همه سیستم ها سازگار است، که باعث می شود هنگام ایجاد برنامه های چند رسانه ای یا بازی های مشابه، محبوب ترین باشد.
به طور جداگانه، لازم به ذکر است که آخرین نسخه های جاوا مبتنی بر پشتیبانی از ابزارهای برنامه نویسی عمومی است که مبتنی بر فناوری های Eiffel و C# هستند که تفاوت اساسی با ابزارهای C ++ دارند. در اینجا میتوانید از تبدیل خودکار انواع دادههای اسکالر و وارد کردن فیلدهای به اصطلاح استاتیک استفاده کنید، بدون اینکه به امکان ایجاد اسناد همراه با کد منبع اشاره کنیم.
Java SE 6 دارای بسیاری از ویژگی های جدید است که حتی شامل تشخیص تقویم های ژاپنی و بودایی، توانایی ایجاد یک سرور HTTP کامل، جریان کلاسی سریع تر و انتقال داده های فشرده با بهبود عملکرد تا 70 درصد می شود، به غیر از JConsole. داشبورد که از OpenGL و DirectX پشتیبانی می کند.
این عمدتاً برای آداپتورهای گرافیکی اعمال می شود، اگرچه حتی می تواند برای استفاده از دستگاه های صوتی (اغلب موارد مجازی مبتنی بر درایورهای ASIO4ALL) اعمال شود. همین امر در مورد برخی از سینت سایزرهای نرم افزار یا صفحه کلیدهای MIDI نیز صدق می کند. اما استفاده از اپلت های اجرایی جاوا همیشه ارائه نمی شود.
از نویسنده:در بین تمام زبان هایی که در توسعه وب استفاده می شود، جاوا حساس ترین است. این PL با نحو پیچیده، تایپ داده بالا، و ایمنی خطا مشخص می شود. به همین دلیل است که این ابزار برای جاوا - IDE بسیار مورد تقاضا است. محیط توسعه به دور زدن مشکلاتی که در انتظار برنامه نویسی است که در ویرایشگر متن بنویسد کمک می کند. اگر نمیخواهید مسیر طولانی و پر پیچ و خم نوشتن متن را طی کنید، به بررسی بهترین محیطهای توسعه مناسب برای زبان قهوه خوش آمدید.
برای توسعه به یک IDE نیاز دارید
جاوا یکی از آن زبان هایی است که محیط توسعه برای آن هوی و هوس متخصصان فردی نیست، بلکه وسیله ای واقعی برای بقا است. تا زمانی که تمام عناصر سیستم به درستی پیکربندی نشده باشند، نمی توان یک زبان پیچیده را خواند و اجرا کرد. گاهی اوقات برای یک توسعه دهنده وب دشوار است که بفهمد چرا به چنین نرم افزار حجیم و پرباری نیاز دارد. همه زبانهای وب مانند HTML/CSS، جاوا اسکریپت و PHP را میتوان بدون نرمافزار اضافی پیادهسازی کرد (اگرچه حتی یک IDE با هزینه بالا برای دومی وجود دارد - PHPStorm). اما، به محض اینکه به جاوا می رسد، همه چیز سر جای خود قرار می گیرد. اسناد کد طولانی و پیچیده سازماندهی دستی را به چالش می کشند.
اما، مثل همیشه، مخالفان ایدئولوژی هستند. برخی از توسعه دهندگان IDE ها را "عصا" می نامند که فقط برای برنامه نویسان آموزش دیده کمتر مورد نیاز است. برای آنها، دانلود یک محیط توسعه مانند تقلب در اصول است. متأسفانه، این رویکرد می تواند توسعه دهنده را در تکامل برنامه نویسی پشت سر بگذارد: پروژه های بزرگ شرکتی، مانند برنامه های کاربردی وب بسیار کاربردی، به تعامل نزدیک بین اعضای تیم، راه اندازی سریع و اشکال زدایی کد نیاز دارند. همچنین مهارت کار با IDE های اصلی ملاک استخدام در بهترین موقعیت ها می باشد.
البته، کسانی هستند که می توانند ابزارهای توسعه دهنده خود را آنقدر خوب بسازند که یک IDE کامل غیرضروری شود. به هر حال، محیط توسعه منابع دستگاهی را مصرف می کند که برای اطمینان از کار بقیه ابزارهای توسعه دهنده مورد نیاز است. این امر به ویژه در نسخه های قدیمی ویندوز/لینوکس مشهود است - به محض شروع محیط توسعه، بقیه منابع راکد می شوند.
توسعه دهندگان وب تقریبا همیشه ویرایشگرهای متن را ترجیح می دهند. آنها سبک تر هستند و به شما اجازه می دهند تا محلول هایی را روی زانوی خود ایجاد کنید. بدون ابزار اضافی، بدون نیاز به پیکربندی عمیق، و دامنه نرم افزار بسیار گسترده تر است. این دیدگاه توسط برنامه نویسان وب تا زمانی که جاوا را شروع کنند حفظ می شود.
من می خواهم برنامه ای را انتخاب کنم
زمینه برنامه نویسی راه حل های زیادی برای ایجاد کد کامل ارائه می دهد. به ویژه، این امر در محیط های توسعه مختلف صدق می کند. فقط شرکت های بزرگی مانند اوراکل نیستند که IDE می سازند. کار بر روی چنین نرم افزاری، به عنوان یک قاعده، در انحصار متخصصانی است که می خواهند فعالیت های خود را بهینه کنند. این دقیقا همان چیزی است که برای ویژوال استودیو اتفاق افتاد: یکی از بهترین IDE های تمام دوران. مایکروسافت که در صدد معرفی نسخه ای از ویندوز در قرن جدید بود، به سادگی ابزارهای خود را در یک اپلیکیشن ارائه کرد. اکنون VS انتخاب میلیون ها نفر است.
متأسفانه، نمی توانید آن را "برای توسعه دهندگان جاوا" بنامید. نه، این به هیچ وجه به این معنی نیست که نوشتن چیزی در جاوا در این محیط توسعه امکان پذیر نخواهد بود: حتی پسوندهای خاصی نیز وجود دارد. فقط این است که بیشتر روی C، C # و برخی دیگر از محصولات مایکروسافت متمرکز شده است. جاوا IDE برتر خود را دارد که امروز آن را ارائه خواهیم کرد. اما، ابتدا باید بفهمیم که چه نوع IDE ایده آلی را می خواهیم ببینیم (مطابق با).
ابتدا می توانید بلافاصله تصمیم بگیرید که کسانی که به صورت آنلاین کار می کنند برای یک توسعه دهنده جاوا مناسب نیستند. آنها مشکلات تفسیری ایجاد می کنند و ثابت ماندن برنامه فقط باعث دلسردی برنامه نویسی می شود. راه حل هوشمندانه تر این است که یکی از نرم افزارهای ارائه شده امروز را دانلود کنید. بهتر است یک بار روی دانلود کلیک کنید تا اینکه دائماً با باگ مواجه شوید. عصر IDE های ابری هنوز در راه است.
همچنین، محیط توسعه جاوا باید از تعدادی فناوری پشتیبانی کند که برای کدنویسی کارآمد ضروری هستند. از جمله آنها می توان به زبان ماشین مجازی جاوا اشاره کرد: در درجه اول جاوا 10، اما همچنین Groovy و Scala. کنترل نسخه نیز یکی از نکات کلیدی است. Git به تنهایی کافی نخواهد بود: شما به Mercurial، SVN و دیگران نیاز دارید. نمی توان حدس زد که چند سال دیگر کدام یک محبوب خواهد شد (البته Git ☺). یک توسعهدهنده وب از پشتیبانی از طیف گستردهای از زبانها، از جمله پایگاههای اطلاعاتی PL، زبانهای وب، هر دو فرانتاند (TS، JS، HTML) و back-end (یکی از زبانهای همهمنظوره محبوب) بهره میبرد. از آنجایی که یکی از ویژگی های JVM تبدیل کلمات زبان برنامه نویسی به کد بایت است، مفسرهای قدرتمندی نیز مورد نیاز است. این آنها هستند که می توانند جاوا را در تئوری سریع و در عمل سریع کنند.
خب، البته، مانند خود زبان جاوا، محیط توسعه برای آن باید بین پلتفرمی باشد. همه راه حل های دیگر مانع توسعه برنامه نویس می شوند. از آنجایی که جاوا را انتخاب کرد، جهانی بودن را انتخاب کرد.
سه فیل توسعه جاوا
مثل همیشه، یک سه نفر برتر و بقیه وجود دارد. این قبلاً در صنعت توسعه وب استفاده می شود و ما سنت ها را تغییر نخواهیم داد. مزیت بررسی ما این است که هیچ نرم افزار پولی (تقریبا) وجود نخواهد داشت. شما می توانید آزادانه هر محیط توسعه را از وب سایت رسمی دانلود کنید. همچنین، این یکی از آن نمودارهای برتر خواهد بود که در آن ما به طور ذهنی یک برنده را انتخاب می کنیم. خوب، شما می توانید تصمیم خود را بر اساس تجربه و نتیجه گیری ما جمع آوری کنید.
ایده ای برای توسعه وب
IntelliJ IDEA یک IDE است که توسط JetBrains بر اساس ماشین مجازی جاوا منتشر شده است. خود محیط نیز به زبان جاوا و بخشی در پایتون نوشته شده و برای آنها در نظر گرفته شده است. آنها بلافاصله در سال 2001 خود را به عنوان محیط جاوا معرفی کردند. سپس محیط توسعه یک کتابخانه کامل از ابزارهای بازسازی را معرفی کرد که بلافاصله IDEA را به اوج رساند. توسعه دهندگان نه چندان به نفع راحتی، بلکه به نفع بهره وری انتخاب کرده اند. برخی از عملیات روتین به طور کامل توسط محیط توسعه انجام می شود.
ما قول دادیم که امروز نرم افزار پولی وجود نخواهد داشت. اما حقیقت این است که نسخه نهایی IDEA هزینه خاص خود را دارد، هرچند ناچیز (تا 500 دلار)، مانند یک IDE. اگر یک جاویست حرفه ای هستید که از 20 دلار در ساعت درآمد کسب می کنید، این یک چیز بی اهمیت است. به هر حال، تنها در بسته Ultimate توسعه دهنده می تواند با پلت فرم Java EE کار کند.
اما یک نسخه رایگان از IDEA نیز وجود دارد که یک نسخه stripped نیست. بله، برخی از ویژگی ها وجود ندارد، اما پشتیبانی از زبان مشابه نسخه تجاری است. راحت است که اولین خطوط کد خود را روی آن بنویسید و آن را با افزونه ها گسترش دهید.
روندها و رویکردهای مدرن در توسعه وب
الگوریتم رشد سریع را از ابتدا در ساخت وب سایت بیاموزید
IDEA یکی از آن محیط های توسعه است که می توان آن را واقعا هوشمند نامید. IDEA به جای اصلاحات و برجستهسازی، که حتی سادهترین ویرایشگر متن هم دارد، تکمیل خودکار را ارائه میکند: قطعات برنامه تمامشده توسط توسعهدهنده تولید میشوند. حتی قابل ذکر نیست که تمام براکت ها و سایر موارد نحوی به طور خودکار بسته می شوند. و اگر مشکلی پیش بیاید و IDEA نتواند مشکل را حل کند، بلافاصله به توسعه دهنده جاوا در سمت دیگر صفحه سیگنال می دهد.
رشوه و بازسازی، که بلافاصله در چندین زبان رخ می دهد. جاوییست ها می دانند که کد هرگز جاوا خالص نیست، به خصوص وقتی صحبت از توسعه وب می شود. این شامل زبان های پایگاه داده، فرامتن و غیره می شود. در این مرحله، IDEA کاری را انجام می دهد که بسیاری هنوز قادر به انجام آن نیستند: با تجزیه و تحلیل برنامه نوشته شده، IDE زبان ها را از یکدیگر جدا می کند و آنها را جداگانه تجزیه و تحلیل می کند.
این برنامه دارای کلیدهای میانبر به خوبی اجرا شده است که البته باید به آنها عادت کنید. اما، به محض اینکه همه چیز اتفاق می افتد، بهره وری از بین می رود. آنها همچنین می توانند باعث اشکال زدایی کدهایی شوند که در پنجره بعدی رخ می دهد.
محیط توسعه به این دلیل قابل توجه است که به طور مداوم تعداد فناوری های پشتیبانی شده را گسترش می دهد. با این حال، توسعه دهندگان چندان به این به روز رسانی ها وابسته نیستند. در هر زمان می توانند افزونه مناسب را دانلود کنند.
Eclipse IDE
این محیط توسعه نه تنها در بین توسعه دهندگان جاوا، بلکه در بین توسعه دهندگان وب به طور کلی محبوب است. مزیت قابل توجهی نسبت به IDEA قطعاً قیمت خواهد بود - Eclipse کاملاً رایگان است و همچنین افزودنی هایی برای آن. به هر حال، سازندگان محیط توسعه برنامه ای برای رقابت با IDEA نداشتند: آنها می خواستند موفقیت ویژوال استودیو را تحت الشعاع قرار دهند. آنها تا حدودی موفق شدند: برنامه نویسان وب متوسط تقریباً همیشه Eclipse را ترجیح می دهند.
چه چیزی بهتر از IDEA؟ دسترسی رایگان به Java EE. بدون پرداخت اضافی و نصب پلاگین فورا در دسترس است. به هر حال، در مورد آخرین. نصب آنها در Eclipse یک کار مهم است. آنها می توانند با یکدیگر "نزاع" کنند و باعث ایجاد ناراحتی برای توسعه دهنده شوند. اما نکته مثبت تعداد آنهاست. ما به شما توصیه می کنیم که موارد رسمی را انتخاب کنید، زیرا در این روش کمتر احتمال دارد که آنها شروع به درگیری با محیط توسعه کنند.
Eclipse برای شما طراحی شده است تا آن را برای خود شخصی سازی کنید. بنابراین، اولین تجربه با IDE می تواند شما را از استفاده بیشتر دور کند. مورد نادری است که برای یکی از بهترین محیط های توسعه به یک کتابچه راهنمای کاربر نیاز است. خوشبختانه تعداد زیادی از آنها در یوتیوب وجود دارد.
NetBeans
این یک محیط توسعه است که از قلم سازندگان جاوا - Sun Microsystem متولد شده است. آنها می خواستند بهترین راه حل را برای زبان خود ایجاد کنند، بنابراین یک IDE طراحی کردند که نه تنها با ویندوز سازگار است.
در لیست ما، این کراس پلتفرم ترین است. NetBeans را می توان نه تنها بر روی محورهای بالا، بلکه بر روی هر دستگاه دیگری که به JVM مجهز است، اجرا کرد. شما بلافاصله می توانید رویکرد Sun را ببینید: آنها می خواستند زبان آنها روی همه دستگاه ها (از رایانه گرفته تا ماشین لباسشویی) کار کند. طبیعتاً "Beans" محیط توسعه رسمی جاوا نامیده می شد ، اگرچه چندان خوب نیست. امروز، NetBeans توسط Oracle که Sun را تصاحب کرد، در حال کار است.
NetBeans به اندازه IDEA باهوش است و قادر به بازآفرینی هوشمند است. سیستم با این وظیفه بسیار بهتر از Eclipse کنار می آید، اما بدتر از IDEA.
همانطور که از حجم مطالب گفته شده متوجه شدید، IDEA به عنوان بهترین انتخاب خواهد شد. در اینجا لیستی از دلایل وجود دارد:
درک برنامه نویسی هیچ کس به اندازه IDEA در کدنویسی و رفع اشکالات سریع نیست.
بازده بازسازی؛
قیمت بله، Eclipse کاملا رایگان است. اما شما غذای بد را فقط به دلیل ارزان تر بودن آن نمی خرید، درست است؟
این چشم انداز ماست! به هر حال، Oracle یک IDE دیگر به نام JDeveloper در زرادخانه خود دارد - کاملاً برای جاوا طراحی شده است. آن را امتحان کنید و خودتان نتیجه بگیرید. و ما همه چیز داریم!
روندها و رویکردهای مدرن در توسعه وب
الگوریتم رشد سریع را از ابتدا در ساخت وب سایت بیاموزید
برای بیش از یک دهه از تاریخ زبان جاوا، حتی یک نسل از محیط های توسعه یکپارچه (Integrated Development Environment - IDE) تغییر نکرده است. تکامل ابزارهای IDE ناشی از عوامل بسیاری است که مجموع آنها را فناوری اطلاعات مینامند، شامل نرمافزار و قطعات سختافزاری و همچنین توسعه خود زبان که نه تنها در عمق، بهینهسازی برخی از ویژگیها رخ میدهد که به وضوح ورود کتابخانههای Swing جدید به جای کتابخانههای قدیمی را نشان میدهد. AWT، اما همچنین "در وسعت"، این ظهور فناوریهای JSP، ادغام بیشتر با DBMS و سرورهای برنامه، پشتیبانی از فنآوریهای Spring، Hibernate و غیره است.
و اگر اولین ابزار IDE، در درک امروزی، یک ویرایشگر متن اولیه را نشان میداد که فقط برای مجموعهای از کدهای منبع خدمت میکرد، و بقیه کارها، از کامپایل تا مونتاژ نهایی پروژه، باید به صورت دستی انجام میشد، پس از آن، دستگاههای مدرن امروزی در واقع دستگاههای چند منظوره هستند که نه تنها عملکردهای معمول را بر عهده میگیرند، بلکه تعدادی کارکرد اضافی را نیز بر عهده میگیرند، از تولید خودکار Javadoc، بازسازی مجدد، نمایهسازی، طراحی UML، یک کلاینت برای اتصال به هر DBMS و پایان دادن به موارد عجیب و غریبی که به فرآیند توسعه مرتبط نیستند، مانند بررسی املا.
البته، که قیمت برای همه این "راحتی" افزایش نیاز برای منابع کامپیوتر است. این نظر وجود دارد که 80٪ از کاربران تنها 20٪ از قابلیت های نرم افزار موجود استفاده می کنند، این نیز می تواند بر روی ابزارهای IDE پیش بینی شود. از آنجایی که فقط برنامه نویسی که بیش از یک سال در حال توسعه بر روی فناوری مربوطه بوده است می تواند از تمام مزایای آنها قدردانی کند. و ارزیابی کافی این یا آن ابزار برای برنامه نویسان مبتدی دشوار است، بنابراین، به عنوان یک قاعده، انتخاب مستقل آن بر اساس دو معیار اتفاق می افتد - درک بصری رابط و ویژگی های مختلف منابع زمانی، مانند بارگیری، کامپایل، راه اندازی رم اشغال شده در واقع، در ابتدا فقط به یک کامپایلر، یک دیباگر و خود ماشین جاوا نیاز است.
بنابراین، هدف این مقاله بررسی بازار موجود ابزارهای IDE برای توسعه برنامهها با استفاده از زبان جاوا، شناسایی نقاط قوت و ضعف هرکدام با توجه به معیارهای مختلف، بر اساس تحلیل نتایج پروژه است: «آزمایش و تجزیه و تحلیل محیط های توسعه نرم افزار برای جاوا" ("Testing and Analys IDE for Java" (TAIDEJ)) که توسط ما، گروه هماهنگی سایت سازماندهی شد و از تاریخ 01/01/2006 تا 09/01/2006 در سایت انجام شد. www.site.
این پروژه به چند مرحله تقسیم شد. در مرحله اول، یک پرسشنامه، جدول 2، و فهرستی از IDE های جاوا، جدول 3، که از زمان ظهور زبان Java2 تا به امروز توسعه یافته اند، شامل پیوندهایی به هر دو ابزار IDE که همه می شنوند، و نسبتا عجیب و غریب این لیست به لطف اعضای ما به طور دوره ای به روز می شود. در اینجا ما می خواهیم از همه شرکت کنندگان پروژه و همچنین از همه کسانی که در انجمن ها بحث و انتقاد سازنده ای درباره ما کردند، قدردانی کنیم، جدول 1
جدول 1. جاوا - انجمن هاجاوا - انجمن در Sources.Ru | |
RSDN | http://www.rsdn.ru/?forum |
انجمن ها - Juga.Ru | http://forum.juga.ru/ |
انجمن های آرشیو فناوری اطلاعات | http://www.javable.com/forum |
انجمن های جاوا - برنامه نویسی جاوا | http://forum.java.sun.com/ |
انجمن های java.net | http://forums.java.net |
javalobby.org | http://www.javalobby.org/java/forums |
JavaWorld | http://www.javaworld.com/javaforums |
انجمن کامپیوتر Ru.Board | http://forum.ru-board.com |
برنامه نویسی - iXBT Hardware BBS | http://forum.ixbt.com |
انجمن KPI JUG | http://jug.in.ntu-kpi.kiev.ua/forum |
انجمن CIT | http://forum.citforum.ru |
Realcoding.NET | http://forums.realcoding.net |
در تهیه پرسشنامه سعی کردیم موارد زیر را دریابیم:
- تمایل به تغییر ترجیحات برنامه نویسان، زیرا ابزارهای زمانی موفق یا به طور کامل توسعه نمی یابند، یا به دلایلی شرکت هایی که آنها را توسعه می دهند فاصله گرفته اند، و بنابراین بسیاری مجبور شدند از یک ابزار IDE به ابزار دیگر تغییر کنند.
- چگونه برنامه نویس این یا آن وسیله را انتخاب کرد.
- چگونه برنامه نویس ابزارهایی را که با آنها در مقیاس پنج درجه ای کار کرده است ارزیابی می کند.
وظایف بعدی پردازش و تجزیه و تحلیل اطلاعات آماری به دست آمده، ارزیابی "شدت منابع" ابزارهای محبوب بود. علاوه بر این، بررسی برخی از ابزارها تهیه و در وب سایت پروژه قرار گرفت.
جدول 3. فهرست IDE ها برای جاوا.№ | نام | شرکت تولید کننده | صفحه وب محصولات |
1 | طراح اپلت حرفه ای | TV Objects | http://www.tvobjects.com/ |
2 | جذابیت | نرم افزار پیشرفت | http://apptivity.progress.com/ |
3 | Awesume Jawa 1.0 | طراحی تعاملی عالی | http://www.awesume.se/en/index.htm |
4 | بلوت | ابزار رایگان RAD جاوا | http://blue.donga.ac.kr/bluette/ |
5 | بونگو | ماریمبا | http://www.marimba.com/ |
6 | نسخه اینترنتی کلاریون | شرکت سرعت برتر | http://www.topspeed.com/ |
7 | CodeWarrior Pro | متروورکس | http://www.metrowerks.com/desktop/pro/ |
8 | کد Cosmo | SGI | http://www.sgi.com/Products/cosmo/code/index.html |
9 | ED برای ویندوز | نرم همانطور که می شود | http://www.getsoft.com/ed_java.html |
10 | اکسیر | Elixir Technology Pte Ltd | http://www.elixir.com.sg/ |
11 | سازنده رایگان | مجموعه FreeBuilder | http://www.freebuilder.com/ |
12 | فهم | پروژه GRASP | http://www.eng.auburn.edu/grasp/ |
13 | خرد کننده | تبادل پارادایم | http://www.tpex.com/features.htm |
14 | هایپر وایر | کینتیکس | http://www.ktx.com/ |
15 | انیماتور جامبا | بین برگ | http://www.jamba.com/ |
16 | جامبا | بین برگ | http://www.jamba.com/ |
17 | جاوامن | Hartware | http://homepage.dave-world.net/~hartware/ |
18 | جاوا استودیو | سان میکروسیستم | http://www.sun.com/ |
19 | نیزه ها | قدم به جلو | http://www.ozemail.com.au/~stepsoft/ |
20 | جاویز | InfinityEdge Systems | http://www.infinityedge.com/ |
21 | جی بیلدر | حیرت انگیز | http://www.inprise.com/jbuilder/ |
22 | JDesignerPro | ضد گلوله | http://www.bulletproof.com/ |
23 | JDE برای Emacs | پل کینوکان | http://sunsite.auc.dk/jde/ |
24 | جادی سوجال | شاه | http://dan.hcf.jhu.edu/sujal/winjadi/ |
25 | JIG | S Cubed | http://www.scubed.cc/ |
26 | جیپ | خدمات اینترنتی را تصور کنید | http://www.users.globalnet.co.uk/~eis/jipe.htm |
27 | JPad | ModelWorks | http://www.modelworks.com/ |
28 | کالیمانتان | Real Time Enterprises, Inc. | http://www.real-time.com/java/kalimantan/index.html |
29 | کاوا | TEK-TOOLS Inc. | http://www.tek-tools.com/kawa/ |
30 | گدازه | دن پیج | http://www.hnet.demon.co.uk/products/lava/index.html |
31 | لمور | طراحی جزیره | http://www.island-design.co.uk/ |
32 | NetBeans | NetBeans Inc. | http://www.netbeans.com/ |
33 | OEM 1.0 | نرم افزار نوآورانه | http://www.isg.de/OEW/Java/ |
34 | PARTS برای جاوا | ObjectShare | http://www.objectshare.com/p4j/p4j2info.htm |
35 | پاور جی | Sybase | http://www.sybase.com/products/powerj/ |
36 | کباب کن | هوش طبیعی | http://www.roaster.com/roaster/ |
37 | SNiFF+ | پنج نرم افزار را در نظر بگیرید | http://www.takefive.com/sniff/ |
38 | روح | eVisNet Limited | http://www.evis.net/ |
39 | جایگزین کردن | Super Cede, Inc. | http://www.supercede.com/ |
40 | visaj | فناوری نرم افزار امپریال | http://www.ist.co.uk/ |
41 | ویژن جید | نرم افزار ویژن | http://www.visionsoft.com/ |
42 | VisualAge برای جاوا | IBM | http://www.software.ibm.com/ad/vajava/ |
43 | کافه بصری | سیمانتک | http://cafe.symantec.com/ |
44 | ویژوال J++ | مایکروسافت | http://www.microsoft.com/visualj/ |
45 | بستر نرم افزار وب | سیلور استریم | http://www.silverstream.com/products/main/main_f.htm |
46 | Java WebIDE | Chami.com | http://www.chami.com/webide/ |
47 | پاک کردن | softwarebuero m&b | http://www.softwarebuero.de/wipeout-eng.html |
48 | ایده IntelliJ | ایده IntelliJ | http://www.jetbrains.com/idea/ |
49 | کسوف | eclipse.org | http://www.eclipse.org |
50 | JDeveloper | اوراکل | http://www.oracle.com/technology/products/jdev/index.html |
51 | JCreator | نرم افزار Xinox | http://www.jcreator.com/ |
52 | jEdit | jEdit | http://www.jedit.org/ |
53 | توسعه X | نرم افزار Omnicore | http://www.omnicore.com/ |
54 | ژل IDE | GExperts Inc. | http://www.gexperts.com/ |
55 | توسعه دهنده برنامه IBM Web Sphere Studio | نرم افزار آی بی ام | http://www-306.ibm.com/software/awdtools/studioappdev/ |
56 | توسعه دادن، گسترش | رمان | http://www.novell.com/products/extend/ |
در مرحله اول، روش توزیع، به ترتیب، IDE را می توان به پولی (JBuilder، Visual Cafe ...) و رایگان (NetBeans، Eclipse، Gel) تقسیم کرد که هر کسی می تواند از وب سایت سازنده دانلود کند.
ما تصمیم گرفتیم ویژگی طبقه بندی دوم را نه بر اساس برخی از قابلیت های خاص جدا کنیم، زیرا، طبق این ویژگی، احتمالاً می توان IDE را به بی نهایت تقسیم کرد، بلکه از مجموع قابلیت های خود ابزار، و تقاضاهای آن در مورد منابع البته، در این مورد، حضور یک سازنده رابط بصری حرف اول را می زند که به نوبه خود الزامات خاصی را برای منابع مطرح می کند.
با این معیار، می توانید ابزارهایی را انتخاب کنید که ابزار بصری برای توسعه رابط کاربری گرافیکی (ساده) ندارند، به عنوان مثال Gel، JCreator، و دارای (پیچیده) - JBuilder، Idea.
بر این اساس، رم اول در حین کار کمتر از 30 مگابایت و دومی بیش از 100 مگابایت را اشغال می کند. در مورد خود ابزارهای توسعه بصری، به تجربه من و به نظر بسیاری از برنامه نویسان با تجربه چندین ساله، استفاده از آنها برای برنامه نویسان مبتدی همیشه قابل توجیه نیست، اگرچه به نظر می رسد از یک طرف توسعه را تسهیل می کند، اما از طرف دیگر. درک مفهومی چنین چیزهای اساسی را دشوار می کند. کتابخانه های نوسان مانند مدیران طرح، مدیریت رویداد و غیره.
همچنین، گروهی از دانشجویان DSTU در این پروژه شرکت داشتند (به ویژه می خواهم به Yegorenkov V. و Lagutin D. اشاره کنم)، که به تازگی شروع به مطالعه OOP کرده بودند، که وظایف آنها آشنایی با IDE برای جاوا، نصب آنها بود. ، پارامترها را در هنگام بارگذاری اصلاح کنید، نظرات آنها را صادر کنید و در نهایت انتخاب مستقل وسیله برای کار اولیه. نتایج آزمون در جدول 4 خلاصه شده است.
جدول 4. نتایج آزمایش ابزارهای IDEمولفه های | GeI | JScreator 3.5 | جی بیلدر ایکس | ایده 5 | NetBeans 4.1 |
زمان نصب | 1 ثانیه | 1-1.5 ثانیه | 58 ثانیه | 22 ثانیه | 50 ثانیه |
اندازه بسته نصب شده | 10.3 مگابایت | 6.49 مگابایت | 332 مگابایت | 157 مگابایت | 118 مگابایت |
اندازه توزیع | 4.21 مگابایت | 3.6 مگابایت | 178 مگابایت | 51.6 مگابایت | 46.4 مگابایت |
راه اندازی | 5 ثانیه | 1-1.5 ثانیه | 9 ثانیه | 6 ثانیه | 6 ثانیه |
فضای اشغال شده در رم | 17828 کیلوبایت | 12960 کیلوبایت | 74128 کیلوبایت | 65604 کیلوبایت | 61409 کیلوبایت |
میزان استفاده از حافظه مجازی | 9020 کیلوبایت | 14960 کیلوبایت | 78588 کیلوبایت | 76416 کیلوبایت | 70406 کیلوبایت |
* دستگاهی مبتنی بر: CPU Athlon64 3000+؛ RAM - 1024 مگابایت DDR-SDRAM (pc3200)
پس از آن، سمیناری برگزار شد که در آن نتایج کار جمع بندی شد، در نتیجه مشخص شد که در مرحله اولیه کار، زمانی که فرآیند مطالعه ویژگی های نحوی زبان انجام می شود، نیازی نیست. برای استفاده از ویژگی هایی که IDE های پیچیده نشان می دهند، اگرچه، البته، بسیاری از مردم به راه هایی برای توسعه سریع یک رابط علاقه مند هستند، زیرا این ویژگی بصری ترین است و بلافاصله به شما امکان می دهد به نتیجه برسید. اما، همانطور که می دانید، توسعه رابط یک بخش جدایی ناپذیر است، اما مهم ترین بخش برنامه نیست. و افزایش نیاز به منابع از طرف IDE های پیچیده، به ویژه با توجه به اینکه همه دانش آموزان کامپیوترهای خانگی حتی با 512 مگابایت رم ندارند، مزایای غیرقابل انکاری را به IDE های ساده می دهد، بنابراین ژل به عنوان رهبر در بین دانش آموزان از همه IDE های موجود شناخته شد.
№ | نام | درصد آرا | مقطع تحصیلی |
1 | جی بیلدر | 21.47 | 3.0 |
2 | کسوف | 16.64 | 3.3 |
3 | NetBeans | 14.22 | 2.9 |
4 | ایده IntelliJ | 11.66 | 3.5 |
5 | JDeveloper | 7.11 | 2.8 |
6 | ویژوال J++ | 5.26 | 1.8 |
7 | JCreator | 4.26 | 2.3 |
8 | VisualAge برای جاوا | 3.69 | 2.8 |
9 | جاوا استودیو | 3.41 | 2.0 |
بر این اساس، ما تجزیه و تحلیل خواهیم کرد که برنامه نویس از چه موقعیتی به انتخاب مستقل ابزار نزدیک می شود.
- رابط. این اولین مؤلفه ای است که کاربر پس از نصب با آن مواجه می شود و اولین برداشت از برنامه را تشکیل می دهد و بر اساس آن می توان انتخاب نهایی را انجام داد. در اینجا، نه تنها طراحی کلی ارزیابی می شود، اگرچه، البته، به نوعی نیز تأثیر می گذارد، بلکه بر راحتی ترتیب و پیکربندی اجزایی مانند پنجره کد منبع، پنجره پروژه و غیره نیز تأثیر می گذارد.
- تنظیمات. بر این اساس، پس از نصب و اولین راه اندازی محیط توسعه، پیکربندی آن انجام می شود، یعنی. مسیرهایی که SDK، DOCS، J2EE نصب شده در آن قرار دارند نشان داده شده است. در این جزء، به عنوان یک قاعده، تفاوت قابل توجهی مشاهده نمی شود. علاوه بر این، ابزارهای مدرن، به عنوان یک قاعده، به طور مستقل اجزای نصب شده را تعیین می کنند.
- ویرایشگر کد. تنظیم نمایش کدهای منبع، به عنوان یک قاعده، از نظر تنوع نیز متفاوت نیست، در هر ابزاری می توانید به راحتی اندازه و اندازه قلم و همچنین رنگ را تنظیم کنید. یک مزیت مهم وجود یک دستیار زمانی است که هنگامی که ماوس روی هر متغیر یا روشی "یخ می زند"، یک ToolTip نسبتاً دقیق (پنجره زمینه) ظاهر می شود که در آن تمام پارامترهای شی گسترش می یابد. همچنین چیزهای کوچک دلپذیر زیادی وجود دارد، خروجی شماره گذاری خطوط، نمایش ساختار کلاس، نمایش نمادهای پاراگراف، بررسی املا.
با تجزیه و تحلیل، با توجه به این ویژگی ها، تمام ابزارهای IDE موجود در حال حاضر، می توانید ببینید که هیچ تفاوت قابل توجهی بین آنها وجود ندارد، به جز طراحی رابط، و بدیهی است که مفهوم راحتی ذهنی است.
تجزیه و تحلیل نتایج نظرسنجی، جداول 5.6. همانطور که در بالا توضیح داده شد، در نظرسنجی ما، وجوه به دو گروه تقسیم شدند، آنهایی که قبلا استفاده می شدند و آنهایی که در حال حاضر استفاده می شوند. و اگر در بین ابزارهایی که در گذشته استفاده می شد تنوع وجود داشته باشد، ما ابزاری را انتخاب کردیم که بیش از 3 درصد از تعداد کل افراد شرکت کننده در نظرسنجی را به خود اختصاص داده است، در این صورت از بین ابزارهایی که در حال حاضر استفاده می شود هیچ موردی وجود ندارد. چنین تنوعی و ما مجبور شدیم درصد آرا را کاهش دهیم و با وجود این تنوع چندانی دریافت نکردند.
همانطور که می بینید ، ابزار "ساده" IDE JСreator یک شرکت کننده ثابت در انتخاب ها است ، ظاهراً به این دلیل است که یادگیری آن بسیار آسان است و نیازی به منابع ندارد ، بنابراین در بین برنامه نویسان تازه کار محبوب است. ظاهراً به این دلیل که ابزارهای رایگانی مانند Eclipse و NetBeans از آن بهتر عمل می کنند، JBuilder از بین رفته است. Eclipse باید به عنوان رهبر بلامنازع شناخته شود، زیرا موقعیت های نسبتاً بالای خود را از دست نداده است، بلکه حتی اضافه شده است. محبوبیت JDeveloper را باید به دلیل تمرکز آن بر پایگاه داده Oracle نسبت داد. محبوبیت IntelliJ IDEA به این دلیل است که توسعه دهندگان در یک برهه زمانی خاص موفق به ارائه محصولی با ویژگی های قدرتمند شدند و چندین سال است که با موفقیت برند آن را در سطح بالایی حفظ کرده اند که این موضوع نیز تایید می شود. با امتیاز بالای کاربران
به طور کلی، باید توجه داشت که نتایج رتبهبندی قابل پیشبینی بود، سؤال فقط مربوط به توزیع مکانها بود و شگفتی نویسندگان این بود که NetBeans درصد نسبتاً کمی از آرا را به دست آورد، به خصوص با توجه به قابلیتهای آخرین نسخه. .
تجزیه و تحلیل دلایل انتخاب یک ابزار IDE نشان داد که انتخاب ابزارهای نسل اول معمولاً به صورت تصادفی یا بر اساس نتایج تجزیه و تحلیل مستقل انجام می شود ، که طبیعی است ، زیرا در آن زمان روند شکل گیری هر دو زبان خود و ابزارهای توسعه در حال انجام بود. وجوه نسل دوم عمدتاً در نتیجه تجزیه و تحلیل مستقل یا توصیه یک دوست انتخاب شد. ظاهراً این به این دلیل است که در آن زمان هم حلقه برنامه نویسان حرفه ای جاوا و هم بازار توسعه دهندگان اصلی ابزارهای IDE شکل گرفته بود.
جدول 7. دلایل انتخاب یک IDEبنابراین، امروزه رهبران ابزارهای توسعه Java IDE IntelliJ IDEA، Eclipse و NetBeans هستند. به طور کلی، همه آنها تقریباً عملکرد یکسانی دارند و ارزیابی اینکه کدام یک بهترین است بسیار دشوار است. بنابراین، هنگام انتخاب یک ابزار، بدیهی است که اگر برنامه نویس به تیم توسعه ملحق شود، باید بر روی IDE که پروژه در آن توسعه می یابد تمرکز کنید، یا اگر قصد دارید یک پروژه مستقل را توسعه دهید، در دسترس ترین را انتخاب کنید.
فهرست منابع استفاده شده
- ژمایلوف بی.بی. مزایا و معایب توسعه برنامه های جاوا بدون استفاده از ابزارهای IDE. مجله "بولتن کامپیوتر و فناوری اطلاعات" شماره 6، 1385
- ، سرگئی برداچوک، "Oracle JDeveloper 10g - Java Development Environment"
- ، الکسی لیتونیوک، "مقدمه ای بر محیط توسعه یکپارچه Eclipse"
- ، الکساندر دمیاننکو، "مروری مختصر از IDE - Jbuilder"
- ، الکساندر دمیاننکو، "مروری کوتاه از IDE - ایده"
- بوریس ژمایلوف، "مروری از IDE - Gel"
- ، مروری بر ابزارهای بازسازی خودکار در Java IDE
تقریباً تمام کتاب ها و آموزش های جاوا برای مبتدیان با توضیح OOP شروع می شود: چقدر عالی است و چقدر عالی است. واضح است، از آنجایی که هر برنامه نویسی دیگری در جاوا غیرممکن است، به جز برنامه نویسی شی گرا، در ابتدا پیشنهاد می شود 40..80 صفحه قیاس های دیوانه کننده با سلسله مراتب گربه ها / سگ ها / اردک ها / ماشین ها و فقط پس از آن پیشنهاد می شود "سلام، جهان!" بنویسید. :-)
در عین حال، شایان ذکر است که کاملاً تمام آموزش های جاوا بر اساس ابتدایی ترین خروجی نتیجه به کنسول است. این نیست برنامه کنسولبه معنای معمول، یعنی خروجی برخی از داده ها خط به خط. خوب، برای مثال، Turbo Pascal 3.0 در سال 1985 منتشر شد و قبلاً از حالت های گرافیکی پشتیبانی می کرد. در سال 1990، Turbo Vision ظاهر شد - یک چیز بسیار جالب - یک ویندوز فقط برای DOS. و در جاوا در سال 2018 فقط خروجی به کنسول امکان پذیر است. و اکنون این همه شور و شوق و خونسردی در مرحله "سلام، جهان!" همان خروجی خط به خط وجود دارد.
اما، جالب ترین چیز این است که در جاوا می توانید برنامه هایی را با استفاده از برنامه نویسی بصری ایجاد کنید! من فقط زمانی متوجه این موضوع شدم که یک کتاب 500 صفحه ای را خواندم (یا بهتر است بگوییم با آن آشنا شدم، جایی که در یکی از فصل های آخر، ناگهان مشخص شد که رابط های گرافیکی (واسط کاربری گرافیکی) معمولی برای جاوا وجود دارد و می توانید طراحی کنید. برنامه های دارای دکمه ها، فیلدهای ورودی و منوهای معمولی. سوال این است: چرا وقت زیادی را صرف این کنسول کثیف کردید در حالی که می توانستید همه چیز را یکباره زیبا و مرتب انجام دهید؟
پس از گذراندن چندین روز برای مطالعه این موضوع، به چند نکته خنده دار پی بردم.
اولین- سه نوع رابط کاربری گرافیکی برای جاوا (کتابخانه ها) وجود دارد: A.W.T., تاب خوردن(چه کسی این اسامی را مطرح می کند؟) و JavaFX.
امروز (جاوا 8 و 9) همه آنها در بسته JDK گنجانده شده اند: یعنی همه چیز خارج از جعبه کار می کند و نیازی به نصب آنها ندارید. این یک امتیاز بزرگ است.
اما، AWT اولین و بسیار قدیمی پیاده سازی است، بنابراین شما نیازی به استفاده از آن ندارید. به طور کلی - نه کوشر. Swing نیز کوشر نیست، زیرا چیزی در آنجا اشتباه است و برنامه ها به دلیل آن بسیار کند هستند. دقیق تر نمی گویم، متوجه نشدم، اما به نظر می رسد که دیگر به طور رسمی چندین نسخه را توسعه نمی دهد. اما JavaFX سر و صدا و آینده روشن ما است.
چنین افتضاح دیگری وجود دارد - اپلت های جاوا، آنهایی که در مرورگر کار می کنند و در عین حال آن را محکم "آویزان" می کنند، درست مانند فلش، فقط بدتر. خوشبختانه این / این چیز / چیزها دیگر عملاً استفاده نمی شوند ، بنابراین وقت گذاشتن برای مطالعه آنها بی معنی است.
بنابراین تنها چیزی که ارزش وقت گذاشتن را دارد JavaFX است.
لحظه دوم. آنقدر ها هم ساده نیست. دلفی (یا ویژوال استودیو، لازاروس، هر چیزی) را در نظر بگیرید. حتی برای یک مبتدی سبز، ایجاد یک برنامه ساده (یک دکمه و یک فیلد متنی برای خروجی) به این صورت خواهد بود:
- دلفی را شروع کنید.
- یک پروژه جدید با فرم اصلی به طور خودکار ایجاد می شود.
- دکمه ای را در پالت مؤلفه انتخاب کنید و آن را روی فرم قرار دهید. همه چیز بصری است
- به طور مشابه، یک فیلد متنی روی فرم می اندازیم.
- در صورت لزوم، در پانل خواص، می توانید متن دکمه، ابعاد و غیره را مشخص کنید.
- اجرا - دلفی پیشنهاد ذخیره، ذخیره را ارائه می دهد.
یعنی ما یک خط کد ننوشتیم، IDE همه کارها را خودش انجام داد. اگر به کد تولید شده نگاه کنید، نمی توانید آن را ساده بنامید - برخی از دانش ها در اینجا مورد نیاز است، اما دلفی به اندازه کافی هوشمند است که نحوه کار با آن را درک کند.
اگر بخواهیم عملی را اضافه کنیم، مثلاً هنگام کلیک کردن روی یک دکمه، قسمت متن را با عبارت "سلام!" پر کنید، سپس این کار را انجام می دهیم:
- روی دکمه دوبار کلیک کنید (یا رویداد onClick را انتخاب کنید).
- دلفی کد کنترل کننده این رویداد را ایجاد می کند و ما را به ویرایشگر می اندازد.
- ما نام فیلد متنی را تایپ می کنیم و دلفی نکاتی را ارائه می دهد که می توانید در مورد آنچه و چگونه انجام دهید پیمایش کنید.
بنابراین دوباره، IDE تمام کارهای سخت را انجام داده است.
اما در زبان های دیگر است، جاوا راه خود را می رود. برای ایجاد یک دکمه در JavaFX، باید به صورت دستی یک Stage ایجاد کنید - "صحنه تئاتر" (نام کاملاً جدی است!) و روی آنهامحل صحنه (صحنه). به آن ظرفی است که عناصر دیگر قبلاً در آن تعبیه شده است.
این فرض بر این است که هر عنصر و هر یک از ویژگی های آن باید به صورت جداگانه برنامه ریزی شوند. در اینجا یک مثال برای دو دکمه و یک برچسب از کتاب آموزشی من آورده شده است
Response = new Label("Push a Button"); دکمه btnUp = دکمه جدید ("بالا"); دکمه btnDown = دکمه جدید ("پایین"); btnUp.setOnAction(EventHandler جدید
وقتی حدود دوازده دکمه، به اضافه 20 آیتم منو، به اضافه 30 جزء دیگر وجود داشته باشد، کد کوچک به نظر نمی رسد. و این بدون کد است که مسئول خواص اضافی مانند تراز، اندازه، فونت ... و این است دومیننشان می دهد که آموزش های JavaFX نحوه نوشتن "کد fx" با قلم را نشان می دهد. دلتنگی در یک کلام...
اما، در اینجا کمک می کند تفاوت ظریف سوم. به نظر می رسد که افراد باهوش (ظاهراً با IDE های کامل آشنا هستند) نوع متفاوتی از برنامه ها را توسعه داده اند که در آن یک فایل xml توصیفی به نام fxml، و برنامه هایی از این دست به صورت " برنامه های کاربردی FXML JavaFX»
برای من کاملاً تعجب آور است که یادگیری جاوا فقط با چنین برنامه هایی شروع نمی شود. با وجود اینکه دلفی نیست، اما هنوز یک میلیون میلیون بار بهتر از کار کردن با کنسول و پر کردن سرتان با آشغال های دیگر است که چرا باید از صد خط با OOP استفاده کنید، جایی که در زبان های دیگر این کار به یک روش ساده نیاز دارد. ;-)
حالا جدی اگر هرگز در جاوا برنامه نویسی نکرده اید، می توانید همین الان آن را امتحان کنید. در واقع بسیار جالب است، اگرچه کمی زمان می برد تا به برنامه ها عادت کنید. اگر تجربه ای با "IDE های بصری" دارید، حتی بهتر است - با افراد زیادی که می شناسید ملاقات کنید.
JDK
جاوا باید بر روی کامپیوتر نصب شده باشد. من پیوندهایی در مورد نحوه انجام این کار ارائه نمی دهم - Google کمک خواهد کرد، زیرا همه چیز بسیار ساده است.
IDE
در جاوا، هیچ برنامه ای وجود ندارد - محیط توسعه، بنابراین نمونه هایی از برنامه های مختلف در وب وجود دارد. ابتداییترین آنها مانند Notepad++ فقط برای خروجی کنسول مناسب هستند، اما اگر چیز جدیتری را در نظر بگیریم، تنها سه نامزد برجسته هستند: NetBeans، Eclipse و IntelliJ IDEA.
NetBeans- ساده ترین برنامه ای که به سرعت (نسبت به بقیه) شروع می شود و به خوبی کار می کند.
کسوف- همچنین یک گزینه خوب، قدرتمندتر از NetBeans، اما ضعیف تر از IntelliJ IDEA.
ایده IntelliJ- جالب ترین به نظر می رسد، اما باید با سرعت کار هزینه آن را بپردازید. شایان ذکر است که اندروید استودیو مبتنی بر IntelliJ IDEA است، اما به دلایلی استودیو بسیار کندتر است.
یک نکته مهم مربوط به برنامه نویسی برای اندروید است. از این سه IDE فقط IntelliJ IDEA کم و بیش برای این کار مناسب است. مطالب زیادی در وب در مورد برنامه نویسی برای اندروید در Eclipse وجود دارد، اما همه آنها قدیمی هستند - وقت خود را برای اجرای یک پلاگین قدیمی ADT و تلاش برای انجام هر کاری با آن تلف نکنید. شاید Android SDK قدیمی کار کند، اما همه موارد جدید کار نمی کنند.
من به شما نشان خواهم داد که چگونه یک برنامه کاربردی FXML JavaFX را در هر سه برنامه بسازید، اما قبل از شروع، باید یک برنامه دیگر را نصب کنید: SceneBuilder (از نسخه جاوا 8 استفاده کنید). این برنامه کلیدی است که در واقع تمام ساخت و سازهای بصری در آن انجام می شود. صحنه سازمی تواند به تنهایی بدون IDE کار کند، بنابراین می توانید آن را اجرا کنید و ببینید چگونه کار می کند. خروجی یک فایل fxml خواهد بود که شامل تمام نشانه گذاری های لازم است. این فایل به جای نوشتن یک مگاتون کد در IDE استفاده می شود. :-)
TK
برنامه ای که ایجاد می کنید بسیار ساده خواهد بود - یک دکمه و یک فیلد متنی. وقتی روی دکمه کلیک می کنید، اجازه دهید متن "Hello!" به قسمت متن اضافه شود.
در هر برنامه، باید تنظیمات مورد استفاده توسط JDK را از قبل ثبت کنید. اگر نمی توانید بفهمید که چگونه این کار را انجام دهید، آن را در گوگل جستجو کنید.
NetBeans
قبل از شروع کار، باید SceneBuilder را متصل کنید: Service - Options - Java - JavaFX - Scene Builder Start Page. یک فهرست برنامه را انتخاب کنید. تنظیم فقط یک بار باید انجام شود. این برای همه IDE ها صدق می کند.
یک پروژه جدید ایجاد کنید، جایی که باید "FXML JavaFX Application" را انتخاب کنید.
ما روی "Finish" کلیک می کنیم و پس از مدتی کار توسط NetBeans، فایل های تمام شده را می بینیم:
- Myfx.java- این فایل اصلی است که در واقع کل برنامه را راه اندازی می کند.
- FXMLDocumentController.java- این "کنترل کننده" است، جایی که برنامه نویسی به طور عمده انجام می شود.
- FXMLDocument.fxml- این فایل قسمت بصری را ذخیره می کند.
حالا برنامه را اجرا کنید. ابتدا اسمبلی و کامپایل انجام می شود (بسیار سریع) و پس از آن پنجره برنامه ما ظاهر می شود.
این جالب است، زیرا ما حتی یک خط کد ننوشته ایم، اما در حال حاضر یک برنامه با یک دکمه کار داریم. :-)
اگر مسیر SceneBuilder را به درستی مشخص کرده اید، می توانید آیتم منو را انتخاب کنید "باز کن"در پرونده FXMLDocument.fxml. اگر دوبار کلیک کنید همین اتفاق می افتد. SceneBuilder باز خواهد شد. اگر موردی وجود ندارد، پس مسیر درست نیست، تنظیمات را بررسی کنید.
اصل کار در SceneBuilder برای همه IDE ها یکسان است، بنابراین در حال حاضر فقط نکات کلی را توضیح می دهم، سپس خودتان متوجه خواهید شد.
شایان ذکر است که پس از ویرایش فایل، نیازی به بستن SceneBuilder نیست. شما فقط باید (Ctrl + S) را ذخیره کنید و به IDE تغییر دهید - تغییرات را خود انتخاب می کند.
پنجره SceneBuilder به سه بخش تقسیم می شود:
- در سمت چپ - مجموعه ای از مؤلفه ها، سلسله مراتب و کنترلر، که در آن کلاس اصلی نشان داده شده است (این مهم است!)
- در مرکز خود فرم قرار دارد، جایی که ساخت بصری در آن صورت می گیرد.
- در سمت راست - ویژگی های اجزاء به سه زبانه تقسیم شده است (این یک تقسیم مشروط است). تب Code مسئول مواردی است که در فایل جاوا استفاده می شود.
ساخت برنامه های FX باید با یک کانتینر شروع شود. در این مثال از NetBeans استفاده شده است AnchorPane. بسیار راحت است و به شما امکان می دهد تورفتگی های "صحیح" را برای عناصر تودرتو تنظیم کنید. برگه ظروفحاوی ظروف دیگری است که می توانید به تنهایی با آنها تمرین کنید (من خودم حتی به نیمی از آن تسلط ندارم :-)).
سلسله مراتب اجزاء یک چیز بسیار مفید است که به شما امکان می دهد عنصر مورد نظر را به سرعت انتخاب کنید.
طبق شرایط مرجع باید یک فیلد متنی داشته باشیم. NetBeans از Label استفاده می کند، اما ما چیزی را حذف نمی کنیم، فقط یک عنصر جدید اضافه می کنیم TextFieldروی فرم (خودسرانه به سلیقه شما).
پیش نمایش در SceneBuilder (Ctrl+P) امکان پذیر است. در این حالت فقط فرم و تمامی عناصر "بدون برنامه نویسی جاوا" نمایش داده می شود.
حالا یک نکته مهم: برای اینکه بتوان از کامپوننت در برنامه جاوا (در کد ما) استفاده کرد، دو کار باید انجام شود.
اولین مورد این است که بررسی کنید که کنترلر صحیح مشخص شده است. در مورد ما، NetBeans قبلاً همه کارها را خودش انجام داده و myfx.FXMLDocumentController را مشخص کرده است.
همانطور که می بینید، این کنترل کننده از فایل است FXMLDocumentController.java(package.controller). IDE همیشه آن را مشخص نمی کند، اما مهم است زیرا فایل fxml (به طور دقیق تر، کد جاوا) از آن برای اتصال استفاده می کند.
نکته دوم - کامپوننت مورد استفاده باید شناسه خود را داشته باشد - این پارامتر fx:id است. در اینجا اشاره کرده ام textField1.
یک مثلث زرد در بالای پیام ظاهر می شود که ظاهراً هیچ پیوندی بین این شناسه و کنترلر وجود ندارد. فعلاً او را نادیده بگیرید، بعداً در مورد آن صحبت خواهیم کرد.
دکمه ای که فیلد متنی را پر می کند باید شناسه مخصوص به خود و همچنین یک روش رویداد onAction داشته باشد (این رویداد جزء اصلی است، نه onClick، مانند دلفی). NetBeans قبلاً به این موضوع رسیدگی کرده است، بنابراین ما مجبور نیستیم چیزی بنویسیم.
در این ساخت و ساز بصری را می توان تکمیل کرد. ذخیره کنید و به NetBeans تغییر دهید. می بینیم که فایل FXMLDocument.fxmlتغییر کرد: اضافه شد textField1:
حال باید به نحوی از فیلد متنی در کد جاوا استفاده کنیم. برخلاف دلفی، NetBeans هیچ کدی برای این کار ایجاد نمی کند، بنابراین باید آن را به صورت «نیمه دستی» اضافه کنیم. برای انجام این کار، IDE های مختلف از روش های متفاوتی استفاده می کنند، اما اصل کلی این است که باید مکان نما را روی فیلد مورد نظر در ویرایشگر قرار دهید و کارهایی انجام دهید. "عمل". در NetBeans به آن می گویند کنترلر را نصب کنیددر منو منبع. (بله، جاوا مشکلات بزرگی در نامگذاری دارد...)
پس از اجرای این دستور به داخل فایل می رود FXMLDocumentController.java، جایی که اعلان متغیر به کد اضافه می شود textField1:
به "@FXML" توجه کنید - این حاشیه نشان می دهد که کد به نحوی در FXML استفاده می شود. پس از این تغییرات، SceneBuilder دیگر هشداری مانند مثلث زرد قبلی صادر نمی کند. اگر دوباره SceneBuilder را اجرا کنید، می توانید این را بررسی کنید.
برنامه را برای اجرا برای تست شروع می کنیم. حالا وظیفه ما این است که با کلیک بر روی دکمه، قسمت متن را پر کنیم. همانطور که قبلاً روش را فهمیده اید handleButtonActionفقط انجام کار درست در آن اضافه می کنیم:
TextField1.setText("سلام!");
به نحوه عملکرد آن توجه کنید تکمیل کدپس از فشار دادن نقطه
همانطور که شما تایپ می کنید، NetBeans ناحیه پیشنهاداتی را که می توانید از آن انتخاب کنید، محدود می کند. این ویژگی زندگی را برای برنامه نویسان بسیار آسان می کند، زیرا گزینه های بسیار زیادی وجود دارد و این به شما امکان می دهد از انواع مختلف خطاهای نحوی هنگام تایپ جلوگیری کنید.
این ویژگی در همه IDE ها وجود دارد، اگرچه تفاوت هایی در پیاده سازی و استفاده وجود دارد.
ما برنامه را اجرا می کنیم و می بینیم که همه چیز همانطور که باید کار می کند.
ما مجبور شدیم فقط یک خط کد بنویسیم، خوب، و چند عمل اضافی را در ویرایشگر انجام دهیم.
کسوف
شروع Eclipse کمی بیشتر از NetBeans طول می کشد. ابتدا باید مسیر SceneBuilder را مشخص کنید. این کار در پنجره - تنظیمات - JavaFX.
همچنین به این واقعیت توجه کنید که Eclipse یک برنامه غیر روسی است (من حتی نمی دانم که آیا Russifier برای آن وجود دارد یا خیر).
یک پروژه جدید ایجاد کنید و JavaFX را انتخاب کنید.
کلیک بعدو وارد صفحه تنظیمات شوید. در اینجا من مانند قبل نام پروژه را ذکر کردم myfx(من دایرکتوری های پروژه متفاوتی برای IDE های مختلف دارم، بنابراین با هم همپوشانی ندارند).
در اینجا باید نوع برنامه، نوع کانتینر و نام کنترلر را انتخاب کنید. کلیک پایانو Eclipse به سرعت اسکلت برنامه آینده ما را ایجاد می کند.
همه چیز در اینجا بسیار شبیه است، فقط یک فایل دیگر اضافه شده است application.css- بله، بله، در JavaFX می توانید از CSS برای شخصی سازی ظاهر استفاده کنید! Eclipse بلافاصله یک کد اتصال برای این فایل ایجاد کرد.
برنامه را اجرا کنید و مطمئن شوید که هیچ خطایی وجود ندارد.
برخلاف NetBeans، این یک فرم کاملاً خالی است. بیایید با استفاده از منوی زمینه آن را در SceneBuilder باز کنیم.
و در اینجا می بینیم که هیچ فرمی وجود ندارد. اما در واقع اینطور است - فقط اندازه محاسبه شده (ارتفاع و عرض) به طور پیش فرض استفاده می شود که در این مورد صفر است. هیچ مولفه ای وجود ندارد! در مورد ما، این دقیقاً همان چیزی نیست که ما نیاز داریم، بنابراین BorderPane را در لیست سلسله مراتبی و در ویژگی ها انتخاب می کنیم. عرض Prefو ارتفاع پیشینبیایید مقداری تعیین کنیم این ویژگی ها عرض و ارتفاع "مطلوب" را تنظیم می کنند. پس از آن، فرم بلافاصله "ظاهر می شود".
کانتینر BorderPane از 4 قسمت بالا، راست، پایین، چپ و مرکز تشکیل شده است. اجزاء باید در قسمت های مختلف قرار گیرند - موقعیت آنها در صورت تغییر اندازه پنجره به این بستگی دارد.
توضیح با کلمات در اینجا بسیار سخت است، فقط سعی کنید چند دکمه را قرار دهید و سپس اندازه پنجره را در پیش نمایش تغییر دهید.
من خیلی باهوش نشدم و یک فیلد متنی در بالا و یک دکمه در مرکز قرار دادم.
اکنون بررسی کنید که کنترلر مشخص شده باشد: در این حالت application.SampleController- Eclipse این کار را برای ما انجام داد.
حال باید یک شناسه برای عناصر خود تعیین کنیم. برای دکمه ای که تنظیم کردم btn1و قسمت متن textField1. ما دوباره پیام "مثلث زرد" را داریم.
برای دکمه، روش رویداد را مشخص کنید - btn1 کلیک کنید.
ذخیره کنید و به Eclipse برگردید. ما آن فایل را خواهیم دید Sample.fxmlبه روز شد، اما نمادهای هشدار در کنار برخی از خطوط ظاهر شد.
وضعیت در اینجا دقیقاً مانند NetBeans است - باید در حالت "نیمه دستی" تغییراتی ایجاد کنید. در Eclipse، این کار با استفاده از منوی زمینه روی دکمه دوم ماوس انجام می شود: تعمیر سریعیا کلید داغ ctrl+1(که راحت تر است).
در همان زمان، یک اشاره در مورد اقدام مورد نظر ظاهر می شود. به عنوان مثال برای textField1پیشنهاد می شود یک شناسه به کنترل کننده اضافه شود:
و برای دکمه نیز یک روش کنترل کننده رویداد وجود دارد:
در عین حال، Eclipse کمی کند می شود و تغییرات بلافاصله روی صفحه نمایش داده نمی شود. در اینجا باید یا به فایل کنترلر سوئیچ کنید یا کمی صبر کنید. در نتیجه تغییرات لازم به کد اضافه شده و آیکون های هشدار ناپدید می شوند.
بیایید کد خود را مانند قبل در NetBeans اضافه کنیم.
به کار فکری تکمیل خودکار بیشتر توجه کنید. در حالت اتوماتیک کمی سرعتش کم می شود اما اگر فشار دهید Ctrl+Space(همین ترکیب در بسیاری از IDE ها استفاده می شود)، همچنین به شما امکان می دهد کمک خوبی دریافت کنید.
بیایید برنامه خود را شروع کنیم.
و یک IDE دیگر را در حساب خود یادداشت می کنیم. :-)
ایده IntelliJ
IntelliJ IDEA نسبتاً آهسته راهاندازی میشود، میتوانید زمان برای بررسی نامههای خود داشته باشید. :-)
مجدداً مسیر SceneBuilder را مشخص کنید: تنظیمات فایل:
و نام آن را مشخص کنید (مثلاً - myfx):
IntelliJ IDEA مقداردهی اولیه می شود و ما سه فایل آشنا را خواهیم دید. بیایید برنامه را اجرا کنیم تا خطاها را بررسی کنیم.
یک فرم خالی هم هست ولی عنوان برنامه مشخص شده است. اگر به کد نگاه کنید Main.java، ما این خط را خواهیم دید:
PrimaryStage.setTitle("Hello World");
این عنوان برنامه است. در سایر IDE ها، این خط وجود ندارد، اما اکنون می دانیم که «صحنه تئاتر» برای چیست. ;-)
تغییر به SceneBuilder (مشابه Eclipse): با دکمه دوم ماوس که باید انتخاب کنید در SceneBuilder باز کنید.
در اینجا نیز یک فرم خالی است، اما با ظرف GridPane. نصب عرض Prefو ارتفاع پیشینبرای نمایش فرم
GridPane به خودی خود یک شبکه سلولی برای عناصر است. من فکر می کنم که تکرار در اینجا فایده ای ندارد - همه اقدامات مشابه خواهند بود:
- دکمه مکان و فیلد تست،
- به آنها شناسه بدهید
- برای دکمه، روشی برای پردازش یک کلیک ثبت کنید،
- فراموش نکنید که بررسی کنید آیا کنترلر مشخص شده است ( نمونه.کنترل کننده).
SceneBuilder را ببندید و به IntelliJ IDEA برگردید. در اینجا باید شناسه های شناسه را به کد اضافه کنید و همچنین روشی برای واکنش به کلیک دکمه ایجاد کنید.
IntelliJ IDEA دو راه برای انجام این کار ارائه می دهد. اولین - هنگامی که ماوس را روی "محل مشکل" نگه می دارید، یک اشاره ظاهر می شود که می توانید روی آن کلیک کنید:
دومی یک کلید داغ است Alt+Enter
هر بار که اضافه می کنید، به فایل کنترلر سوئیچ می کنید، جایی که می توانید بلافاصله تغییرات را مشاهده کنید.
در عین حال، توجه داشته باشید که خط "@FXML" اضافه نشده است. اگر به صورت دستی آن را قبل از متغیرها و متد اضافه کنیم، IntelliJ IDEA بلافاصله کلاس جاوای مورد نیاز را اضافه می کند:
به طور کلی، IntelliJ IDEA نبوغ نسبتا خوبی از خود نشان می دهد و به عنوان یک دستیار در نوشتن کد عمل می کند. و این کار را به تنهایی و بدون فشار دادن دکمه اضافی انجام می دهد.
خوب، بیایید کد خود را برای هندلر اضافه کنیم و برنامه را اجرا کنیم:
عالی، همه چیز کار می کند!
جمع
نتیجه گیری اصلی - برنامه نویسی بصری در جاوا امکان پذیر است. ممکن است کامل نباشد، اما کاملاً مناسب است، مخصوصاً برای مبتدیان. یادگیری زبان زمانی که نتایج ملموسی به دست میآید بسیار جالبتر است - OOP، کلاسها و ترفندهای دیگر خوب هستند، اما بهتر است با دکمهها، فیلدهای ورودی، منوها و هر چیزی که یک برنامه معمولی دلالت دارد شروع کنید. و کنسول خسته کننده و غیر جالب است.
من سه IDE آوردم نه اتفاقی. نمونه های جاوا زیادی در وب وجود دارد و همه آنها برای برنامه های مختلف هستند. من شخصاً هنوز در مورد ترجیح خود تصمیم نگرفته ام ، زیرا همه دارای مزایا و معایب هستند. احتمالاً باید با همه کار کرد، سپس مشخص خواهد شد.
اما نکته کلیدی توانایی کار با SceneBuilder است. ساخت یک فرم در JavaFX کمی با همان دلفی متفاوت است، عمدتاً در استفاده از کانتینرهای پیچیده (آنها را می توان درون یکدیگر قرار داد). بنابراین، ابتدا باید با آنها برخورد کنید، پس از آن می توانید از قبل خود اجزا را به عهده بگیرید.