Меньшие Методы - PullRequest
       28

Меньшие Методы

4 голосов
/ 14 января 2010

Следуя указаниям, приведенным в «Чистом коде» дядей Бобом Мартином, я пытаюсь уменьшить свои методы.

Одна рекомендация, которую он дает, состоит в том, что методы, содержащие trys, должны вызывать другие методы, которые не включают исключительные случаи.

Моя проблема связана с именованием.

Обычно к тому времени, когда мой метод содержит только выражение try, осталось немного, и название метода прекрасно описывает, что он делает, за исключением исключения.

Какие условные обозначения вы используете для обозначения «неисключительного» метода, который будет вызывать исключительный?

В качестве примера, это метод, на который я смотрю:

private void generateAndAttachDocumentFromTemplate(File templateFile) {
  try {
    File generatedDocument = generateDocumentFromTemplate(templateFile);
    if (generatedDocument != null) {
      attachDocument(generatedDocument, container);

      attachmentsPanel.reload();

      SystemControl.openDocument(generatedDocument);
    }
  } catch (Exception ex) {
    Notifier.notifyIT(App.user().getEmail(), ex);
    Dialogs.complain("Can\'t Generate Document");
  }
}

Ответы [ 4 ]

5 голосов
/ 14 января 2010

Я использую соглашение (которое, я думаю, он предлагает в книге), где у вас есть methodName и tryMethodName .

3 голосов
/ 14 января 2010

каждый раз, когда метод имеет метод doThisANDdoThat (), это плохой метод.методы должны делать ОДНО и только одно.Независимо от того, насколько они «маленькие».

1 голос
/ 14 января 2010

Некоторые альтернативы:

  • method> doMethod
  • method> method0

"Неисключительные" методы должны быть private.

1 голос
/ 14 января 2010

Вы можете использовать соглашение "Impl".

private void generateAndAttachDocumentFromTemplate(File templateFile) {
try {
    generateAndAttachDocumentFromTemplateImpl(File templateFile);
} catch (Exception ex) {
    Notifier.notifyIT(App.user().getEmail(), ex);
    Dialogs.complain("Can\'t Generate Document");
}
...