Это избыточно? - PullRequest
       18

Это избыточно?

1 голос
/ 10 июля 2019

Это избыточно?Есть ли более простой способ написать это?

  if(e.range.getSheet().getName() == 'Estimate'){  
    var thisss = SpreadsheetApp.getActive().getSheetByName('Estimate');
  }

Ответы [ 2 ]

3 голосов
/ 10 июля 2019

Да.Это известно как WET решение.

Принцип СУХОЙ (не повторяйся) формулируется как «Каждая часть знания должна иметь одно, однозначное, авторитетное представление в пределахсистема ".

Проще говоря, если вы отслеживаете ветвь кода (скажем, переменную информацию), она должна иметь одну строку до корня дерева / кода и не должна повторятьсяв другом месте кода.

if(e.range.getSheet().getName() == 'Estimate'){  
  var sheet1 = SpreadsheetApp.getActive().getSheetByName('Estimate');
}

Здесь у вас есть две ветви (e.range.getSheet() и SpreadsheetApp.getActive().getSheetByName('Estimate')), чтобы добраться до одного и того же объекта листа (sheet1).Это может быть изменено как

var editedSheet = e.range.getSheet();
if(editedSheet.getName() === 'Estimate'){  
  //Do something with editedSheet here
}

Нарушения DRY обычно называют WET-решениями, которые обычно означают либо «напиши все дважды», «нам нравится печатать» или «впустую»всем время ".

2 голосов
/ 10 июля 2019

Да, это избыточно и может быть неэффективно по времени.

Если вы уже знаете, что имя объекта Class Sheet, возвращаемое e.range.getSheet(), равно 'Estimate', делать это не нужновызов службы скриптов Служб Google, который обычно является дорогостоящим с точки зрения времени выполнения.

Чтобы быть уверенным, потребляет ли он время выполнения или нет, вам следует посмотреть, что стенограмма выполнения.

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