11 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Блеск и нищета Java для настольных систем

TOP 10 лучших сред разработки на Java

Java — мощный язык программирования, поддерживающий множество платформ. Под каждую есть свои среды разработки — давайте посмотрим, какие.

1 — NetBeans

Когда-то принадлежавшая Sun Microsystems, а теперь и Oracle, NetBeans является одной из лучших IDE за последнее десятилетие. NetBeans — модульная среда разработки, и все функции IDE входят в пакеты, называемые модулями. Он предлагает легкую интеграцию с программным обеспечением для управления версиями. NetBeans был создан с открытым исходным кодом, поэтому каждый может внести свой вклад в его развитие. Он бесплатный и работает на большинстве операционных систем и платформ.

  • Разработчик: Oracle.
  • Платформы: Windows, Mac и Linux.
  • Цена: Бесплатно.
  • Размер: 186 МБ для версии Java EE.

2 — IntelliJ IDEA

IntelliJ является закрытой исходной Java IDE и одной из главных среди IDE для Java (две другие — Eclipse и NetBeans). IntelliJ IDEA имеет отличный современный интерфейс. Он был выбран как базовая IDE для Android Studio — нового программного обеспечения для создания Android-приложений, разработанного компанией Google.

С уществуют две версии IntelliJ — Community Edition, которая является бесплатной, и Ultimate Edition, которая полностью признана и требует использования оплачиваемых лицензий.

  • Разработчик: JetBrains.
  • Платформы: Windows, Mac и Linux.
  • Цена: Платная (индивидуальная пользовательская лицензия на 199 долларов США). Бесплатно для студентов, также существует версия с открытым исходным кодом — тоже бесплатная.
  • Размер: 180 МБ для Community Edition, 290 МБ для Ultimate Edition.

3 — Eclipse

Eclipse — одна из самых популярных IDE, а не только для Java, но и для C ++ с PHP. Eclipse — это инструмент с открытым исходным кодом, имеющий отличное сообщество разработчиков. В нем также имеется огромная библиотека плагинов, созданная самими пользователями. У этой IDE есть множество версий, самая популярная — Eclipse Oxygen . Eclipse также была базовой IDE для старого Android SDK (Software Development Kit).

  • Разработчик: Eclipse Foundation.
  • Платформы: Windows, Mac и Linux.
  • Цена: Бесплатно.
  • Размер: пакет загрузки Eclipse Oxygen для Java EE весит 180 МБ.

4 — JDeveloper

JDeveloper — полностью свободная среда разработки, выпущенная Oracle. JDeveloper предлагает несколько функций, таких как: рефакторинг; контроль версий Git; аудит и метрики; отладка и профилирование кода; поддержка Ant и Maven. Он поставляется в двух версиях: Studio Edition, который имеет полностью загруженный набор инструментов для создания программ на Java, и Java Edition, в котором отсутствуют функции J2EE, ADF, UML и базы данных, но эта версия занимает меньше места и быстрее работает. Java Edition имеет все основные функции, необходимые для Java, и должен удовлетворять большинству начинающих Java-программистов.

  • Разработчик: Oracle .
  • Платформы: Windows, Mac и Linux.
  • Цена: Бесплатно.
  • Размер: Java Edition-181 МБ, Studio Edition -1.8 ГБ.

5 -Dr. Java

Dr. Java — это легкая Java IDE, которая поддерживается проектом SourceForge. Она предназначена в первую очередь для начинающих программистов и студентов, но также имеет расширенные возможности для профессиональных программистов. Это бесплатный и открытый проект. Dr. Java поддерживается группой JavaPLT в Университете Райса. Его интерфейс был разработан с использованием инструментария Swing, разработанного Sun Microsystems.

  • Разработчик: JavaPLT.
  • Платформы: Windows, Mac и Linux.
  • Цена: Бесплатно.
  • Размер: 13 МБ

6 — BlueJ

BlueJ — это Java IDE с открытым исходным кодом, созданная для образовательных целей. Она также подходит для разработки небольших программных проектов. Интерфейс BlueJ довольно прост, так что новички могут с легкостью его использовать. Он показывает классы и объекты чистым, визуальным образом. Основная цель BlueJ — научить объектно-ориентированному программированию, поэтому проект подойдет для новичков.

  • Разработчик: King’s College London, University of Kent.
  • Платформы: Windows, Mac и Linux.
  • Цена: бесплатно.
  • Размер: 160-170 МБ (включая JDK).

7 — jCreator

jCreator — это быстрая и эффективная Java IDE, написанная на C ++ (который предположительно делает его быстрее, чем другие IDE, написанные на Java). Он имеет интерфейс, похожий на более ранние версии Visual Studio, и позволяет настроить его по своему усмотрению. jCreator — платная IDE, но доступна бесплатная версия без таких функций, как автоматическое завершение кода. jCreator предлагает только поддержку Windows, но ее можно запустить на Linux с помощью Vine.

  • Разработчик: Xinox Software.
  • Платформы: Windows.
  • Цена: от 30$ до 1600$, есть пробная версия.
  • Размер: 7.2 MB для пробной версии.

8 — jGrasp

jGrasp — еще одна очень легкая Java IDE, которая фокусируется на визуализации программного обеспечения. Она имеет такие функции, как диаграммы классов UML, которые помогают улучшить читаемость кода. jGrasp автоматически создает визуализацию, а также имеет механизмы идентификации структуры данных, динамические зрители объектов и несколько других функций, которые представляют Java-код в приятном и удобном для чтения формате.

  • Разработчик: Auburn University.
  • Платформы: Windows, Mac и Linux.
  • Цена: Бесплатно.
  • Размер: 5 МБ.

9 — Greenfoot

Greenfoot — это образовательная Java IDE. Она в значительной степени опирается на визуализацию структур данных и оптимизироваан для создания простых программ и 2D-игр Java. Greenfoot имеет функцию совместного использования в Интернете, которая настраивается непосредственно в самой среде. Пользователи могут делиться своими программами онлайн для просмотра другими, а также получать справку и отзывы. Совместные проекты могут быть отредактированы онлайн. В целом, Greenfoot отлично подходит для начинающих.

  • Разработчик: King’s College London, Oracle.
  • Платформы: Windows, Mac и Linux.
  • Цена: Бесплатно.
  • Размер: 162 МБ для Windows (включая JDK).

10 — Codenvy

Codenvy — чисто облачная IDE, то есть установка ей не требуется. Codenvy имеет все функции полнофункциональной автономной среды IDE, включая среды сборки / запуска / отладки. Возможность сотрудничать в режиме реального времени является одной из желательных возможностей Codenvy. Codenvy имеет отличный интерфейс и несколько вариантов рабочего пространства. Он доступен после оплаты ежемесячной абонентской платы. Community-изданием Codenvy можно пользоваться бесплатно.

  • Разработчик: Codenvy Inc.
  • Платформы: на основе браузера.
  • Цена: бесплатно для Community-издания Подписка на премиум-версию от 1$/месяц.

Заключение

Потому как Java — кроссплатформенный язык программирования, почти все среды разработки тоже кроссплатформенны. Однако, опять же, выбор IDE зависит также и от личных предпочтений, целей использования, уровня мастерства. Удачи!

itel it5616 – Real Java? Что за зверь такой

Как давно у вас это устройство?

Телефон у меня около 3-4 месяцев.

Используете ли вы его до сих пор? Если нет – почему с ним расстались?

Да использую. В основном для прослушивания музыки и радио иногда. Для звонков редко. Еще как компактную читалку txt-файлов собираюсь его использовать.

Как к вам попало это устройство? По каким критериям было выбрано? Где и почём куплено?

Некоторое время назад увидел в магазине Связной, меня заинтересовали надписи на наклейках с информацией о телефоне о поддержке Java. Куплен был там же в Связном – если не ошибаюсь, за 1490 р.

Внешний вид телефона:

Что нравится? Сильные стороны, достоинства.

Функционал для такого уровня телефонов на высоте. Приличная АКБ. Есть возможность делать скриншоты. Инженерное меню очень продвинутое по *#9646633#.

Вот примеры скриншотов телефона:

Что не нравится? Слабые стороны, недостатки.

Не хватает более адекватной клавиатуры, и физически она не очень удобная. Так и переключение языка реализовано посредственно – нельзя установить, какой язык по умолчанию для ввода используется.

Чего вам в нём не хватает?

Производительности однозначно. Также хотелось бы наличия встроенной памяти для файлов. Ну и камеру или совсем убрали бы, или делали бы с нормальной камерой в 2 Мп.

Какие функции вы используете часто?

Плеер, радио, Java-приложения.

Какие функции вы используете изредка?

Браузер, звонки, Magic voice.

Какие функции не используете совсем?

Приходилось ли устройство ремонтировать?

Какие неприятности случались с устройством?

Да особых неприятностей не было.

Какие глюки были замечены?

Ничего неординарного в его работе не заметил.

Попробуйте сравнить это устройство с другими моделями, которыми вам приходилось пользоваться.

Функциональней, чем Fly FF244. Он чем-то напоминает модель того Fly – скорее всего, своей клавиатурой. Но до Нокий старых ему очень далеко еще по уровню поддержки Java. Скорее всего, проблема вся в ограничениях чипа SC6531BA.

Что ещё вы можете сказать?

Очень недоволен, что в сертификате не соответствует описание комплектации реальному положению дел – отсутствует кабель USB:

И обзор с тестированием в Java-бенчмарках телефона хотелось показать:

Оцените устройство по 10-балльной системе. Порекомендуете ли вы его другим?

6 баллов из 10. Мне нравится, но я понимаю, что по сути этот его функционал дополнительный на низком уровне реализован. Нет, такой телефон я бы никому не советовал брать. По сути просто игрушка больше, чем практичная вещь.

Что можно написать на Java?

Java — популярнейший язык программирования. Найти информацию о том, по каким причинам Java сегодня так известен и востребован, совсем несложно. Но лучше всего доказать эту востребованность на примерах конкретных приложений, которые можно написать на данном языке.

Cерый кардинал промышленной разработки

Многое из того, что сегодня видит рядовой пользователь вокруг себя, «лежит на поверхности» и написано на других языках. Для разработки сайтов используют HTML, CSS, JavaScript, PHP, Python, Ruby. Для создания игр прекрасно подходит C++. Для разработки операционных систем, драйверов, компьютерного «железа» нередко используют C, который без плюсов. В результате некоторые думают, что Java не так уж и незаменим, как принято думать. На деле ситуация обстоит совершенно иначе.

Java невидим для большинства рядовых пользователей, однако приложения, написанные с его помощью, спокойно выполняют свою работу, которая порой бывает весьма сложна. Например: 1. Отслеживание движения самолётов и систем жизнеобеспечения, регулировка, отсылка предупреждений и всё то, что в конечном итоге видит на своём мониторе диспетчер авиаслужбы, выполняется с помощью Java. 2. Распределение покупки билетов, работа банковских систем, через которые проходят миллиарды, электронная коммерция — и здесь без Java не обходится. 3. Управление бизнесом и людьми в компаниях и корпорациях, CRM, ERP — всё это тоже не может функционировать без сложных, а порой и гигантских программ, написанных на Java.

Читать еще:  Как сделать скриншот экрана на iphone 5s?

Собственно говоря, везде, где присутствует средний и крупный бизнес, есть «Джава».

Таким образом, приложений на «Ява» пишут очень много, и большинство из них отвечают за эффективную работу предприятий. Можно сказать, что программы, написанные на этом языке, приносят максимальный доход. И именно в этом-то и заключается одна из важнейших причин высоких заработных плат Java-разработчиков.

Но, как известно, крупный бизнес не всегда охотно показывает свою внутреннюю кухню, поэтому непосвящённому человеку может показаться, что Java непублична и используется недостаточно широко. Однако по утверждениям некоторых специалистов «Джава» является ни чем иным, как серым кардиналом программирования, особенно когда речь идёт о промышленной разработке. И сейчас мы это докажем на примерах.

Крупные игроки IT-рынка выбирают Java

За привлекательным фасадом какого-либо сайта может находиться огромное приложение, которое требует тысячи человеко-часов на разработку и техническую поддержку. И самые сложные программы принято писать именно на Java. Связано это с тем, что крупные проекты редко бывают монолитами и используют лишь одну технологию для бэкенда (back-end выполняется на сервере и не виден пользователю). А Java — она вездесуща.

На сегодняшний день на Java написано очень много. Вот лишь некоторые из известных проектов, где велика доля Java-кода: • Ebay. Крупнейший интернет-аукцион, в основе архитектуры которого именно Java; • Amazon. Международный интернет-магазин и площадка для других магазинов, использующий возможности Java для создания архитектуры и масштабирования; • Linkedin. Эта социальная сеть для деловых контактов тоже преимущественно написана на Java; • Google. Широко использует Java в работе таких сервисов, как GTalk либо Google Plus; • Twitter. История этой программы началась не с Java. Всё было написано на Ruby on Rails — специальном фреймворке, который прекрасно подходит, если нужно сделать сложное веб-приложение в сжатые сроки. Но тут разработчики не учли, что популярность проекта будет расти лавинообразно, поэтому очень быстро просела производительность. В итоге кинулись переписывать важные части и выбрали, разумеется, тот язык, который лучше масштабируется, —Java; • Facebook. Многие скажут, что эта мировая социальная сеть — адепт PHP. В принципе, так оно и есть, что само по себе редкость для гигантских проектов. Конечно, PHP хорош и очень удобен, когда речь идет о небольших сайтах. Но со временем его возможностей становится недостаточно. Так произошло и с Facebook. Сегодня соцсеть использует в качестве платформы для своего мессенджера базу данных, основанную на Java, — HBase. А масштабируемым сервисом для разработки является Apache Thrift — программный конвейер с движком генерации кода для разработки служб, работающий с Java.

Игры и мобильные приложения

Вот тут действительно много чего написано на Java, ведь, если где и можно разгуляться, так это в разработке программ под ОС Android. К слову говоря, это огромнейший рынок: как утверждало аналитическое агентство IDC ещё в 2015 году, 83 % обладателей смартфонов использовали Android и лишь около 14% – Apple iOS.

Как многие знают, Android-разработчик на Java уже давно является отдельной профессией, да и что там греха таить — сама операционная система неплохо простимулировала развитие языка в целом.

В итоге сегодня у начинающих Java-программистов есть неплохой выбор: изучив Java Core, вы можете углубиться либо в промышленную (Java Enterprise), либо в мобильную разработку (Android API).

Остаётся добавить, что значительная часть самой ОС Android тоже ведь написана на Java.

А как обстоят дела с крупными играми?

Известных и больших 3D-игр класса «А» на Java написано не очень много. Но это не потому, что возможности языка не позволяют это сделать. Да, некоторые проблемы с геймдевом присутствуют, но они вполне решаемы. Основная причина в другом: исторически сложилось, что наиболее мощные игровые движки написаны для применения с C++.

Но есть у Java и то, чем можно гордиться — Minecraft. Это любимая игра, тех, кто родился в конце 90-х, начале 2000-х. Нельзя не вспомнить и другую MMORPG, попавшую в Книгу рекордов Гиннеса по причине зашкаливающего количества игроков — RuneScape. Между прочим, эта игра жива и по сей день.

От нашего двора вашему

Говоря о том, что же пишут на Java, мы забыли поговорить о приложениях от разработчиков для разработчиков. А ведь девелоперы себя не обидят, поэтому и пишут для себя любимых, только используя лучшие инструменты. И здесь-то программисты разыгрались не на шутку: на Java сегодня написано огромнейшее количество всевозможных приложений, применяемых в процессе разработки ПО. Можно привести пример известных IDE и текстовых редакторов: NetBeans, RubyMine, Eclipse, IntelliJ IDEA, Aptana. Нельзя не упомянуть и систему отслеживания ошибок Jira, а также систему создания и документирования базы знаний Confluence. И при работе с большими данными Java зарекомендовала себя неплохо — именно на этом языке написан Hadoop — проект для разработки распределённых приложений, функционирующих на кластерах.

Но и это ещё не всё

Вот ещё пару примеров приложений, где без «Джавы» не обошлось: 1. OpenOffice — кроссплатформенный и универсальный офисный пакет. 2. BookSmart — бесплатное программа для создания книг, фотоальбомов. 3. MATLAB — платформа и среда разработки для научных вычислений. Java + C. 4. UltraMixer — популярный софт для диджеев. 5. ImageJ — программа с открытым исходным кодом, анализирующая и обрабатывающая изображения. 6. Processing — подъязык программирования, который основан на Java. Даёт возможность легко писать мультимедийные программы, подключается в качестве библиотеки Java. 7. LWJGL — библиотека для работы с OpenGL. Рассчитана на тех, кто хочет писать игры под Java. 8. NetBeans Platform — Java-фреймворк, на котором написано множество «тяжелых» Enterprise-приложений: Nato MICE Console, Boeing Mass Properties Toolkit.

Что же, выучив этот язык программирования, вы точно не останетесь без работы. Так что записывайтесь на наши курсы!

Лучшие IDE для Java

Учредив 7 номинаций, субъективно определим лучшие из лучших:

Лучшая бесплатная IDE: NetBeans

NetBeans – мощнейшая среда разработки с открытым исходным кодом, ориентированная на интернет, мобильные и настольные приложения. Работает с Linux, Windows, MacOS и даже Oracle Solaris.

Несмотря на то, что NetBeans позволяет работать на нескольких языках, в среде разработчиков она считается Java-ориентированной. Она прекрасно взаимодействует с JPA, JSP, Struts, Spring и библиотекой Hibernate.

Лучшая коммерческая IDE: IntelliJ IDEA

По правде говоря, IntelliJ IDEA распространяется в двух версиях, одна из которых совершенно бесплатная – Free Community Edition. Причём для начинающего разработчика данного пакета хватит с головой. В частности, IDE Android Studio, речь о которой пойдёт чуть позднее, основана именно на этой версии.

В платной же версии вы получаете поддержку фреймворков Spring (Spring MVC framework, Spring Security, Spring Boot, Spring Integration и т. д.), Node.js, Angular React, Grails, возможность использовать дополнительные языки (javascript, typescript, coffeescript) и взаимодействовать почти со семи популярными серверами (Tomcat, TomEE, GlassFish, JBoss, WildFly, Weblogic, WebSphere, Geronimo, Virgo и т. д.).

Самая популярная IDE: Eclipse

Точную цифру привести практически невозможно, но практически любой Java-разработчик с опытом работы более 2 лет сталкивался с этой IDE. Победителем в этой номинации Eclipse удалось стать благодаря большому сообществу, тонне полезной информации и бесчисленному количеств плагинов. Как и с предыдущими экземплярами, Eclipse поддерживает несколько языков, но воспринимается как приверженец Java.

Cамая универсальная IDE: JDeveloper

Ещё один продукт от Oracle с массой преимуществ, среди которых поддержка системы контроля версий и облачного сервиса Oracle, он упакован SQL Developer, PL / SQL обработчиком запросов, WebLogic Server, редакторами HTML, CSS, JavaScript, JSF, JSP, WSDL и ещё огромным количеством всевозможных полезностей.

Лучшая для Android: Android Studio

Было бы странно, если победителем в этой номинации стала какая-нибудь другая IDE. Помимо всех возможностей, который вам дарит исходная IDE IntelliJ IDEA, Android Studio включает в себя немало надстроек от Google, как чисто визуальных (макеты, форматы, GPU профайлер), так и функциональных (JUnit 4 и Firebase Test Lab для тестирования и отладки, система сборки Gradle, Instant Run).

Лучшая IDE для обучения: DrJava

Именно к такому выводу пришла команда разработчиков под названием JavaPLT, представляющие университет Райса. Оно и неудивительно, учитывая, что DrJava – их детище. Впрочем, оставив шутки в стороне, стоит признать, что DrJava действительно прекрасно подойдёт новичкам, ведь данная IDE даже не ставит своей целью соперничество с выше названными. Главное её преимущество – предельно быстрая настройка и переход к непосредственному написанию кода. В качестве конкурентов можно на схожих условиях рассмотреть BlueJ, JGrasp и Greenfoot.

Самая перспективная IDE: MyEclipse

Приветственная надпись на странице скачивания гласит “The best Java EE IDE enhanced for the full stack developer”. Что ж, это весьма нескромно, совсем не подкреплено фактами, но по правде говоря – недалеко от истины. В сущности, MyEclipse – это Eclipse, где всё изначально “привинчено”, “допилено” и ещё немного расширено. К услугам разработчика предлагается несколько версий, две основные – стандартная и профессиональная. Стандартная – это как раз Eclipse в новой оболочке, а Professional содержит мобильный веб-симулятор, редактор картинок, UML-редактор, шаблоны, надстройки – в общем, всё, что сделает создание продукта значительно проще.

А чем пользуетесь вы?

В прошлый раз мы постарались объять необъятное, вспомнив несколько наиболее популярных и универсальных сред разработки. Опыт получился не слишком удачным, поэтому в этот раз мы сконцентрируемся только на одном языке, а именно Java. Если вы только начинаете знакомиться с ним, рекомендуем пройти бесплатный интенсив по Java-программированию.

Учредив 7 номинаций, субъективно определим лучшие из лучших:

Читать еще:  Ashampoo WinOptimizer Free для оптимизации компьютера.

Лучшая бесплатная IDE: NetBeans

NetBeans – мощнейшая среда разработки с открытым исходным кодом, ориентированная на интернет, мобильные и настольные приложения. Работает с Linux, Windows, MacOS и даже Oracle Solaris.

Несмотря на то, что NetBeans позволяет работать на нескольких языках, в среде разработчиков она считается Java-ориентированной. Она прекрасно взаимодействует с JPA, JSP, Struts, Spring и библиотекой Hibernate.

Лучшая коммерческая IDE: IntelliJ IDEA

По правде говоря, IntelliJ IDEA распространяется в двух версиях, одна из которых совершенно бесплатная – Free Community Edition. Причём для начинающего разработчика данного пакета хватит с головой. В частности, IDE Android Studio, речь о которой пойдёт чуть позднее, основана именно на этой версии.

В платной же версии вы получаете поддержку фреймворков Spring (Spring MVC framework, Spring Security, Spring Boot, Spring Integration и т. д.), Node.js, Angular React, Grails, возможность использовать дополнительные языки (javascript, typescript, coffeescript) и взаимодействовать почти со семи популярными серверами (Tomcat, TomEE, GlassFish, JBoss, WildFly, Weblogic, WebSphere, Geronimo, Virgo и т. д.).

Самая популярная IDE: Eclipse

Точную цифру привести практически невозможно, но практически любой Java-разработчик с опытом работы более 2 лет сталкивался с этой IDE. Победителем в этой номинации Eclipse удалось стать благодаря большому сообществу, тонне полезной информации и бесчисленному количеств плагинов. Как и с предыдущими экземплярами, Eclipse поддерживает несколько языков, но воспринимается как приверженец Java.

Cамая универсальная IDE: JDeveloper

Ещё один продукт от Oracle с массой преимуществ, среди которых поддержка системы контроля версий и облачного сервиса Oracle, он упакован SQL Developer, PL / SQL обработчиком запросов, WebLogic Server, редакторами HTML, CSS, JavaScript, JSF, JSP, WSDL и ещё огромным количеством всевозможных полезностей.

Лучшая для Android: Android Studio

Было бы странно, если победителем в этой номинации стала какая-нибудь другая IDE. Помимо всех возможностей, который вам дарит исходная IDE IntelliJ IDEA, Android Studio включает в себя немало надстроек от Google, как чисто визуальных (макеты, форматы, GPU профайлер), так и функциональных (JUnit 4 и Firebase Test Lab для тестирования и отладки, система сборки Gradle, Instant Run).

Лучшая IDE для обучения: DrJava

Именно к такому выводу пришла команда разработчиков под названием JavaPLT, представляющие университет Райса. Оно и неудивительно, учитывая, что DrJava – их детище. Впрочем, оставив шутки в стороне, стоит признать, что DrJava действительно прекрасно подойдёт новичкам, ведь данная IDE даже не ставит своей целью соперничество с выше названными. Главное её преимущество – предельно быстрая настройка и переход к непосредственному написанию кода. В качестве конкурентов можно на схожих условиях рассмотреть BlueJ, JGrasp и Greenfoot.

Самая перспективная IDE: MyEclipse

Приветственная надпись на странице скачивания гласит “The best Java EE IDE enhanced for the full stack developer”. Что ж, это весьма нескромно, совсем не подкреплено фактами, но по правде говоря – недалеко от истины. В сущности, MyEclipse – это Eclipse, где всё изначально “привинчено”, “допилено” и ещё немного расширено. К услугам разработчика предлагается несколько версий, две основные – стандартная и профессиональная. Стандартная – это как раз Eclipse в новой оболочке, а Professional содержит мобильный веб-симулятор, редактор картинок, UML-редактор, шаблоны, надстройки – в общем, всё, что сделает создание продукта значительно проще.

В помощь Java-программисту: 11 инструментов, облегчающих разработку

В помощь Java-программисту: 11 инструментов, облегчающих разработку

  • Переводы , 26 сентября 2018 в 21:18
  • Кирилл Поздеев

Java-разработка похожа на столярное дело — без правильных инструментов ничего не выйдет. К счастью, современному Java-разработчику доступен широкий выбор различных систем сборки, фреймворков и сред разработки. И хотя идеального инструмента не существует, мы собрали 11 лучших, чтобы помочь вам выбрать подходящий для проекта.

Gradle

Gradle достаточно новый инструмент для сборки, который успел обрести множество поклонников. Он уже стал стандартным инструментом для компиляции операционной системы Android от Google. В отличие от Maven и Ant, которые используют XML файлы сборки, Gradle использует два предметно-ориентированных языка — Kotlin и Apache Groovy. Большая часть документации к нему написана на Groovy, но Kotlin лучше интегрируется со средами разработки.

Gradle сохраняет баланс между обширными возможностями и структурой. Его стандартных настроек вполне достаточно, но при необходимости их всегда можно переопределить. Рабочие файлы разбиты на задачи — это позволяет производить инкрементальную разработку, а не застревать в аду зависимостей при сборке. Gradle может избегать ненужной работы с помощью повторного использования фрагментов из предыдущих сборок и поддерживать работу демона для сохранения информации в памяти.

Если вы ищете гибкий и простой в использовании инструмент, да ещё и с высокой скоростью работы, стоит обратить внимание на Gradle.

Groovy

Apache Groovy — это язык, а не инструмент или библиотека, но из-за его распространённости и ценности для тестирования, он заслуживает включения в этот список. Как следует из названия, Groovy (переводится как расслабленный) — упрощённый вариант Java. Их синтаксис схож, но в первом меньше правил, поэтому его легче воспринимать. Groovy поможет избежать части работы, которую на Java пришлось бы делать в обязательном порядке. Например, он автоматически импортирует часто используемые классы, добавляет объявление необязательно типизированных переменных и может похвастаться мощными возможностями для скриптов. Его можно скомпилировать в байт-код, как обычную Java-программу, или запустить с помощью консольных команд.

Ивент перенесён на 5 июня в 08:30 в 08:30, Киев, от 170 до 200 $

Элегантная архитектура Groovy делает его великолепным инструментом при тестировании. Например, модификаторы доступа являются необязательными, и в результате этого тесты могут читать и проверять внутреннее состояние тестируемого кода. Он также имеет особый тип утверждений (assert), называемый power assert, который оценивает каждый аспект утверждения, чтобы чётко показать, что пошло не так, вместо простого сравнения ожидаемых и фактических результатов. Хотя Groovy и не является кандидатом на замену Java, он все равно должен быть в инструментарии разработчика, особенно при написании тестов.

IntelliJ

«IntelliJ против Eclipse» — немногие споры среди программистов вызывают столько раздоров, сколько этот. Обе среды разработки являются мощными инструментами для работы, имеют большое количество расширений и простую навигацию, а также делают приятным написание Java кода. Но когда дело доходит до пользовательского опыта — у IntelliJ просто нет конкурентов. Он быстрый, отполированный и цельный. Хотя повторная индексация кода может расстраивать, она служит высшей цели — дает IntelliJ возможность постоянно следить за полной картиной проекта. Это позволяет в реальном времени подсвечивать ошибки, автоматически дополнять код и производить быструю навигацию по всему проекту.

В комплекте с IntelliJ поставляется множество инструментов и подсказок, а также плагины практически для любой ситуации. Например, вам нужно написать bash-скрипт в проекте — для этого есть плагин. Или требуется написать несколько регулярных выражений для тестирования вывода в консоли — для этого тоже есть плагин. IntelliJ облегчает рефакторинг, просматривая потенциальные изменения и показывая возможные конфликты. У каждой среды разработки есть свои плюсы и минусы, но IntelliJ просто создан для удобной работы.

JaCoCo

С великим кодом приходят великие тесты, а JaCoCo поможет проверить код. Это бесплатный инструмент для оценки охвата кода юнит тестами, который выведет подробные отчёты. Например, при запуске JUnit-теста, JaCoCo использует файлы классов, которые были в тестах, для создания .exec-файлов. Другая часть программы использует получившиеся файлы для создания отчета (в формате HTML, XML или текстового файла) о покрытии кода тестами.

Отчёт JaCoCo имеет цветовой код: зелёный указывает, что все части кода были покрыты тестами; жёлтый — частичное покрытие; красный — отсутствие покрытия. В отчёте также содержится краткий обзор того, какая часть инструкций и веток была покрыта, и даётся оценка цикломатической сложности алгоритма. При получении отчёта о покрытии следует настроить тесты, чтобы обеспечить надлежащий охват кода.

С помощью JaCoCo любой разработчик сможет создать полный и глубокий набор тестов, подходящий даже для самого сложного приложения. Он совместим как с Gradle, так и с Maven, и имеет плагины для Eclipse и IntelliJ.

JMeter

JMeter — это инструмент с открытым исходным кодом для тестирования производительности приложений, который включает в себя несколько категорий тестов: тесты нагрузки, функциональные тесты, тесты производительности и регрессионные тесты. Это золотой стандарт для нагрузочного тестирования, поскольку он даёт наиболее полное представление о слабых местах приложения при экстремальных нагрузках. Хотя у JMeter более высокие накладные расходы, чем у других инструментов для тестирования, но в то же время он собирает большее количество данных и производит большую часть обработки самостоятельно. Он даёт полный и развернутый отчёт о поведении приложения под нагрузкой.

JMeter имеет множество настроек и не зависит от платформы, а также даёт возможность подключить дополнительный функционал с помощью плагинов. JMeter довольно легко настроить для собственных нужд, поскольку он хранит планы тестирования в XML-файлах.

JUnit

Не нужно даже писать о том, насколько хорош JUnit. Это доминирующая библиотека для модульного тестирования программного обеспечения на Java и не без оснований. Mockito отлично подходит для разработки, основанной на описании поведения, но JUnit — король разработки, основанной на тестах. Его доминирование обусловлено тем, что при работе с определённой частью кода можно в начале написать тесты, а уже потом — код, а не наоборот. Его аннотации уменьшают количество кода в шаблоне без захламления тестовой среды.

JUnit продолжает улучшаться с каждым мажорным релизом. Например, JUnit 5 представил поддержку лямбда-выражений, возможность для объединения групп тестов в один тестовый класс и возможность для других тестовых фреймворков создавать движки, которые будут работать везде, где есть поддержка JUnit 5. Это означает, что новые фреймворки для тестирования получают такую же поддержку, как и JUnit 5, поэтому их освоение проходит намного быстрее и менее болезненно.

Хотя немного глупо включать в этот список что-то вроде JUnit, но было бы гораздо более серьёзным упущением вовсе не упомянуть о нем. JUnit — краеугольный камень разработки на Java и заслуживает места в каждом списке лучших инструментов для этой платформы.

Mockito

Каждый разработчик Java, который практикует разработку, основанную на поведении, скорее всего уже знаком с Mockito. Этот mock-фреймворк с открытым исходным кодом позволяет использовать объекты mock и spies простым и понятным способом. Mockito помогает создавать чистые тесты и, соответственно, свободно связанный код. Также можно использовать его для mock-классов и интерфейсов. Использование spies вместо mocks поможет получить меньше строк кода и более реалистичные тесты для прогнозирования фактического поведения приложения.

Mockito (как и другие mock-фреймворки) может показаться сложным в поддержке, но его чистые тесты и возможности компенсируют это.

Spark

Spark является легковесным веб-фреймворком для Java, предназначенным для быстрой разработки с минимальными накладными расходами. Он ориентирован на создание микросервисов, что очевидно из его философии дизайна. Создание Spark вдохновлено фреймворком Sinatra для Ruby, поэтому он был построен вокруг лямбда-выражений Java 8. Его API понятен, гибок и прост в использовании, что делает его великолепным инструментом для разработки RESTful API.

Если вы ищете массивный Java фреймворк, который сделает всю тяжёлую работу за вас, Spark не лучший выбор. Но если вам нужен выразительный и простой в использовании фреймворк, который позволит сохранить ваш Java код чистым и почти без шаблонов, то он создан специально для вас.

SpotBugs

SpotBugs — проект с открытым исходным кодом для статического анализа кода. Как ясно из названия, он отыскивает ошибки до того, как вы сами их найдете. Используя более 400 шаблонов, SpotBugs углубляется в код для выявления возможных ошибок, чтобы обнаружить и исправить их почти немедленно. Затем он присваивает своим выводам один из четырех уровней: «обеспокоенные», «тревожные», «страшные» и «самые страшные».

SpotBugs является преемником FindBugs, последняя версия которого выпущена в марте 2015 года. Сообщество развивает SpotBugs — у него активная группа участников и сопровождающих, продвигающих проект. Он доступен через интеграции Ant, Maven, Gradle и Eclipse.

SpotBugs поможет идентифицировать и классифицировать ошибки до того, как они повлияют на пользователей.

Spring Boot

Фреймворк Spring — популярный инструмент для инъекций зависимостей. Но на практике он оказывается непроходимыми джунглями функций и помощников, с которыми сложно разобраться даже опытным пользователям. Spring Boot стремится облегчить разработку приложений с использованием Spring для всех пользователей — считайте его за мачете, который помогает прорубить путь в джунглях Spring. Технически это лишь упрощенный способ создания отдельных экземпляров приложений Spring.

Для использования Spring Boot сначала следует выбрать стартовую конфигурацию — предварительно сконфигурированный набор зависимостей — подходящую для разрабатываемого приложения. Например, при работаете над RESTful веб-сервисом с использованием Spring MVC и Tomcat, можно выбрать Spring-boot-starter-web. Использование аннотаций, таких как @EnableAutoConfiguration, поможет завершить настройку приложения, а затем перейти к использованию полностью настроенного Spring.

Spring Boot — идеальный инструмент для укрощения фреймворка Spring при использовании всей его мощности.

YourKit

Работающий код это уже хорошо, но высокопроизводительный и эффективный код поражает. Профайлеры Java-кода, такие как YourKit, помогают идентифицировать утечки памяти, сравнивать производительность различных ветвей кода и диагностировать другие проблемы производительности, чтобы гарантировать пиковую производительность кода. YourKit можно использовать для локального и удалённого профилирования по требованию.

Как JProfiler, YourKit легко интегрируется с популярными средами разработки, что делает его естественной частью рабочего процесса. В отличие от многих других инструментов, YourKit может одновременно работать с разными частями кода для помощи в изучении ветвлений через функцию what-if.

У YourKit также есть мощные возможности профилирования исключений: он показывает тип генерируемых исключений и количество раз, которое они были выявлены. Наконец, с его помощью можно просматривать различные вызовы базы данных вплоть до истории запросов.

Основное отличие YourKit от других профилировщиков состоит в том, что он прост и понятен в использовании. Даже неопытные разработчики могут открыть heap dumps и, проанализировав их, понять философию обнаружения утечек на основе PathKit. Фактически мощные возможности YourKit делают heap dumps легкими в понимании и интересными для изучения.

Заключение

Очевидно, что вы не будете использовать исключительно один инструмент, и, скорее всего, в вашем арсенале окажется несколько из перечисленных здесь. На самом деле есть множество других популярных и проверенных инструментов разработки на Java, не охваченных в этом списке, например, Eclipse (IDE) и Maven (инструмент сборки). Если вы редко пользуетесь инструментом, важно, чтобы он был простым. Личные предпочтения столь же важны, как и объективные критерии — если это работает для вас, то кто сказал, что это неправильный путь?

Сборщик мусора G1 в Java 9

Интересно, а это нормально, когда ты
во время утренней воскресной прогулки
заходишь на работу, включаешь компьютер
и начинаешь писать статью в личный блог
про сборщик мусора в Java?

В Java 8 сборщиком мусора по умолчанию был Parallel GC, в Java 9 это изменилось. Ему на смену пришёл G1 Garbage Collector, который обеспечивает минимальное время stop-the-world (время когда сборщик мусора останавливает работу приложения).

Сборщик мусора Garbage-First (G1) нацелен на многопроцессорные системы с большим количеством памяти. Он старается с высокой точностью достичь заданной цели по времени остановки выполнения основной программы, но при этом добиться высокой пропускной способности при небольшой потребности в настройке. G1 нацелен на баланс между задержками и пропускной способностью.

В Java 9 сборщик мусора G1 используется по умолчанию, но вы также можете явно включить с помощью опции -XX:+UseG1GC .

Так же как и остальные сборщики мусора G1 разбивает кучу на молодое и старое поколения. Сборка мусора происходит по большей части в молодом поколении, чтобы увеличить пропускную способность сборки, сборка в старом поколении происходит гораздо реже.

Некоторые операции всегда выполняется в stop-the-world, чтобы увеличить пропускную способность, но некоторые операции, которые занимают большое время, например работающие со всей кучей, осуществляются параллельно с работой основного приложения. Для уменьшения времени stop-the-world сборщик мусора G1 осуществляет сборку инкрементно и параллельно с работой основного приложения. Сборщик мусора G1 собирает информацию о предыдущих сборках мусора, чтобы добиться более точного соблюдения времени stop-the-world. Например, он собирает мусор в первую очередь в тех местах, которые заполнены больше всего.

G1 переносит живые объекты из выбранных областей памяти в новые области, тем самым упаковывая их рядом для более эффективного использования памяти. После переноса выживших объектов память, которая была занята ими до этого процесса используется для новых объектов приложения.

Garbage-First collector — это НЕ сборщик мусора реального времени. Он пытается достичь заданного времени по stop-the-world, но это время не выдерживается для конкретной одной остановки приложения.

Сборщик G1 разбивает кучу на регионы одинакового размера. Каждый регион может быть либо свободен, либо содержать объекты из молодого поколения, либо содержать объекты из старого поколения. Регионов достаточно много, может быть множество регионов с молодым поколением и множество регионов со старым поколением. Регионы с молодым поколением делятся на Eden и Survivor. Они осуществляют точно такую же функцию, как и в сборщике мусора Serial GC.

Приложение всегда создаёт объекты в молодом поколении, в Eden, кроме очень больших объектов, которые сразу создаются в старом поколении.

Паузы для сборки мусора G1 очищают место в молодых поколениях полностью, и в дополнение могут очищать место в некотором количестве старых поколоениях во время любой из пауз. Во время паузы G1 копирует объекты из выбранных регионов в другие регионы в куче. Регион, куда происходит копирование, зависит от исходного региона: молодое поколение целиком копируется в survivor и старые регионы, а объекты из старых регионов в другие старые регионы.

Цикл сборки мусора G1

  1. Сборка только в молодом поколении (Young-only phase): Этот этап перетаскивает объекты из регионов с молодым поколением в регионы со старым поколением. Переход между сборкой только в молодом поколении и этапом освобождения памяти происходит в момент достижения определённого порога заполнения кучи, в который G1 стартует процесс пометки только молодого поколения:
    Начальная пометка (Initial Mark): Помечаются достижимые (живые) объекты в регионах со старым поколением. Этот процесс выполняется БЕЗ stop-the-world. Во время этого процесса также могут происходить сборки только в молодом поколении. После процесса начальной пометки выполняются два этапа с полной остановкой приложения (stop-the-world)..
    Повторная пометка (Remark): Завершает пометку, осуществляет выгрузку классов и глобальную обработку ссылок. Между повторной пометкой и очисткой сборщик мусора вычисляет общую информацию о живых объектах конкурентно (параллельно с работой приложения), которые будут освобождены, эта информация будет использоваться на этапе чистки.
    Чистка (Cleanup): очищает полностью пустые регионы, определяет нужен ли этап освобождения места.
  2. Освобождение места (Space-reclamation phase): Этот этап состоит из из сборки мусора, которая в дополнение к молодым регионам также перемещает живые объекты из множества старых регионов. Этап заканчивается, когда G1 решает, что дальнейшее перемещение ркегионыов не приведёт к освобожждению достаточного места, чтобы этим заниматься.

Немного о внутренностях G1 collector

The Initial Heap Occupancy Percent (IHOP) — это порог, после которого запускается начальная пометка. По умолчанию он определяется автоматически на основе времени, который требуется на пометку.

Для пометки G1 использует алгоритм, называемый Snapshot-At-The-Beginning (SATB). Он делает виртуальный снапшот кучи в момент начала этапа начальной пометки, то есть считает, что все объекты, которые были живы на момент начала пометки, живы до самого конца процесса начальной пометки (Initial Mark).

Очень большие объекты располагаются в нескольких последовательных регионах старого поколоения.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: