Is this redundant?

混江龙づ霸主 提交于 2021-02-02 09:34:25

问题


Is this redundant? Is there a simpler way to write this?

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

回答1:


Yes. This is known as WET solution.

The DRY(Don't repeat yourself) principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system".

Simply put, If you trace a branch of code(say, a variable information), it should have a single line to the root of the tree/code and must not be repeated elsewhere in the code.

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

Here you have two branches(e.range.getSheet() and SpreadsheetApp.getActive().getSheetByName('Estimate')) to get to the same sheet object(sheet1). This can be modified as

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

Violations of DRY are typically referred to as WET solutions, which is commonly taken to stand for either "write everything twice", "we enjoy typing" or "waste everyone's time".




回答2:


Yes, it's redundant and it could be time inefficient too.

If you already know that the name of the Class Sheet object returned by e.range.getSheet() is equal to 'Estimate' there is no need to do a Google Apps Script service call that usually are expensive in terms of execution time.

To be certain if it is consuming or not execution time you should look that the execution transcript.



来源:https://stackoverflow.com/questions/56976851/is-this-redundant

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!