# IntelliJ IDEA **IntelliJ IDEA** — это IDE предназначенная для **Java**, **Python** и других языков программирования от компании JetBrains. ![IntelliJ IDEA](https://images.velog.io/images/codemcd/post/c8c93f48-fcf2-4793-a23d-6f6ed1a12803/intellij_idea_logo.png) Платформа IntelliJ IDEA индексирует весь код, что помогает разработчикам определять ошибки, ориентироваться в структурах кода и выполнять рефакторинг кода. Используя интеллектуальные, цепные и статические функции завершения, программисты могут получать предложения о соответствующих классах, методах, полях или ключевых словах, перечислять применимые символы, доступные с помощью методов, и использовать статические методы или функции. ___ ### Функциональность В среде IntelliJ IDEA можно разрабатывать приложения на **Java** и других языках, работающих на платформе виртуальной машины **Java**, — **Kotlin**, **Scala** и **Groovy** После установки бесплатных плагинов среда позволяет работать с другими популярными языками, включая **Go**, **Python**, **SQL**, **Ruby** и **PHP**. ___ ### Комфортность В IntelliJ IDEA очень гибка настройка внешнего вида программы: + Более 100 различных тем оформления; + Возможность синхронизировать цветовую схему с настройками операционной системы; + Наличие специальных возможностей: + чтение с экрана + гибкая настройка отдельных элементов интерфейса. ___ ### Особенность IntelliJ IDEA действительно понимает ваш код, а также контекст кодера, что делает его таким уникальным среди других Java IDE. + **Интеллектуальное завершение кода** – поддерживает контекстное завершение кода. Он дает список наиболее значимых символов, применимых в текущем контексте. + **Цепное завершение кода** – это расширенная функция завершения кода, которая перечисляет соответствующие символы, доступные через методы или методы получения в текущем контексте. + **Обнаружение дубликатов** – Он обнаруживает фрагменты дублированного кода на лету и дает уведомление / предложение об этом пользователю. + **Инспекции и быстрые исправления.** Всякий раз, когда IntelliJ обнаруживает, что вы собираетесь совершить ошибку, в одной строке появляется небольшое ламповое уведомление. Нажав на нее, вы увидите список предложений. ___ ### Недостатки Несмотря на большую популярность IntelliJ, в данной IDE есть несколько проблем способных отпугнуть новых пользователей или затруднить им работу с ней. + Для комфортной работы IDE необходим достаточно мощный компьютер имеющий более 8 ГБ оперативной памяти и производительный процессор. + Не совсем существенный, но всё же недостаток --- отсутствие русского языка. ___ ### Обзор работы в IntelliJ IDEA на примере Рассмотрим интерфейс и принцип работы со средой разработки на примере Java проекта представляющего собой модификацию для игры **Minecraft**. ![Screenshot](https://i.ibb.co/hmpcTz9/1.png) Основные блоки, как видно на скриншоте, это собственно сам **код** и **структура проекта**, такой внешний вид похож на **Visual Studio Code**. После ввода пары символов, IntelliJ уже предлагает возможные варианты на выбор, примечательно то, что в списке присутствуют и те варианты, для использования которых необходимо подключить соответствующую библиотеку. То есть IDE предлагает все возможные варианты которые только существуют в реестре IntelliJ. ![Screenshot](https://i.ibb.co/nsYT53v/2.png) В данном проекте для отладки и тестирования написанного кода необходимо запустить игру с данной модификацией, в этом помогает **Gradle** --- система для автоматизации сборки приложений и сбора статистики об использовании программных библиотек. ![Gradle](https://i.ibb.co/kytBwD1/3.png) Для непосредственно запуска необходимо нажать на **runClient**, после чего произойдёт загрузка и сборка необходимых файлов и запуститься клиент. Хочу заметить что для запуска игры, саму игру качать не нужно, она уже есть в пустом проекте модификации. ![Client](https://i.ibb.co/cb1MSJS/4.png) Помимо запуска клиента, в Gradle также есть такие пункты как проверка целостности файлов проекта и сборка модификации в отдельный от игры файл. ___ ### Заключение В целом данная IDE заслуженно является одной из распространённых и имеет ряд преимуществ, из которых самым удобным на мой взгляд является предложение продолжения при написании кода по всем возможным библиотекам, в отличие от Visual Studio, где для того чтобы IDE предложила вариант кода - он должен быть доступен в данном скрипте, для чего необходимо либо знать правильное написание нужной структуры, либо знать название необходимой библиотеки. Однако для полноценной комфортной работы в данной среде разработки необходима её настройка, ибо даже стандартное во многих программах динамическое изменение разрешения окна используя **Ctrl+Колёсико мышки**, в IntelliJ IDEA отключено по умолчанию.