Как отметить логические разделы кода в комментариях Java?

Классы Java обычно делятся на логические "блоки". Существует ли конвенция отметить эти разделы? Идеально, это поддерживалось бы главными IDE.

Я лично использую этот метод:

//// Section name here ////

Однако у некоторых редакторов, кажется, есть проблемы с этим.

Как пример, в коде Objective C можно использовать этот метод:

#pragma mark -
#pragma mark Section name here

Это приведет к меню в XCode, который похож на это:

alt text

89
задан Frederik 23 April 2015 в 09:34
поделиться

6 ответов

Я лично использую разделители строк из 80 символов, например:

public class Client {

    //================================================================================
    // Properties
    //================================================================================

    private String name;
    private boolean checked;

    //================================================================================
    // Constructors
    //================================================================================

    public Client() {
    }

    public Client(String name, boolean checked) {
        this.name = name;
        this.checked = checked;
    }

    //================================================================================
    // Accessors
    //================================================================================

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isChecked() {
        return checked;
    }

    public void setChecked(boolean checked) {
        this.checked = checked;
    }

}

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

В Eclipse я создал набор настраиваемых шаблонов (Java -> Editor -> Templates в диалоговом окне Eclipse Preferences), которые генерируют эти полосы, например - sepa (SEParator for Accessors) {{1} } - sepp (SEParator for Properties) - sepc (SEParator for Constructors) - etc.

Я также изменил стандартный шаблон «нового класса» (Java -> Стиль кода -> Код Шаблоны на экране настроек Eclipse)

Также существует старый плагин Eclipse под названием Coffee-bytes , который улучшил способ сворачивания частей кода в Eclipse. Я не знаю, есть ли это. все еще работает, но я вспомнил, что можно определить произвольные складываемые зоны, добавив специальные комментарии, например // [SECTION] или что-то в этом роде. Это может по-прежнему работать в последних ревизиях Eclipse, так что взгляните.

64
ответ дан 24 November 2019 в 07:13
поделиться

Eclipse определяет аннотацию javadoc @category (прокрутите до раздела с пометкой «Поддержка категорий»), которая позволяет фильтровать по категориям в обзоре структуры . Не совсем то, что вам нужно. Я удивлен, что никто не написал плагин Eclipse, который предлагает вид, подобный вашему снимку экрана.

14
ответ дан 24 November 2019 в 07:13
поделиться

Мне это тоже нравилось, когда я использовал xcode. В eclipse я использую ctrl+o (быстрый контур) для навигации по Java-классу.

6
ответ дан 24 November 2019 в 07:13
поделиться

Использование ненужных комментариев/маркеров в коде для облегчения работы может быть не очень хорошей практикой. У меня мало представления о xcode и разработке java, но все основные IDE поддерживают поиск членов без специальных маркеров, например, eclipse показывает методы и члены с помощью представления контура, которое можно вызвать с помощью ctrl+O, Intellij (который я предпочитаю использовать больше на mac, и у него также есть community edition) имеет ту же концепцию контура и может быть быстро вызван с помощью (ctrl + f12). Поэтому я хочу сказать, что не используйте ненужную разметку в коде, так как все (или, по крайней мере, хорошие/разумные) IDE могут делать это автоматически.

6
ответ дан 24 November 2019 в 07:13
поделиться

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

Лучше сгруппировать связанные члены в отдельный класс посредством наследования или агрегирования. Это считается хорошим стилем ООП

4
ответ дан 24 November 2019 в 07:13
поделиться

Современная среда IDE позволяет вам просматривать ваш код разными способами и даже реорганизовывать его. Eclipse даже позволяет просматривать определение кода, на котором установлен курсор, на другой панели.

Любая автоматическая реорганизация вашего кода приведет к нарушению такой разметки.

Если вы хотите группировать, подумайте о том, чтобы объединить вещи, принадлежащие к одному классу, а вещи, не принадлежащие вместе, в разные классы.

2
ответ дан 24 November 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: