با دنبال کردن این راهنماها برای طراحی افزونه، تجربه کلی کاربران خود را بهبود بخشید.
بهترین شیوههای عمومی
توصیه میشود از بهترین شیوههای زیر برای تمام افزونههایی که توسعه میدهید استفاده کنید.
قبل از شروع، مالکیت افزونه را تعیین کنید
افزونهها توسط پروژههای اسکریپت برنامهها تعریف میشوند که باید متعلق به یک حساب کاربری خاص باشند یا در یک درایو مشترک قرار گیرند. قبل از کدنویسی یک افزونه، مشخص کنید که کدام حساب کاربری باید مالک پروژه باشد و کدام حساب کاربری به عنوان ناشر آن عمل میکند. همچنین مشخص کنید که کدام حسابها باید به عنوان همکار عمل کنند و مطمئن شوید که آن حسابها به پروژه اسکریپت و پروژه Google Cloud مرتبط با آن دسترسی دارند.
فضای کاری گوگل را گسترش دهید، آن را کپی نکنید
افزونهها برای ارائه قابلیتهای جدید به برنامههای Google Workspace که توسعه میدهند یا خودکارسازی وظایف پیچیده طراحی شدهاند. افزونههایی که صرفاً عملکردهای موجود در برنامه را تکرار میکنند یا افزونههایی که پیشرفتهای قابل توجهی در گردش کار ایجاد نمیکنند، احتمالاً از مرحله بررسی افزونه برای انتشار عبور نمیکنند.
محدودهها را محدود نگه دارید
هنگام تعریف صریح محدودههای خود ، همیشه مجموعهای از محدودههای ممکن با کمترین میزان مجاز را انتخاب کنید. برای مثال، اگر افزونه شما فقط به دسترسی خواندن نیاز دارد، با محدوده https://www.googleapis.com/auth/calendar درخواست دسترسی کامل به تقویم کاربر را نداشته باشید. برای دسترسی فقط خواندنی، از محدوده https://www.googleapis.com/auth/calendar.readonly استفاده کنید.
از تکیه بیش از حد بر کتابخانهها خودداری کنید
استفاده از کتابخانههای Apps Script میتواند باعث شود افزونه شما کندتر از زمانی که تمام کد Apps Script در یک پروژه اسکریپت واحد قرار دارد، اجرا شود . اگرچه کتابخانههای Apps Script در افزونهها کار میکنند، اما در صورت استفاده از آنها ممکن است با کاهش عملکرد مواجه شوید. از گنجاندن کتابخانههای غیرضروری در پروژه خود خودداری کنید و راههایی را برای کاهش وابستگی افزونه خود به آنها در نظر بگیرید.
تأخیری که در بالا توضیح داده شد فقط مربوط به پروژههای Apps Script است که به عنوان کتابخانههای سمت سرور استفاده میشوند. شما میتوانید بدون مواجهه با این تأخیر، آزادانه از کتابخانههای جاوا اسکریپت سمت کلاینت مانند jQuery استفاده کنید.
بهترین شیوههای افزونهی Google Workspace
بهترین شیوههای زیر فقط در مورد افزونههای Google Workspace و استفاده از سرویس Card اعمال میشود.
فقط از چند کارت استفاده کنید
اگر افزونه از کارتهای زیادی استفاده کند، پیکربندی ناوبری پیچیده و مدیریت آن دشوار میشود.
از وسوسهی ایجاد کارتهای بیشتر از حد لازم خودداری کنید.
استفاده از توابع ایجاد ویجت
هنگام نوشتن کدی که یک Card یا سایر اشیاء رابط کاربری پیچیده ایجاد میکند، قرار دادن آن کد در تابع مخصوص به خود را در نظر بگیرید. این تابع ایجاد باید فقط شیء را بسازد و آن را برگرداند. این به شما امکان میدهد هر زمان که رابط کاربری نیاز به رفرش شدن داشته باشد، آن شیء را به سرعت بازسازی کنید. به یاد داشته باشید که پس از استفاده از کلاسهای سازنده در سرویس کارت، تابع build() را فراخوانی کنید.
کارتها را ساده نگه دارید
اگر یک کارت ویجتهای زیادی داشته باشد، میتواند بخش زیادی از صفحه را پر کند و کمتر مفید واقع شود. در حالی که بخشهای بزرگ کارت به عنوان عناصر رابط کاربری قابل جمع شدن نمایش داده میشوند، این امر اطلاعات را از کاربر پنهان میکند. هدف خود را سادهسازی افزونه و ارائه دقیقاً همان چیزی که کاربر نیاز دارد و نه بیشتر، قرار دهید.
از کارتهای خطا استفاده کنید
برای شرایط خطا، کارتهایی ایجاد کنید. اگر افزونه شما خطایی ایجاد کرد، باید کارتی حاوی اطلاعات خطا و در صورت امکان، دستورالعملهایی برای نحوه اصلاح آن نمایش دهد. برای مثال، اگر افزونه شما به دلیل عدم موفقیت در مجوزدهی نتوانست به یک سرویس غیر گوگل متصل شود، کارتی را نمایش دهید که این موضوع را بیان کند و از کاربر بخواهید اطلاعات حساب مورد استفاده را تأیید کند.
نوشتن تستها و پیامهای تست
شما باید تمام افزونههایی که ایجاد میکنید را به طور کامل آزمایش کنید. توابع آزمایشی بسازید که کارتها و ویجتها را با استفاده از دادههای آزمایشی ایجاد میکنند و سپس تأیید کنید که اشیاء مطابق انتظار ایجاد شدهاند.
هنگام استفاده از توابع فراخوانی اکشن ، معمولاً باید یک شیء پاسخ بسازید. میتوانید از دستوراتی مانند زیر برای تأیید صحت ساخت پاسخها استفاده کنید:
Logger.log(response.printJson());
توابع آزمایشی که ایجاد میکنید را مستقیماً از ویرایشگر Apps Script با استفاده از منوی Run اجرا کنید. وقتی یک افزونهی قابل اجرا دارید که کار میکند، حتماً نسخهی منتشر نشده را نصب کنید تا بتوانید آن را آزمایش کنید.
از دادههای آزمایشی مناسب برای هر برنامه میزبانی که افزونه آن را گسترش میدهد، استفاده کنید. برای مثال، اگر افزونه، جیمیل را گسترش میدهد، احتمالاً به چند ایمیل آزمایشی و شناسههای پیام آنها نیاز دارید تا بتوانید اطمینان حاصل کنید که افزونه با دریافت محتوای پیام متفاوت، همانطور که انتظار میرود عمل میکند. میتوانید شناسه پیام را برای یک پیام مشخص با فهرست کردن پیامها با استفاده از متد users.messages.list از API جیمیل یا با استفاده از سرویس جیمیل Apps Script دریافت کنید.
بهترین شیوههای برگزاری کنفرانس در تقویم
اگر افزونه شما گزینههای کنفرانس تقویم شخص ثالث را در تقویم گوگل ادغام میکند، این شیوههای برتر اضافی را دنبال کنید:
تابع onCreateFunction خود را روشن نگه دارید
هر onCreateFunction که در مانیفست خود تعریف میکنید، به صورت همزمان فراخوانی میشود، زمانی که کاربر سعی در ایجاد یک راهکار کنفرانس از آن نوع دارد. مطمئن شوید که این توابع فقط حداقل کار لازم برای ایجاد کنفرانس را انجام میدهند. انجام بیش از حد این توابع میتواند باعث کندی تجربه کاربری افزونه شما شود.
از فیلدهای ConferenceData مناسب برای دادههای کنفرانس استفاده کنید
هنگام ساخت اشیاء ConferenceData ، میتوانید آنها را با جزئیات مربوط به کنفرانس (کدهای دسترسی، شماره تلفنها، پینها، URIها و غیره) پر کنید. حتماً از فیلد EntryPoint مربوطه برای این اطلاعات استفاده کنید. این جزئیات را در فیلد یادداشتهای ConferenceData قرار ندهید.
جزئیات کنفرانس را به رویداد تقویم اضافه نکنید
افزونه شما نیازی به اضافه کردن اطلاعات مربوط به کنفرانسهای ایجاد شده توسط اشخاص ثالث به توضیحات رویداد تقویم ندارد. تقویم در صورت لزوم این کار را به طور خودکار انجام میدهد.