هدف از کدنویسی صرفاً سریع کد زدن نیست. هدف آن است که در انتها یک کد صحیح و تمیز داشته باشید. صرف وقت برای نوشتن کد صحیح و تمیز، شما را از مواجهه با باگ نجات میدهد؛ مخصوصاً باگهایی که در دقایق پایانی به آنها پی میبرید و دیگر فرصتی برای رفعشان ندارید.
قبل از شروع کد، حتماً ساختار کلی آن را در ذهن خود و در موارد پیچیده، حتماً روی کاغذ، مرور کنید. به سؤالهایی از این دست باید پاسخهای مشخصی داشته باشید:
هر قسمت از برنامه چه چیزهایی را (بهعنوان ورودی و دادههای کمکی) نیاز دارد و چه چیزهایی را (بهعنوان خروجی) فراهم میکند؟
متغیرهای سراسری برنامه کدامها خواهند بود و چه چیزهایی تنها در یک قسمت خاص برنامه کاربرد دارد؟
گلوگاههای زمان اجرا و حافظهی برنامه کجاها خواهند بود؟
اگر لازم شود زمان اجرای برنامه را بهبود دهیم، کجاهای برنامه تغییر میکنند و این تغییرات چقدر در بخشهای دیگر برنامه تأثیر میگذارند؟
قسمتهای پیچیدهتر برنامه و جاهایی که احتمال باگ زدن در آنها بیشتر است، کداماند؟
هر قسمت از کد را که مینویسید، همان قسمت را تست کنید تا از درستی آن مطمئن شوید. تست کردن قسمتهای کوچک برنامه خیلی سادهتر از تست کردن یک برنامهی بزرگ چندقسمتی است. هرچه در برنامهی خود از بلوکهایی استفاده کنید که قبلاً تست شدهاند، بیشتر میتوانید توجه و تمرکز خود را صرف بخشهای دیگر برنامه کنید.
اگر بهترتیب روند اجرای برنامه کدتان را بنویسید، میتوانید از دادههای ورودی نمونه که در اختیارتان گذاشته شده است برای تست هر قسمت جدیدی که مینویسید استفاده کنید.
برای قسمتهایی که احساس میکنید به خاطر سپردن آنها سخت است، حتماً کامنت بگذارید؛ چرا که بعضی وقتها بعد از مدت طولانی به آن قسمت برمیگردید و اگر کامنتی ننوشته باشید، فهم آن قسمت از کد زمان زیادی از شما خواهد گرفت.
هرگاه قرار است بخشی از کدتان را با کد جدیدی جایگزین کنید (مثلاً وقتی باید یک قسمت از کد خود را بهینه کنید)، حتماً یک کپی از کد فعلی خود را در یک فایل دیگر ذخیره کنید. فایل اصلی خود را که در حال نوشتن در آن هستید، هیچگاه تغییر نام ندهید و تنها نسخههای پشتیبان را با نامهای مشخص بسازید. مثلاً اگر در حال نوشتن در book.cpp هستید، همیشه برنامهی اصلی خود را که در حال ویرایش و تست و نهایتاً submit کردن آن هستید، در همین فایل بگذارید و نسخههای پشتیبان را با نامهایی مانند book0.cpp یا book-n2.cpp ذخیره کنید. این قرارداد باعث میشود از خطاهای رایج جابهجا گرفتن فایلها در زمان اجرا، تست و ارسال برنامهها جلوگیری شود.
اگر در هر قسمتی از کد، نکتهای از جای دیگر کد به ذهنتان خطور کرد، حتماً در جایی یادداشت کنید. استفاده از حافظه در این موارد اصلاً توصیه نمیشود. داشتن یک TODO-List برای هر سؤال مفید است.
به قوانین مهندسی نرمافزار در زمینهی کدنویسی حتماً در طول زمان اصلی کدنویسی پایبند باشید. فقط در فاز نهایی و رفع باگ، اجازهی شکستن قواعد را به خود بدهید.
نامگذاری مناسب متغیرها و توابع را جدی بگیرید. در یک برنامهی طولانی، چند دقیقهای که برای نامگذاری مناسب صرف میکنید، ممکن است در زمان رفع باگ چندین برابر به شما کمک کند.
تا حد امکان از تغییر همزمان چند قسمت برنامه خودداری کنید. اگر یک تغییر کوچک انجام دادهاید، ابتدا همان تغییر را تست کنید و سپس سراغ تغییر بعدی بروید.