آمو،زش اندروید

اینجا خلاصه ای از نکات یادگیری فناوری اطلاعات بصورت کاربردی آموزش داده می شود

چگونه متغیرها را نامگذاری کنیم؟

این مطلب برای آموزش نامگذاری متغیر ها و کلاس ها و توابع است و در مورد این که چگونه انتخاب نام ما باعث تمیز تر  شدن کد ما می شود صحبت خواهیم کرد.
انتخاب نام مناسب یکی از ابتدایی ترین اصولی است که برای تمیزی کد باید آن را رعایت کنیم. کد نویسی تمیز بسیار اهمیت دارد زیرا که باعث می شود که سایر اعضای تیم و یا سایر انسان ها بتوانند کد شما را بخوانند. جمله ای از زبان یکی از برنامه نویسان بزرگ هست که می گوید:
 "هر احمقی می‌تواند کدی بنویسد که کامپیوتر درک کند. برنامه‌نویسان خوب کدی می‌نویسند که انسان‌ها درک کنند." 

سرفصل های این مطلب
  1. نام خوب نامی است که قصد و هدف را مشخص کند
  2. از نامگذاری گمراه کننده پرهیز کنید.
  3. از  نام هایی که خیلی شبیه به هم هستند استفاده نکنید.
  4. در تعریف متغیر ها از سری عددی استفاده نکنید.
  5. از نامگذاری با معنی و قابل تلفظ استفاده کنید.
  6. انتخاب نام کلاس و تابع
  7. نام گذاری با توجه دامنه استفاده
  8. صریح کد بنویسید

پس بهتر است که این اصول رعایت شود تا کد ما خوانا تر باشد و همانطور که گفتم یکی از ابتدایی ترین بخش های آن انتخاب نام صحیح می باشد. 

نام خوب نامی است که قصد و هدف را مشخص کند

نام هایی که ما برای موجودیت های برنامه (متغیر، کلاس، تابع) انتخاب می کنیم باید نشان دهنده قصد و هدف ما از آن موجودیت باشد. یعنی نامی را که انتخاب کرده ایم به ما می گوید که اولا چرا چنین موجودیتی وجود دارد ثانیا چه کار می کند و ثالثا چطوری از آن استفاده می شود. دقت کنید که اگر نامگذاری شما برای رساندن منظور خود نیاز به کامنت گذاشتن دارد بدانید که آن نامگذاری درست نیست و باید نام آن موجودیت را تغییر دهید. مثلا نامگذاری زیر اشتباه است:

int d; // elapsed time in days 

بهتر است که نام متغیر بالا را به شکل زیر تغییر دهیم.

int elapsedTimeInDays;

شاید بگویید که این نامگذاری باعث طولانی شدن نام متغیر ما می شود و تایپ کردن آن زمانبر بوده و باعث پایین آمدن سرعت ما خواهد شد. دقت کنید که با ادیتور ها و IDE های موجود این بهانه کاملا رد می شود زیرا با قدرت و هوشمندی که ابزار های برنامه نویسی دارند لازم نیست که شما نام کل متغیر را تایپ کنید. اما مقدار شفافیتی که این نام با نام قبلی دارد بسیار زیاد است. پس نگران طولانی بودن نباشید و به با معنی بودن بپردازید.

از نامگذاری گمراه کننده پرهیز کنید.

برای انتخاب نام نباید نام هایی استفاده کنید که کسی که کد شما را می خواند به اشتباه بیاندازد و یا سرنخ غلط به او بدهد. مثلا ممکن است که اسم یک متغیر hp قرار داده شده باشد. خب با توجه به معروف بودن hp مشخص نیست که این متغیر دقیقا به چه منظور ساخته شده است و هدف ساختن آن چه بوده است. همچنین اگر مجموعه ای از دانش آموزان دارید که همه آنها را در متغیری به نام studentList ذخیره کرده اید دقت داشته باشید که نوع این متغیر حتما باید از نوع List باشد و آرایه یا ساختمان داده ی دیگری نباشد زیرا که خواننده را به اشتباه خواهد انداخت. اگر نوع متغیر این مجموعه دانش آموزان از نوع لیست نیست پس نام دیگری مانند students برای آن انتخاب کنید تا گویای مطلب باشد و گمراه کننده نباشد.

از  نام هایی که خیلی شبیه به هم هستند استفاده نکنید.

استفاده از نام هایی مانند عبارات زیر ممنوع است.

XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings  

زیرا که بخش بزرگی از این دونام شبیه به هم هستند و همین امر باعث می شود که چشم های خواننده خسته شود و یا برنامه نویسان دیگر آنها را به جای همدیگر استفاده کنند که باعث دردسر خواهد شد. همچنین استفاده از L کوچک و o بزرگ به خاطر این که ممکن است که با اعداد 1و 0 اشتباه گرفته شود ممنوع است. همچنین استفاده از عباراتی مانند klass که همان کلاس است ولی به خاطر کلمه کلیدی بودن با k نوشته شده است تا کامپایلر خطا نگیرد نیز کار درستی نیست.

در تعریف متغیر ها از سری عددی استفاده نکنید.

استفاده از سری عددی به دنبال یک حرف کار بسیار کثیفی است مثل a1,a2,a3,…. با این که این نام ها گمراه کننده نیستند ولی هیچ قصد و منظوری را مشخص نمی کنند و هیچ اطلاعی از متغیر و استفاده از آن را به ما نمی دهند. دقت داشته باشید که نام متغیر باید به 3 سوال گفته شده در بالا پاسخ دهند.

از نامگذاری با معنی و قابل تلفظ استفاده کنید.

کسی که کد شما را می خواند باید کد شما برایش مانند یک نوشته جذاب و قابل فهم باشد مثلا نامی مثل gwda را نمی شود تلفظ کرد و همچنین برای خواننده هیچ معنی خاصی ندارد. همچنین نام getYYYYYY اسمی واقعا بد و بدون معنی می باشد.

همچنین از پیشوند هایی که به پیشوندهای لهستانی معروف هستند و در زبانهای قدیمی رایج بوده اند استفاده نکنید. مثلا استفاده از حرف c قبل از نام کلاس و یا _ قبل از نام فیلد داخلی واقعا کار اشتباهی است و نباید استفاده شود.

انتخاب نام کلاس و تابع

نام کلاس ها را از اسم ها انتخاب می کنیم مانند Account, Employee, Student, Message و نام توابع را به صورت فعل دستوری می نویسیم مثل GetAge و یا InsertName 

نام گذاری با توجه دامنه استفاده

اگر متغیری داریم که در یک بخش 3 خطی و کمتر استفاده می شود می توانیم نام آن را کوتاه انتخاب کنیم ولی اگر دامنه استفاده از این متغیر بیشتر از 3 خط است باید نام آن را کامل بنویسیم. پس طول نامگذاری متغیر با اندازه دامنه رابطه مستقیم دارد ولی برای نام کلاس و متد این قضیه به صورت عکس عمل می کند. مثلا هرچه یک متد یا کلاس عام تر باشند بهتر است نام آن کوتاه تر باشد. مثل open یا close که هم برای فایل ها و هم برای دیتابیس و هم برای سوکت ها استفاده می شود. ولی در دامنه های کوچک بهتر است که نام ما کامل باشد تا منظور ما کامل انتقال داده شود.

در نامگذاری کلاس های ارث بری شده می توان یک صفت به نام آن اضافه کرد مثلا کلاس SavingAccount که از کلاس Account ارث بری کرده است. 

صریح کد بنویسید

از نام های جوک و شاعرانه و فلسفی و این چیز ها استفاده نکنید و صریح و واضح نام گذاری کنید مثلا نام abort درست است و استفاده از نامی مانند eatMyShorts به جای آن غلط است. درکدتان مزه نریزید و ضرب المثل نزنید و با کدتان لاس نزنید.

برای هر منظور از یک نام مشخص استفاده کنید. مثلا fetch و get, retrieve تقریبا مشابه هم هستند ولی تصمیم بگیرید که در برنامه از یکی استفاده کنید و به آن پایبند باشید و آن را عوض نکنید. عکس قضیه رو هم رعایت کنید. از یک نام  برای چند منظور استفاده نکنید و از قاعده هر کلمه فقط برای یک مفهوم استفاده کنید.

کدی که شما می نویسید توسط برنامه نویس ها خوانده خواهد شد. پس مشکلی ندارد که از نام های معمول رشته کامپیوتر استفاده کنید مثل jobQueue . با دیدن این اسم برنامه نویس خواهد فهمید که یک ساختمان داده صف برای job ها در نظر گرفته شده است.

در کد نوشته شده می توان از نام های موجود در problem domain هم استفاده کر مثلا اگر سیستم حسابداری می نویسید می توانید از نام های معمول در حسابداری استفاده کنید.

مطالب گفته شده از کتاب clean code uncle bob آورده شده است.برای درک بهتر مفاهیم این مقاله دوره های زیادی وجود دارد که به مراجعه به آنها درک عمیقی خواهید داشت.

مکانیزم آموزش برنامه نویسی جاوا در این دوره در قالب سناریو محور و کارگاهی با کامل کردن پروژه های دنیای واقعی می باشد.در این آموزش زبان برنامه نویسی جاوا از ابتدایی ترین موارد شروع کرده و تا پیشرفته ترین موارد آموزش می دهد. شما اگر هیچ آشنایی قبلی با زبان برنامه نویسی جاوا هم نداشته باشید با مشاهده این دوره آموزشی می توانید تبدیل به یک برنامه نویس Java شوید. مقدماتی تا پیشرفته بودن دوره اولین نشانه از جامع بودن دوره آموزشی جاوا  است.

مکانیزم آموزش برنامه نویسی اندروید  | Android ای که در این دوره بکار گرفته شده است در قالب سناریو محور و کارگاهی است و شما با کامل کردن پروژه های برنامه نویسی موبایلی که می توانید عملا در طی دوره بنویسید و از آنها روی گوشی خود استفاده کنید ، برنامه نویسی را آموزش می بینید. شما اگر هیچ پیش زمینه خاصی در یادگیری برنامه نویسی موبایل در اندروید هم نداشته باشید با مشاهده این دوره آموزشی تبدیل به یک برنامه نویس اندروید حرفه ای می شوید . این اولین نشانه از جامع بودن آموزش Android Programming ای است که شما در آن حضور دارید.

 

۰ ۰