• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نام متغییر بسیار طولانی!!
#1
اخیرا این نوع جدید از نام متغییر را در پروژهء خویش افتتاح نمودیم:

‎$dont_enforce_autoloign_age_sever_side_when_change_autologin_key_upon_login_is_zero

خوب بید؟ Big Grin

راستش نام متغییر اینقدر طولانی در ادیتور برنامه نویسی هم یخورده مشکل سازه، ولی من اسم دیگری که بقدر کافی پرمحتوی و خوانا باشه و با رویه ای که در نامگذاری بقیهء متغییرهام پیروی کردم سازگاری کافی داشته باشه، به ذهنم نرسید.
اینطوری حداقل خود نام متغییر رو هرکجا که میبینم اطلاعات درموردش در خودش وجود داره و راحت و سریع میشه فهمید و به یاد آورد که داستان چی بوده.
ولی شاید یخورده دیگه زیادی طولانی باشه Confused
از طرف دیگر باید پرسید حالا اشکالش چیه مگه!
  پاسخ
تشکر شده توسط :
#2
و خداوند کامنت را آفرید Smile)
[عکس: logo-small.jpg]
  پاسخ
تشکر شده توسط : hamid_80386
#3
کامنت به خوبی self document بودن نیست.
اصلا جاش رو نمیگیره.
کامنت بجای خودش، اسمهای خوانا و پرمحتوی هم به جای خودش.
کامنت رو باید جاهایی گذاشت که اطلاعات بیشتر و جزیی تری میخوایم بدیم که در نام نمیشه گذاشت.
تازه کامنت بالاخره هزینهء و مشکلات تایپ و آپدیت هم داره. لزوما یک جا هم که نیست. میبینی واسه هرچیزی کامنت باید بذاری و ده جا، و یادت باشه اگر چیزی رو تغییر دادی کامنت ها رو هم آپدیت کنی. همش دردسر و ریسک میشه.
بخصوص برنامه که حجیم و پیچیده بود، اهمیت اینکه یه متغییر یا اسم تابعی چیزی رو هرجا در کد که میبینی خودش گویا باشه و حداکثر اطلاعات اساسی رو برسونه، بیشتر میشه.
  پاسخ
تشکر شده توسط :
#4
جسارتاً من فکر میکنم شما تا حالا درگیر پروژه جدی نشدید که وقت کم بیارید و کلاً بجای متغیر معنایی از a$ استفاده کنید Wink
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : Alaa
#5
یعنی این کار رو فقط من میکنم؟
یعنی برنامه های معتبر و برنامه نویسان دیگه به این روش نامگذاری نمیکنن؟
بعدم منظورت از پروژهء جدی چیه مثلا؟ چه معیاری داره؟
پروژهء سیستم رجیستر و لاگین من خودش کم حجم و پیچیدگی نداره و امکانات و انعطاف و امنیتش و کمال و دقت منطق و الگوریتم هاش هم چشمگیره. اصلا شاید یکی از برترین ها در دنیا باشه! چیزی سرتر سراغ داری معرفی کن Wink

مثل اینکه منظورت از پروژهء جدی اوناییه که برنامه نویساش وقت کم بیارن!!
اینطوری بود که الان همهء برنامه های درست و حرفه ای باید چپر چلاق میبودن Big Grin

نکنه فکر کردی اسم این متغییرها رو هی تایپ میکنم؟!
نه بابا در نوتپد++ یه دوبل کلیک میکنم روش سلکت میشه بعد ctrl+c بعد ctrl+v.
وقتی نمیبره.
من حتی اسمهای خیلی کوتاهتر رو هم که میشه راحت تایپ کرد کپی پیست میکنم اغلب چون اینطوری امن تره (اشتباه تایپی که از زیر دست در بره پیش نمیاد).
  پاسخ
تشکر شده توسط :
#6
نقل قول:پروژهء سیستم رجیستر و لاگین من خودش کم حجم و پیچیدگی نداره و امکانات و انعطاف و امنیتش و کمال و دقت منطق و الگوریتم هاش هم چشمگیره. اصلا شاید یکی از برترین ها در دنیا باشه! چیزی سرتر سراغ داری معرفی کن Wink
مثل اینکه منظورت از پروژهء جدی اوناییه که برنامه نویساش وقت کم بیارن!!
اینطوری بود که الان همهء برنامه های درست و حرفه ای باید چپر چلاق میبودن Big Grin
من اون پروژه رو ندیدم
ولی منظورم از پروژه جدی، پروژه ای هست که سر رسیدش دو روز دیگه س، ولی تو هنوز ده روز عقبی، ارباب رجوع هم دم به دقیقه زنگ میزنه و تو هم داری میگی همه چیز مرتبه و داریم طبق برنامه پیش میریم Wink اغلب تو کار به این مشکلات میخوریم
پروژه جدی چیزی هست که در نهایت تبدیل به پول بشه، شما هم اگه پروژه لاگینتون تا حالا پولی نشده، میتونی یه فکری به حال بیزینسش بکنی...

نقل قول:نکنه فکر کردی اسم این متغییرها رو هی تایپ میکنم؟!
نه بابا در نوتپد++ یه دوبل کلیک میکنم روش سلکت میشه بعد ctrl+c بعد ctrl+v.
وقتی نمیبره.
من حتی اسمهای خیلی کوتاهتر رو هم که میشه راحت تایپ کرد کپی پیست میکنم اغلب چون اینطوری امن تره (اشتباه تایپی که از زیر دست در بره پیش نمیاد).
واقعاً تو نوتپد++ کار میکنید؟ این دیگه حتی از شکل نامگذاریتونم غیر تجاری تر هست

گفتم غیر تجاری، باید بگم این شکل نامگذاری تو هیچ پروژه تجاری هم نیست، میتونید براحتی نگاه کنید سیستم های دیگه رو
به جرأت میتونم بگم در تمام دنیا فقط شما اینطوری نامگذاری میکنید
در ضمن به نظرم کامنت که دوستمون گفت خیلی بهتر هست
چون اینطوری که شما نامگذاری میکنید تو کدنویسی آبشاری کلی هم دردسر ایجاد میکنه و خوانایی برنامه رو بدتر پایین میآره
متغیرهای مهمتون رو اول برنامه تو کامنت ها مارک کنید...
البته بازم هرجور خودتون صلاح میدونید Smile
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#7
آدم می خواد کد رو بخونه نه اینکه مقاله در مورد محتویات متغیرت بنویسی Big Grin
document جای خودش self document جای خودش. self document یک ویژگی که داره اینه که با یک نگاه کردن می تونی درک کلی از موضوع داشته باشی و برای جزئیات بیشتر وارد داکیومنت میشی. ولی با این روش مزیت self document رو از بین بردی.
  پاسخ
تشکر شده توسط :
#8
منکه همش رو همیشه نمیخونم!
مثلا 4 خط بالاتر خوندم دیگه با دقت نمیخونم کلش رو.
کامنت هم اگر بود بالاخره هر چند وقت یک بار باید میخوندم یادم بیاد و مطمئن بشم داستانش چی بوده؛ حالا این خود متغییر کامنت خودشه و فرقش اینه هر زمان هرجا اراده کنم، در حین کار همون جایی که هستم، میتونم بخونمش و روش تمرکز مجدد بدست بیارم.

البته کلا این متغییر در کدم خیلی کم استفاده شده و بخاطر همین طولانی بودنش زیاد مشکلی نیست. اگر زیاد از اینطور اسمهای طولانی میخواستم داشته باشم باید فکری میکردم، چون کدها رو توی ادیتور زیاد جابجا میکنه و بهم ریخته میشه از توی یک خط میزنه بیرون چند خط میشه و این حرفا. دنبال کردن دستورات برنامه به این شکل مشکل تر و زمانبرتر میشه؛ یعنی باید کلی فقط نگاه کنی ببینی انتهای اون متغییر کجاست Big Grin

قاعده در هر چیزی اینه که نیاز عملیش پیش بیاد.
مثل بهینه سازی که میگیم بهینه سازی زودهنگام و بر اساس تصور و حدس نکنید، اینجا هم وقتی مشکل جدی ای هنوز وجود نداره پس مشکلی نداره که یک مورد هم چنین کاری بکنم. حالا اگر موردش بیش از حد زیاد شد و مشکل عملی پیش اومد، انوقت براش چاره میکنم.

مسئلهء اول سرعت و راحتی کدنویسی است.
هرجور آدم راحته میبینه برنامه رو اونطور سریعتر و راحتتر و با دردسر کمتری پیش میبره باید عمل کنه.
بخاطر همین هم من تونستم این پروژه رو که واقعا حجیم و پیچیده شده تموم کنم و هنوزم بعد از چند وقت که دوباره میام میخونمش و میخوام تغییر یا گسترشش بدم، میتونم این کار رو انجام بدم و برام خیلی سخت و زمانبر نیست. مثلا اسم متغییرها رو که میخونم همون جا همون موقع خیلی کمک میکنه به درک منطق برنامه و جزییات هرچیزی؛ با اینکه کامنت توی خود کدها تقریبا نذاشتم!
کامنت هم خوبه ولی ترجیحا self-document بودن خیلی بهتره.
برای کامنت باید مراجعه کنی جای دیگه (در هر بار هرجا یک متغییر رو بکار میبریم که کامنت رو هم همراش نمیذاریم؛ میذاریم؟) و از نظر جلوگیری از بهم خوردن تمرکز و مصرف زمان برای بیادآوری و این حرفا به اندازهء self-document بهینه نیست.
  پاسخ
تشکر شده توسط :
#9
شما چرا این پروژه رو بازمتن کردی؟ آیا یکی از دلایلش این نیست که بقیه در توسعش شرکت کنن؟ یا اینکه در توسعه نرم افزار یکی از مبانی این نیست که یک برنامه نویس دیگه بتونه روی کدهاش شما کار کنه؟
ببین مسائلی که داری مطرح می کنی خیلی وقته مطرح شده و به همین روشی که شما پیشرفتی خیلی ها پیش رفتن و شکست خودرن. به همین خاطر هست که قوانین نوشتن کد تمیز نوشته شده. قوانین PSR به همین دلیل نوشته شده. phpdoc به همین دلیل نوشته شده.
شما این کد رو می نویسی هر جا خواستی متغیریت رو کپی و پیست می کنی و کدت کار می کنه. ولی مطمئن باش اگر مثلا من اومدم روی کدت کار کردم به دلیل نا آشنایی با قوانین تو خیلی سخت میشه بخوام کار کنم.
اما من چه جوری کد نویسی می کنم.
قوانین PSR رو (تا حد لازم رعایت می کنم) تا توسعه دهنده بعدی که با PSR آشنا هست و اکثر فریم ورکها و کدهای جدید استانداردهای PSR رو رعایت می کنن آشنا هست بتونه کدها رو به خوبی بخونه. و از طرف دیگه نحوه نگارش کدهام یکپارچه باشه
از phpdoc استفاده می کنم
اسم متغیرها رو کوتاه و به روش camel case می نویسم. اینجوری اسم متغیر کوتاه تر میشه و چون گوتاهتر میشه سریعتر خونده میشه. اسم بلند باعث میشه برنامه نویس بعدی یا خودم مدت زمان زیادی رو صرف خوندن اسم متغیر ها بکنم. اگر برنامه نویسی اطلاعات اینکه این متغیر چیکار می کنه رو بخواد می تونه به داکیومنت مراجعه بکنه. اگرم سریعتر می خواد به نتیجه برسه از یک ادیتوری استفاده بکنه که بتونه اطلاعات phpdoc کدها رو پردازش بکنه. اینجوری حین کد نویسی اطلاعاتش رو بهش نشون میده.

البته این موضوع زمانی سلیقه ای میشه که شما کدت رو بخوای فقط خودت توسعه بدی. اگر بخوای کاربرهای دیگه در توسعش شریک بشن باید یک سری قوانینی رو در نظر بگیری که کاربر دیگه سریعتر و بهتر به منطق کد شما برسه.
  پاسخ
تشکر شده توسط : hamid_80386
#10
د نه دیگه!
من این پروژه رو واسه اهداف شخصی نوشتم.
اینکه بازمتن منتشرش کردم بخاطر مسائل دیگری بود.
یکیش اینکه از دیگران در توسعش کمک و راهنمایی های قابل توجهی گرفتم.
در همین فروم یادتون باشه خودتون باهام همکاری و راهنمایی هایی داشتید و بعضی ایده ها و اطلاعات خوبی در این بین عایدم شد.
بعد یکسری مسائل دیگه بهرحال.
اینم که آدم بازمتن منتشر میکنه بهرحال برای خودش و پروژش میتونه خیلی مفید باشه.
همین که ببینن و نظری ایرادی باگی چیزی بهرحال مفیده.
لزومی نداره آدم در بند بیش از این و اون چیزهایی که میگی باشه. من که نبودم و نیستم!

هان راستی این PSR که گفتی چی بیده؟ Big Grin
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان