تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Freestyle
چند سوال بنیادی برای برنامه نویسی در پروژه‌های بزرگ
پوریا شفیعی حل شده توسط پوریا شفیعی

سلام. سه تا سوال داشتم:

 

1) آیا View Binding به صورتیکه در این لینک توضیح داده شده به جای findViewById پیشنهاد میشه یا خیر؟ اگر نمیشه دقیق گفت بله یا خیر لطفا توضیح بدید که در چه مواردی یا کجاها بهتره استفاده بشه و کجاها نباید استفاده بشه.

 

2) در نامگذاری Viewها اینجوری رایجه که در فایل xml بصورت snake_case و در کلاس‌ها بصورت camelCase انجام میشه اما وقتی خود اندروید استودیو یک View رو نامگذاری میکنه حتی در xml هم camelCase نامگذاری میکنه، بهتر نیست همه جا camelCase نامگذاری کنیم؟

مثلا در مواردی که از ViewBindingی که گفتم استفاده میکنیم تفاوت در نام Viewها باتوجه به اینکه از نامگذاری مجدد در کلاس‌ها خبری نیست این تفاوت در نام‌ها در xml و کلاس‌ها خیلی توی سرچ در پروژه مشکل ایجاد میکنه.

 

3) به لحاظ نامگذاری حرفه ای، آیا ایرادی داره اگر تغییری در نامگذاری رایج xmlهای اکتیویتی‌ها و فرگمنت‌ها بدیم؟ برای مثال اگر نام اکتیویتی MainActivity باشه XML میشه activity_main، و با توجه به اینکه Layoutها پکیج بندی نمیشن تو پروژه‌های بزرگ با Layout‌های زیاد همیشه پیدا کردن فایل مورد نظر سخته، درسته همه اکتیویتی‌ها زیر هم و همه فرگمنت‌ها زیر هم نمایش داده میشه ولی این زیبایی و دو دسته کردن عملا کمکی به سرعت کار نمیکنه، حتی زیبایی آنچنانی ای هم به نامگذاری فایل‌ها نمیده. من عادت دارم اینجوری نامگذاری میکنم: main_activity، students_activity، students_fragment، students_dialog و اتفاقا باعث میشه مثلا اگر پنج Layout مرتبط با student داریم همه زیر هم نمایش داده بشه که این دسته بندی مفیدتریه نسبت به دسته بندی پیشفرض. میخواستم نظر حرفه ای در این مورد رو بدونم.

سلام وقت بخیر علیرضای عزیز

 

1-بله بهتره که از view binding بجای findViewById و یا synthetic استفاده کنید و نکته ای که هست ربطی به کوچک یا بزرگ بودن پروژه ندارند.

در زیر چند لینک رو براتون قرار میدم که چرا از view binding استفاده کنیم.

 

لینک 

لینک2

لینک3

2-این مورد واقعا بستگی به خودتون داره و شرکتی که کار میکنید(قراردادی هست) مثلا sample‌های گوگل هم بررسی کنین میبینین به دو شیوه نامگذاری کرده.

3-درمورد این سوال حداقل من ندیدم کسی یا سمپلی چنین نامگذاری رو انجام بده حتی وقتی ما یک اکتیویتی یا فرگمنت هم میسازیم نام گذاری به شکل activity_main برای لیوت مد نظر صورت میگیره

اما در هر حال اگر شما در شرکتی کار کنید طبیعتا چون این موارد یک سری قرارداد بین برنامه نویس‌ها هست همه رعایت میکنند اما اگر پروژه خودتون هست طبیعتا هر طوری که دوست دارید میتونید نام گذاری رو انجام بدید.

بهترین پاسخ
پوریا شفیعی ۰۲ اسفند ۱۳۹۹، ۱۱:۵۲