بهترین رویه ها و ترفندهای فلاتر – راهنمای کاربردی
رعایت بهترین رویهها و استانداردهای حرفهای در هر حوزهای و برای هر زبان برنامهنویسی حائز اهمیت بالایی است و به افزایش کیفیت کد، خوانایی، قابلیت نگهداری و پایداری کد کمک میکند. در این مقاله به بررسی برخی از بهترین رویهها و ترفندهای فلاتر برای توسعه اپلیکیشنها میپردازیم.
قرارداد نامگذاری
نام کلاسها، enum-ها، typedef-ها و اکستنشنها باید در «حالت شتری بزرگ» (UpperCamelCase) باشند.
به کدهای زیر توجه کنید.
نام کتابخانهها پکیجها، دایرکتوریها و فایلهای سورس باید در «حالت ماری» (snake_case) یعنی با حروف کوچک که کلمات با زیرخط از هم جدا شدهاند، باشد.
نام متغیرها، ثابتها، پارامترها و پارامترهای نامدار باید در حالت «شتری کوچک» (lowerCamelCase) باشد:
برای فایلهای موجود در lib از ایمپورت نسبی استفاده کنید
زمانی که از ایمپورتهای نسبی و مطلق همزمان استفاده میکنید، ممکن است زمانی که یک کلاس از دو روش متفاوت ایمپورت میشود، یک سردرگمی ایجاد شود. برای جلوگیری از بروز این سردرگمی باید از مسیر نسبی در پوشه lib/ استفاده کنید:
نوعهای خاص برای کلاس عضو
همواره نوع عضو را در زمانی که نوع مقدارش مشخص نیست، تعیین کنید. از استفاده از var تا حد امکان خودداری کنید:
از as استفاده نکنید و از عملگر is استفاده کنید
به طور معمول عملگر تبدیل as، در صورتی که تبدیل ممکن نباشد، یک استثنا ارائه میکند. برای جلوگیری از صدور این استثنا میتوانید از is استفاده کنید.
از شرط if به جای عبارت شرطی استفاده کنید
در اغلب موارد لازم است که یک ویجت را بر مبنای وجود برخی شرایط در ردیف یا ستون رندر کنیم. اگر عبارت شرطی در هر حالتی مقدار null بازگشت دهد، در این صورت باید صرفاً از شرط if استفاده کنیم:
از عملگرهای ?? و .? استفاده کنید
استفاده از عملگرهای ?? و .? را به جای بررسیهای null در عبارتهای شرطی ترجیح بیشتری دارد.
از کلکسیون spread استفاده کنید
زمانی که آیتمهای موجود از قبل در کلکسیون دیگری ذخیره شده باشند، ساختار کلکسیون spread منجر به کد آسانتری میشود.
از عملگر Cascades استفاده کنید
اگر نخواهیم یک دنباله از عملیات را روی شیء یکسانی اجرا کنیم، در این صورت باید از عملگر Cascades استفاده کنیم:
استفاده از رشته ساده
میتوان از یک رشته خام برای جلوگیری از escape کردن علامتهای بکاسلش (\) و دلار ($) استفاده کرد:
متغیرهای null را به صورت صریح مقداردهی نکنید
در زبان Dart متغیرها در زمان عدم تعیین شدن مقدار به صورت خودکار با مقدار null مقداردهی میشوند، بنابراین افزودن null یک کار تکراری و غیرضروری است.
از بدنه تابعهای عبارتی استفاده کنید
در مورد تابعهایی که شامل صرفاً یک عبارت هستند، میتوان از یک تابع عبارتی استفاده کرد. نمادگذاری پیکان (=>) برای تابع عبارتی استفاده میشود:
از فراخوانیهای ()print خودداری کنید
هر دو متد ()print و ()debugPrint برای لاگ کردن در کنسول استفاده میشوند. اگر از ()print برای ارائه خروجی زیاد به صورت یکباره استفاده کنید، در این صورت گاهی اوقات اندروید برخی خطوط لاگ را رد میکند. برای جلوگیری از این وضعیت از ()debugPrint استفاده کنید.
ویجت را به ویجتهای مختلف افراز کنید
زمانی که ()setState روی یک «حالت» (State) فراخوانی میشود، همه ویجتها از نو ساخته میشوند. از این رو با افراز ویجت به ویجتهای کوچکتر، میتوانیم کاری کنیم که ()setState به بخشی از زیردرختی که UI آن در عمل باید تغییر یابد، فراخوانی بزند.
برای لیستهای طولانی از ListView.builder استفاده کنید
زمانی که مشغول کار روی لیستهای نامتناهی یا لیستهای بسیار بزرگ هستید، معمولاً بهتر است از یک سازنده ListView استفاده کنید تا عملکرد کد را افزایش دهید. سازنده پیشفرض ListView کل لیست را به صورت یکباره میسازد. ListView.builder یک لیست کُند میسازد که وقتی کاربر اسکرول میکند، فلاتر ویجت را بسته به تقاضا میسازد.
از const در ویجتها استفاده کنید
ویجتی که در فراخوانی setState تغییر نمییابد، باید به صورت ثابت تعریف شود. این کار موجب میشود که ویجت از نو ساخته نشود و کارایی برنامه افزایش یابد.
سخن پایانی
امیدواریم نکاتی که در این مقاله در خصوص بهترین رویهها و ترفندهای فلاتر گفتیم، مورد توجه شما قرار گرفته باشد. رعایت این نکات موجب میشوند که کد شما خوانایی بیشتری پیدا کند و همچنین کارایی و عملکرد آن را نیز افزایش میدهند.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای پروژهمحور برنامهنویسی اندروید
- آموزش فریمورک Google Flutter برای طراحی اپلیکیشنهای موبایل
- مجموعه آموزشهای برنامهنویسی
- مفاهیم مقدماتی فلاتر (Flutter) — به زبان ساده
- گوگل فلاتر (Flutter) از صفر تا صد — ساخت اپلیکیشن به کمک ویجت
==