3. خوانایی
تقریباً خوانایی کد شما به همان اندازه نتایج آن اهمیت دارد.
احتمال نمیرود که اسکریپتی را فقط برای یکبار بنویسید و بعد فراموشش کنید. اگر چنین باشد، باید آنرا اجرا نموده و سپس حذف کنید. اگر خیال دارید استفاده از آن را ادامه دهید،باید طرحی برای نگهداری از آن داشته باشید. برخلاف اطاقتان، کدهای شما نمیتوانند زمان زیادی کثیف باشند، اما شما به طور دائم رویکردها و شیوههای نوینی فرا میگیرید. همچنین بینش جدیدی در خصوص چگونگی کابرد اسکریپت خود به دست میآورید. تمام اطلاعات جدیدی که حین تکمیل کد ابتدایی خود به دست میآورید، باید به طریقی در حفظ و نگهداری کد شمابه کار گرفته شود، که به طور مداوم آن را بهبود بدهد. کد شما بایستی در جهت کاربر محوری و پایداری بیشتر رشد کند.
- به من اعتماد کنید وقتی میگویم، هیچ بخشی از کد، هرگز 100% تکمیل نیست، به استثنای، برخی کدهای خیلی کوتاه و عاری از فایده .
برای اینکه سالم نگهداری کدهایتان را آسانتر نمایید و به طور مرتب آنها را اصلاح کنید، باید نگاهتان را متوجه خوانایی آنچه مینویسید، بنمایید. وقتی پس از مدت طولانی، به اسکریپتی که از آخرین بازبینی آن یکسال گذشته، باز میگردید و میخواهید آن را اصلاح کنید، یک ویژگی جدید اضافه کنید، یا اشکالی را در آن رفع نمایید، مرا یاد کنید که میگویم ترجیحاً این مورد را ببینید:
1 friends =( \"Marcus The Rich\" \"JJ The Short\" \"Timid Thomas\" \"Michelangelo The Mobster\" )
2
3 # مطالب مهمی در باره دوستانم میگوید
4 for name in \"$ { friends [@] } \"; do
5
6 #(اولین دوست من (در لیست
7 if [[ $ name = $ { friends [0] } ]] ; then
8 echo $ name was my first friend.
9
10 # شروع میشود M دوستان من که نامشان با
11 elif [[ $ name = M* ]] ; then
12 echo \"$ name starts with an M\"
13
14 # دوستان کوتاه من
15 elif [[ \" $ name \" = * \" Short \"* ]] ; then
16 echo \"$ name is a shorty.\"
17
18 # دوستانی که زحمت بخاطر سپردن آنها را نمیکشم
19 else
20 echo \"I kind of forgot what $ name is like.\"
21
22 fi
23 done
تا اینکه با موردی مشابه این روبرو شوید:
1 x=( Marcus\\ The\\ Rich JJ\\ The\\ Short
2 Timid\\ Thomas Michelangelo\\ The\\ Mobster)
3 for name in \"${x[@]}\"
4 do if [ \"$name\" = \"$x\" ]; then echo $name was my first friend.
5 elif
6 echo $name | \\
7 grep -qw Short
8 then echo $name is a shorty.
9 elif [ \"x${name:0:1}\" = \"xM\" ]
10 then echo $name starts with an M; else
11 echo I kind of forgot what $name \\
12 is like.; fi; done
و بله، میدانم که این مثال کمی اغراقآمیز است، اما من بعضی کدهای معتبری را دیدهام که واقعاً شباهت بسیاری به مثال اخیر دارند.
برای سلامت خودتان این چند نکته را به یاد داشته باشید:
فضای سفید مناسب به شما فضای تنفس میدهد. کدهایتان را به طور صحیح و نامتناقض دندانهدار نمایید. از سطرهای خالی برای جداکردن پاراگرافها یا بلوکهای منطقی استفاده کنید.
از پوشش با کاراکتر
اجتناب کنید. استفاده زیاد از این کاراکترِ گریز، موجب حواسپرتی و آشفتگی ذهنی میگردد. حتی در مثالهای کوچک، تقلای ذهنی بیشتری برای فهمیدن a\\ b\\ c نسبت به \'a b c\' صرف میشود.\\ روش تفکرتان را، یادداشت کنید، قبل از اینکه آن را فراموش کنید. ممکن است دریابید، کدی که کاملاً متعارف حس میشود، میتواند موضوع \"چه جهنمی فکر میکردم، وقتی این را نوشتم؟\" یا \"تصور انجام چه کاری از این داشتم؟\".
سازگاری از ناراحتی ذهن پیشگیری میکند. در شیوه نامگذاری استوار باشید. در استفاده از حروف بزرگ سازگار باشید. در استفاده خود از ویژگیهای پوسته پایدار باشید. در کدنویسی، برخلاف اطاقخواب، خوبست ساده و قابل پیش بینی باشید.