آداب برنامه‌نویسی که نباید نادیده گرفت

تا به حال به این فکر کرده‌اید که منظور ما از آداب چیست، این آداب چرا ایجاد شده و چرا وجود آن‌ها در زندگی روزمره ما لازم است؟بسیارخوب، من می‌خواهم یک سخنرانی کوتاه در این باره داشته باشم لطفا ۳۰ ثانیه تحمل کرده و بعد از آن مستقیم به موضوع خواهیم پرداخت.جان جانسون: ابتدا مساله را حل کرده سپس کد را بنویسید.آداب«دستورالعمل مرسوم از رفتار مودبانه در جامعه یا در میان اعضای یک حرفه یا گروه خاص»موجودات بشری در واقع حیوانات اجتماعی هستند و این وظیفه اصلی ما است که نسبت به سایر افراد محتاطانه برخورد کرده و آن ها را با رفتار غیرمنطقی و بی‌ادبانه خود نرنجانیم بنابراین حتی اگر هیچ‌ کس شما را وادار به حفظ و اجرای یک دستورالعمل نکرد، این وظیفه شما به عنوان یک انسان خوب است که رفتار مودبانه خود را حفظ کنید یعنی اگر واقعا می‌خواهید در آرامش در این جامعه زندگی کنید باید این مورد را رعایت کنید.بسیار خوب، چرا من دارم در مورد آداب صحبت می‌کنم؟بله شاید به نظرتان عجیب باشد (اگر تازه کار هستید) اما ما کدنویس‌ها هم در هنگام کدنویسی برخی از آداب را رعایت می‌کنیم. اگر می‌خواهید یک برنامه‌نویس/ کدنویس خوب باشید، هرگز نباید این آداب را نادیده بگیرید.بیایید نگاهی بر برخی از آداب محبوب برنامه نویسی بیاندازیم که کمک می‌کنند کد شما خواناتر و ساختار یافته تر شده (قطعا ظاهر بهتری از قبل خواهند داشت) و باعث بالاتر رفتن احترام شما در میان جامعه برنامه نویسان شود.فاصله گذاری مناسبمن برنامه نویسان مبتدی زیادی دیده‌ام که هنگام کدنویسی بدون توجه به رعایت فاصله ‌ها و افزودن فضای خالی به ابتدای خط، فقط شروع به کدنویسی می‌کنند. معمولا کدهای آن‌ها چیزی شبیه به این است:این فقط ۱۴ خط کد است بنابراین خیلی اهمیت ندارد. اما حالا فرض کنید زمانی گذشته است و به آن‌ها پروژه‌ای محول می‌شود. آن پروژه ممکن است شامل ۲۰۰۰ خط کد باشد. فقط تصور کنید با این وضع، کدها چقدر نامنظم و آشفته خواهند بود. من که حتی از فکر کردن به آن هم وحشتزده می‌شوم.بنابراین به نظر من اولین و مهم ‌ترین چیزی که اساتید باید پس از برنامه‌ی Hello, World! آموزش دهند نحوه‌ی نوشتن یک کد تمیز است. کد تمیز و منظم شبیه یک شعر است که به خوبی نوشته شده و هر برنامه ‌نویسی می‌تواند آن را به آسانی خوانده و بفهمد.چقدر این کد زیباست اینطور نیست؟بله، بنابراین بیایید یک تصمیمی بگیریم، «ما کدنویسان همیشه فاصله‌ گذاری مناسب را رعایت خواهیم کرد.» در حال حاضر دادن ۲ یا ۴ فاصله در هر خط، فاصله ‌گذاری مناسب محسوب می‌شود. علاوه بر این، دلایل بسیار دیگری برای نوشتن کد‌های دارای فاصله‌ گذاری مناسب وجود دارد. فاصله گذاری مناسب باعث می‌شود کدهای شما به راحتی خوانده، فهمید، اصلاح و نگهداری شود.ساختارهای دایرکتوری درختیهر زمان پروژه ای را بر عهده گرفتید، یک اصل بنیادین را در ذهن داشته باشید. اینکه قرار نیست تمام کدها را در یک فایل بنویسید. شما باید از فایل ‌های مختلف برای اهداف مختلف استفاده کنید. بهترین کار این است که یک ساختار دایرکتوری درختی، درست همانطور که در نمودار زیر آمده است درست کنید:ایجاد یک ساختار دایرکتوری خوب باعث می‌شود کدها بسیار کارامدتر باشند. وقتی در حال انجام یک پروژه بزرگ هستید، حفظ یک ساختار خوب و مناسب باعث صرفه ‌جویی در وقت در زمان جستجو برای فایل های مورد نیاز می‌شود.استفاده از کامنتبه نظر من، این یکی از مهم‌ ترین آداب کدنویسی است. خیلی از اوقات پیش می‌آید که افراد مشغول کدنویسی بوده و آن را با عجله به پایان می‌رسانند و وقتی پس از مدتی (مثلا یک ماه) دوباره به کدها مراجعه می کنند اصلا سر در نمی‌آورند هدف از نوشتن آن کد چه بوده است.بهترین کار این است که برای هر تابع یا ماژولی که می‌نویسید یک کامنت بگذارید. این کار در حوزه دیباگ کردن کد‌ها در هنگام ایجاد خطا بسیار مفید و کارامد است. اگر برای هر کد ویژه‌ای که می‌نویسید یک کامنت ایجاد کنید، این کار کمک می‌کند بفهمید در هنگام وجود باگ، مشکل کار از کجاست.عادت کامنت‌‌ گذاری را در خود ایجاد کنید چون آن‌ها به هر کسی (منجمله خودتان در آینده) کمک می‌کند کدها را نگهداری، بازسازی و توسعه دهید.کدهای خود را مستند کنیدوقتی یک برنامه‌نویس هستید، هرگز فراموش نکنید که مستندات کافی و مناسب برای کدهای خود ایجاد کنید. هدف از مستندسازی کدها قابل استفاده بودن آن برای هرکسی است که می‌خواهد از کد منبع شما استفاده کند اما نمی‌خواهد آن را بخواند.بیایید مثالی را در نظر بگیریم. فرض کنید شما یک برنامه نویس بک اند (سمت سرور) هستید و به تازگی یک API ایجاد کرده‌اید و یک برنامه‌نویس فرانت اند (سمت کاربر) می‌خواهند از آن برای اهداف مشخصی استفاده کند. حالا اگر شما مستندات مناسب و کافی برای کد خود ایجاد نکرده باشید، او مجبور است تمام کد شما را بخواند که کاری بی‌فایده و وقت‌ گیر است. برای جلو‌گیری از این کار، وظیفه اخلاقی برنامه‌نویس API این است که مستندات مناسب را برای اجرای کد خود ایجاد کن. برای مثال اسکرین شات زیر را ملاحظه کنید که از کتابخانه mongoosejs گرفته شده است و دارای مستندات فوق ‌العاده‌ای است.همه جا از foobar استفاده نکنیداگر شما یک برنامه نویس کاملا مبتدی باشید احتمالا از اینکه کلمه foobar چیست هیچ اطلاعی نداشته باشید. عباراتی مانند foobar، foo، bar و baz در واقع جایگزین ‌های رایجی است که وقتی نمی‌توانید نام مناسبی برای یک متغیر یا فایل انتخاب کنید، مورد استفاده قرار می‌گیرند. این عبارات می‌توانند برای نشان دادن هر بخش از یک سیستم یا ایده‌ی پیچیده شامل داده‌ ها، متغیرها، توابع و فرامین مورد استفاده قرار بگیرند.استفاده از این نام ‌های تصادفی بسیار اقدام نامناسبی است. هر زمان کدی می‌نویسید همیشه به یاد داشته باشید که نام متغیرها و توابع شما باید به وضوح نشان‌ دهنده کاربرد مربوطه آن‌ها باشد. استفاده از این نام‌ های تصادفی باعث ایجاد مشکلات بسیار بزرگی در فاز تست و باگ ‌یابی خواهد شد. هیچ کس نمی خواهد وقت خود را برای فهمیدن اینکه foo برای چه هدفی و bar برای چه منظوری به کار رفته است هدر دهد.انتخاب نام های با معنی برای فایل هاهیچ وقت بر روی فایل های خود نام‌ های تصادفی نگذارید. نام فایل های شما درست مانند نام متغیرها باید نشان دهنده هدف ایجاد آنها باشد.در واقع قواعد متعددی برای نام‌ گذاری فایل ها وجود دارد که استفاده از آنها توصیه شده و شما هم باید از آنها استفاده کنید. اما حتی اگر دقیقا از این قوانین پیروی نمی‌‌کنید حداقل نام فایل‌ های خود را به گونه‌ای انتخاب کنید که برای خودتان قابل فهم باشند. هیچ وقت نام فایل های خود را به صورت xyz.md یا adc.txt انتخاب نکنید.قواعد نام گذاری فایل ها (FNC) می‌تواند از طریق ساده سازی پیدا کردن فایل‌ های حاوی اطلاعات مورد نیاز شما از طریق عنوان فایل و گروه بندی فایل هایی که حاوی اطلاعات مشابه هستند، به شما در سازمان یافته تر بودن کمک کند. یک FNC خوب می‌تواند به دیگران هم در درک کار شما و راهیابی در میان آن کمک کند.نوع حروف خود را انتخاب کنیددنبال کردن یک تایپوگرافی مشخص برای نام‌ گذاری متغیرها همیشه کار بسیار خوبی است. نوع حروف (کوچک یا بزرگ) خود را انتخاب کرده و همیشه فایل ها را با همان نوع نام گذاری کنید تا واضح تر و خواناتر باشند. برای مثال من همیشه از ترکیب حروف کوچک و بزرگ استفاده می‌کنم.نگاهی به انواع محبوب استفاده از حروف بیاندازید:۱. نوشتن با حروف بزرگ: اولین حرف از کلمه با حروف بزرگ نوشته شده و بقیه حروف به صورت کوچک نوشته می‌شود.۲. حروف پاسکال: لغات بدون فاصله نوشته می‌شوند و اولین حرف از هر کلمه به صورت بزرگ نوشته می‌شود. روش پاسکال را گاهی UpperCamelCase هم می‌گویند.۳. ترکیب حروف کوچک و بزرگ: نوع دیگری از روش پاسکال است که در آن حرف اول کلمه با حروف کوچک نوشته می‌شود مثل iPhone۴. روش ماری (snake_case): نشانه گذاری حذف شده و فاصله ها با یک آندرلاین جایگزین می‌شوند. می‌توان از حروف کوچک یا بزرگ استفاده کرد اما از هر کدام که استفاده شود باید همیشه از همان استفاده کرد.«اینکه می‌توانید برنامه بنویسید شما را به یک برنامه نویس خوب تبدیل نمی‌کند. نوشتن کدی که حتی یک شخص غیر حرفه‌ای هم بتواند آن را درک کند همان چیزی است که از شما یک برنامه نویس خوب می سازد».کدهای خود را تکرار نکنیداگر در حین ایجاد یک پروژه یا یک نرم افزار مجبور شوید چندین بار کدهای خود را کپی و پیست کنید در این صورت اصلا برنامه نویس خوبی نیستید. تکرار چندین باره‌ی خطوط مشابه کد یکی از بدترین کارهایی است که در کدنویسی انجام می‌شود.می‌توان با استفاده گسترده از توابع باعث جلوگیری از تکرار کدها شد. هر کجا متوجه شدید که دارید خطوط مشابهی از کد را تکرار می‌کنید، آن را به یک تابع تبدیل کنید. عدم تکرار کدها مزایای بسیاری دارد و کدهای شما تمیز و مرتب مانده و شانس وجود باگ به حداقل می‌رسد.عدم تکرار کدها باعث حفظ تناسب می‌شودشما حتی می‌توانید هدف اصلی برنامه را به چند تابع کوچک تر تقسیم کرده و هر یک از آنها را به صورت جداگانه انجام دهید. این کار به شما کمک می‌کند تا برنامه‌های بزرگ را مدیریت کنید.نظرتان در مورد انتخاب قواعد کدنویسی رایج چیست؟قواعد کدنویسی مجموعه ای از دستورالعمل ها برای یک زبان برنامه نویسی مشخص است که سبک برنامه نویسی، تمرین ها و متدهایی را برای هریک از جنبه های برنامه نوشته شده با آن زبان توصیه می‌کند. یک قاعده کدنویسی برای پروژه های خود انتخاب کرده و به آن متعهد باشید.خوش بگذرانیدحالا به مهم‌ترین بخش برنامه نویسی می‌رسیم. هر برنامه‌ای که می‌نویسید، هر نرم‌افزاری که توسعه می‌دهید، همیشه خوش بگذرانید. کدنویسی فوق‌العاده است، این کار را به عادت روزانه خود تبدیل کنید تا ببینید چقدر سرگرم کننده است. اگر در زمان کدنویسی به شما خوش نگذرد انعکاس آن در کدهایتان مشخص خواهد بود.مصطفی حسینی