# Изучите свой IDE

(В оригинале - Know Your IDE)

В восьмидесятых годах среда разработки представляла собой всего лишь слегка украшенные текстовые редакторы… и то, если повезет. Подсветка синтаксиса, к которой мы так привыкли сегодня, тогда была роскошью, не всем доступной. Утилиты форматирования были внешними. Как и отладчики, с помощью которых можно было отлаживать пошагово, но при помощи замысловатых сочетаний клавиш.

В течении девяностых годов компании стали замечать потенциал, которые они бы могли получить, обеспечив программистов удобными средствами разработки. Интегрированные среды разработки (IDE) объединили в себе средства редактирования, компиляции, отладки, автоформатирования и другие возможности. Тогда же стали популярными меню и мышь, что привело к тому, что запоминать сложные сочетания клавиш больше было не нужно. Было достаточно выбрать необходимое действие из меню.

В двадцать первом веке IDE настолько распространились, что стали распространяться бесплатно с целью выйти на этот рынок. Современные IDE обладают просто фантастическим набором функциональностей. Моей любимой является автоматический рефакторинг, особенно Extract Method, где можно выделить кусок кода и сделать его функцией. Инструмент сам определит необходимые параметры, которые необходимо передать, что значительно упрощает процесс изменения. Кроме этого, IDE может даже найти другие места в коде, которые можно заменить на вызов этой новой функции, и предложить их заменить тоже.

Еще одно замечательное свойство современных IDE – возможность задавать стиль кодирования. Например, некоторые программисты Java стали делать все параметры final (что мне кажется потерей времени). Однако, чтобы начать следовать их правилу, все, что мне нужно – это настроить в IDE выдавать предупреждение для всех не-final параметров. Правила стиля могут использоваться и для поиска возможных ошибок, таких как сравнение autoboxed-объектов.

К сожалению, современные IDE не требуют больших инвестиций в изучение. Когда я начинал программировать на С под Unix, я должен был потратить значительное количество времени на изучение редактора *vi* (из-за ступенчатого характера кривой изучения). Это потраченное время потом многократно окупилось. Я даже черновик этой статьи набирал в *vi*. Современные IDE имеют очень пологую кривую изучения, что приводит к тому, что мало кто изучает что-то еще, кроме самых базовых вещей.

Мои первые шаги по изучению IDE – это запоминание горячих клавиш. Нажать *Ctrl+Shift+I* гораздо быстрее, чем выбрать мышкой пункт меню, отрываясь от основной работы. Переключения внимания на выбор действия мышью из меню приводят к серьезному снижению производительности.

И наконец, как программисты мы всегда можем обратиться к проверенным временем потоковым утилитам Unix, чтобы сделать что-то с нашим кодом. Например, если во время ревью кода я замечу, что программисты одинаково назвали классы, то чтобы это проверить, мне надо всего лишь набрать следующее:

```
find . -name "*.java" | sed 's/.*\///' | sort | uniq -c | grep -v "^ *1 " | sort -r
```

Давайте же потратим немного времени, чтоб работать с IDE более эффективно.

Автор оригинала - [Heinz Kabutz](http://programmer.97things.oreilly.com/wiki/index.php/Heinz_Kabutz)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/ru/thing_19.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
