امروز تو این مقاله در باره فولدراستراکچرصحبت کنیم و بیایم بگیم اقا ما باید چجوری اپ رو سروسامون بدیم که به مشکل نخوریم ! ?
ساختار فولدر ها بستگی بسیار زیاد به معماری و استیت منیجی که استفاده میکنید داره و این موارد رابطه نزدیکی به هم دارند، حالا یه سوال ؟ اصلا چرا فولدر استراکچر ؟ چرا معماری ؟ (در مورد این مقاله های جداگانه خواهیم داشت
در ابتدای مقاله لازم به ذکر که ما اصلا کاری به نوع معماری نداریم و موارد کلی و عامیانه ان را مورد برسی قرار میدهیم و برای معماری ها و فولدر استراکچر انها در اینده مورد برسی قرار میدهیم
جواب خیلی سادس ! فرض کنید به عنوان یه توسعه دهنده اپ های موبایل یه پروژه ای رو زدین و کار میکنه و مشکلی نداره اما کار فرما تصمیم به اپدیت میگیره و میخواد که شما براشون یه سری قابلیت هایی پیاده کنی و به اپ اضافه کنید و از زمانی که شما ان اپ را ساخته اید یک سالی میگذر و سطح شما نسبت به ان زمان که اپ توسعه دادید بسیار بالاتر رفته و حالا وقتی که سورس که خودتان با دست های خودتان تایپ کردین باز میکنید و زمانی که شروع به خواندن ان میکنید یه همچین حالتی برایتان پیش می اید
برای اینکه این حالت بهتان دست ندهد باید به گونه ای کد بزنید که اگر توسعه دهنده دیگری اون سورس را باز کرد بتواند از ان سر در بیارد
یکی از مواردی که به این داستان کمک می کن استفاده از یک ساختار مشخص است که به شما کمک بسازایی میکند تا دفعه بعد که کد را باز میکنید یا اینکه کسی دیگر ان را باز میکند بتوانید از نوع کارکرد ان سر در بیاورید
همانطور که گفتم ساختار فولدر ها ارتباط بسیار نزدیکی به معماری که استفاده میکنید دارد و انشالله در مقاله های دیگه به مبحث معماری می پردازیم و انهارا مفصل برسی میکینم
بریم سراغ اصل مطلب
در این مقاله قرار نیست باهم کد بزنیم و فقط به ساختار میپردازیم ،
در ساختار بندی معمولا به دید توسعه دهنده مربوط میشود که چگونه ساختاری ایحاد کند ابتدا به سراغ مواردی میرویم که اکثرا افراد از ان استفاده میکنند و مشترک است !کی از موارد مشترک هست که معمولا درون انها کد هایی استفاده میشود که قرارا است همه جا تکرار بشن و همیشه const رو پسوند خودشون داشته باشن، به طور مثال مسیر و نویگیشن ها(اگه دوس داری مثل حرفه ای ها نویگیشن یاد بگیری این مقاله منو بخون ) که نام انها را در این قسمت مینوسند و یا رنگ های خارجی مورد استفاده که بیلت این وجود ندارند یکی از موارد پیشنهادی من این است که یک کلاس برای این موارد بسازید و موارد ان را استاتیک قرار بدهید تا بتوانید به انها جامع و کامل دست رسی داشته باشد به طور مثال نمونه کد و نمونه فولدر دقت کنید برای مشخص کردن این موارد بهتر از یک حرف برای انها به عنوان امضا استفاده کنید به طور مثال برای کانستنت ها (constant)از حرفk استفاده کنید به عکس توجه کنید
در اینجا ما از تکرار نوشتن یکسری کانستنت ها جلوگیری کردیم و باعث شد بدانیم که کد های فونت و کانستنت ها کجا قرار دارد و حتی شما میتوانید برای بهتر کردن بیاید و فولدر کانستنت را به فولدرهای زیر مجموعه هر بخش تقسیم کنید و فایل های هر بخش را در فولدر خودش قرار بدهیبد یعنی اگر کانستنت هایی برای ورود و ثبت نام دارید بیایید یه فولدر به نام authConstans در اون بخش باز کنید و
کد های ان را انجا قرار دهید این روش که من بیان کردم باعث جدایی مواردی میشود که میتوانند از هم جدا باشند و ضاهر و خوانایی کد بالا برود
قدم بعدی ما جدا سازی ویجت های پر تکراری هستند که کد های بسیار زیادی برای ساخت یک دونه از انها می برد و اگر در مکانی بخواهیم از ان ویجت ها تعداد بسیار زیادی بسازیم به شدت میزان خط کد را بالا میبریم و خوانایی ان را پایین ! این موضوع که گفتم خیلی به خوانایی کد و تمیزی کمک میکند برای این موضوع ما برای قسمت های پر تکرار یک کلاس جداگانه میسازیم و کد های ان را در این فایل میسازیم و هرجا که نیاز به ان ویجت داشتیم نام کلاس صدا میزنیم و فقط نمونع سازی میکنیم :)
به طور مثال قطعه کد زیر برای فقط برای یه تکست فیلد است که کد های ان را درون یک کلاس گذاشتم و مقادیر که هر دفه قرار به ست کردن ان بود را به سازنده دادم و فقط درجا هایی که میخوام اون کلاس صدا میزنم و مقدار ها ست میشوند دیگر نیاز به نوشتن همه این ها نیست :)
ع
خوب خوب الان وقتشه که بریم سراغ یه بخش دیگه و اونجا رو جدا کنیم تا خوانایی و زیبایی کد رو افزایش بدیم و اونجا جایی جز assets نیست:)
فولدر assets جزو یکی از بخش هایی که شامل چیز هایی که دولوپر به برنامه اضافه میکنه و اگر مدیریتش نکنیم عین این میمونه که 1 کیلو عدس بریزیم قاطی نخود ها و لپه و بخواییم بیایم یه پیمونه عدس ورداریم و میبیند که اذیت کنندس و باید بشینید یکی جدا کنید فولدر assetsهم باید بخش بخش کنیم چجوری؟
خوب معمولا ما ایکون ها و عکس ها و فونت ها و حتی گاهن فایل های صوتی و تصویری قرار میدم و بخش بندی ما فولدر استس رو به بخش های image و fonts و medias تقسیم میکنیم و فایل های مربوطه رو میزاریم اونجا و حالا فولدر استس ما هم بخش بخش شده به شکل زیر درمیاد
خوب دوستان امیدوارم که تا اینجای مقاله براتون خوش ایند بوده باشه و برای اینکه مطالب این بخش زیاده و حوصله شما سر نره بقیه رو میزاریم برای قسمت دوم این مقاله که داخل اون به ساختار lib میپردازیم که یه بحث مفصل داره که بعدا برسیش میکنیم برای اینکه دلگرمی بهم بدین لایک و کامنت فراموش نشه و اگه نظری داشتین میتونید از طریق اینستاگرام بهم بگید و خوش حال میشم که شما موضوع سری بعدی مقاله رو مشخص کنید
تا مقاله دیگر به درود