Is this redundant? Is there a simpler way to write this?
if(e.range.getSheet().getName() == 'Estimate'){
var thisss = SpreadsheetApp.getActive().getSheetByName('Estimate');
}
Is this redundant? Is there a simpler way to write this?
if(e.range.getSheet().getName() == 'Estimate'){
var thisss = SpreadsheetApp.getActive().getSheetByName('Estimate');
}
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".
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.