このドキュメントは、deleteUnreadPromotions
関数のリファクタリングと設計方針について説明します。
- メールの取得:
fetchEmailThreads
関数を使用して、特定のクエリに一致するメールを取得します。 - メールの削除:
deleteThreads
関数を使用して、取得したメールをゴミ箱に移動します。
各関数は一つのタスクだけを行います。これにより、コードの再利用性と可読性が向上します。
※ deleteThreads
のような非常に単純な関数については、確かに冗長に感じるかもしれません。ただ、このような小さな関数でも独立させることで、将来的に同じような処理が他の場所で必要になったときに再利用しやすくなります。しかし、確かにこのケースでは少し冗長かもしれません。
コードは読みやすく、適切なコメントが追加されています。これにより、他の開発者がコードを理解しやすくなります。
例)
/**
* Fetches email threads based on the query.
*/
各関数は独立しているため、他の場所でも再利用しやすいです。
例)
function deleteThreads(threads) {
threads.forEach(thread => thread.moveToTrash());
}
新しい機能を追加する際に、既存のコードを少ししか変更しなくても済むようになっています。
例)
function isTimeExceeded(startTime, maxTime) {
const currentTime = new Date().getTime();
if (currentTime - startTime > maxTime) {
Logger.log('Approaching maximum execution time. Exiting.');
return true;
}
return false;
}
エラーが発生した場合には、それをログに出力するようにしています。
例)
function logError(error) {
Logger.log(`An error occurred: ${error.toString()}`);
}
例)
try {
// Code that might throw an error
} catch (e) {
logError(e);
success = false;
} finally {
Logger.log('Operation completed.');
}