عرض سلام خدمت بازدیدکنندگان عزیز.
در مقالهی قبلی به اهمیت کدنویسی تمیز و برخی راهکارها برای خوانا شدن کدها پرداختیم.
از اونجایی که این موضوع از اهمیت نسبتا بالایی برخورداره، تصمیم گرفتیم تا سلسله مقالات آموزشی در زمینه کدنویسی رو منتشر کنیم.
در قسمت صفرم از این مقالات قراره که با پایهای ترین اصول و نگرش در کدنویسی تمیز آشنا بشیم. با ما همراه باشید.
ایده ی کلیدی و اساسی: آسان بودن کد
همونطور که در ابتدای مقاله هم ذکر شد، در این قسمت قراره که به نوعی طرز نگرش در کدنویسی تمیز بپردازیم.
برخی از برنامهنویسان فکر میکنند که جزء انسانهای باهوش و خفن هستند و همین موضوع ممکنه در کدنویسی اونا هم اثر بذاره و مثلا کدهاشون رو رمز آلود بنویسند. به خیال خودشون ممکنه کدهای خفنی نوشته باشند اما از طرفی آیا این کدهایی که نوشتند رو بقیه هم میتونند متوجه بشند؟ ممکنه طرف یه برنامهنویس فریلنسر باشه و به صورت تیمی کار نکنه و انفرادی باشه و استدلالاش اینه که کدهای خودش رو میتونه متوجه بشه. اما یه سوال… اگه بعد از گذشت چند ماه اون برنامهنویس دوباره سراغ کدهای خودش بیاد آیا متوجه منطق اون میشه؟ یا اینکه مجبوره دوباره از اول زمان بذاره و کدها رو متوجه بشه؟
در اینجا قصد دارم که مهمترین اصل و ایدهی اساسی در کدنویسی رو بگم و اون هم آسان نوشتن کدها هستش. شما به عنوان یه برنامهنویس باید تا اونجایی که میشه کدهاتون رو سادهتر بنویسید و تا اونجایی که میشه از پیچیدگیها دوری کنین. جوری کدهاتون رو بنویسید که حتی یه آدم با آی کیو پایین هم بتونه کدهاتون رو متوجه بشه 🙂
در واقع کل چیزی که میخوایم در زمینهی کدنویسی تمیز بگیم همین ساده نویسی هستش و در ادامه قصد داریم تا طی سلسله مقالات آموزشی به صورت جزئیتر این موضوع رو مورد بررسی قرار بدیم و اونا رو با مثالهای بیشتری توضیح بدیم.
بررسی یک مثال
یه سوال! آیا کدنویسی تمیز همیشه به معنای کوتاه نویسی هستش؟ یعنی مثلا فرض کنید دو تا برنامه دارین که خروجی یکسانی دارند اما یکی از اونها شامل ۲۰ خط و دیگری شامل ۳۰ خط هستش. آیا لزوما یه کد خوانا و تمیز یه کد با حجم کمتر هستش؟ برای اینکه این موضوع روشنتر بشه بیاید مثال زیر رو بررسی کنیم.
assert((!(bucket = FindBucket(key))) || !bucket->IsOccupied());
در ادامه یه نمونه کد دیگه اورده شده که به نوعی مثال قبلی رو بازنویسی کرده.
bucket = FindBucket(key);
if (bucket != NULL) assert(!bucket->IsOccupied());
به نظر شما کدوم یکی از این دو مثال بالا خواناتر هستند؟
با کمی بررسی میتونید متوجه بشین که مثال دوم خواناتر هستش. اگرچه مثال دوم تعداد خطهای بیشتری داره اما زمان مطالعهی اون نسبت به مثال اول کمتر هستش. پس ملاک خوانایی تنها حجم کد نیست!
به عبارتی میتونیم بگیم مهمترین اصل اساسی در کدنویسی تمیز کمینهکردن زمان مطالعه و بررسی کدهاست. یعنی هر چه قدر کدهای شما زمان کمتری رو برای مطالعه و خوندن بگیرن خواناتر هستند و لزوما کدهای با حجم کم خوانا نیستند. چون ممکنه حجم یه کد نسبتا کم باشه اما از طرف دیگهای زمان بیشتری برای درک اون صرف بشه.
نظریه اساسی کد خوانا
کد باید به نحوی نوشته شود که زمان خواندن برای درک آن را به حداقل برساند.
سخن پایانی
این پست زیاد طولانی نبود و فقط سعی کردم تا یه مقدمه ای از کدنویسی تمیز و یه نظریه اساسی رو مطرح کنم. در مقالات بعدی، به بررسی مثالهای بیشتری و همچنین چگونگی به کارگیری اصول کدنویسی خوانا صحبت خواهیم کرد.
در پایان خوشحال میشم که نظرات خودتون رو درباره این پست بنویسید.
آشنایی با مفاهیم کدنویسی تمیز + راهکارهای کاربردی برای نوشتن کدهای خوانا
