یک روش خوب یاد گرفتن برنامه نویسی خوب، بررسی ضد الگوها/AntiPatterns است. اساتید، نمونههای بدی که میبینن رو منتشر می کن تا بقیه ببینن که چه روشی اشتباهه و از روش روش خوب رو درک کنن. این مجموعه نمونه های بد برنامه نویسی رو من مدتها پیش دیدم و همیشه گذاشته بودم در موردشون بنویسم.. که ظاهرا رسید به الان. به قول خودمون «ادب از که آموختی از بی ادبان». این قسمت اول از یک مجموعه دو قسمتی است.
نمونه اول به ما می گه فانکشنهایی بسازیم که یک کار مشخص رو می کنن. قرار نیست فانکشن اونقدر بزرگ باشه که همه چیز رو به تنهایی بر عهده بگیره و قرار هم نیست اونقدر کوچیک باشه که بشه هر جای دیگه به عنوان یک دستور استفاده اش کرد. اگر کاری از نظر منطقی یک قدم از حل مساله است، براش یه فانکشن درست کنید. گاهی هم نه (:
زود برگردین! این توصیه «زود برگرد» رو از بچگی شنیدیم و در برنامه نویسی هم خوبه اگر اونو یادمون باشه. اگر در جایی از یک فانکشن مطمئن شدید که وقت برگشت است، برگردید. اینکه یک متغیر ست کنید و آخر فانکشن تصمیم بگیرین با اون بگردین، فقط کار رو پیچیده تر می کنه و خوندن و دیباگ برنامه رو سختتر. حتی اگر بحث پرفرمنس برامون مهم نباشه.
از اعداد جادویی پرهیز کنید! اینجا معلوم نیست ۵ چیکاره است. چرا ۵؟ چرا شش نه؟ اگر پنج رو در متغیری به اسم max_number_of_tries ریخته بودیم هم برنامه واضح تر بود و هم اگر بعدا کسی می خواست بعد از ۶ بار نظرش رو عوض کنه، خیلی راحت پیدا می کرد کجا باید چیکار کنه. روی پرفرمنس هم هیچ تاثیری نداشت.
یک کلاس بزرگ برای همه کار. اگر می تونین کارهای داخل یک کلاس رو طبقه بندی کنین، بهتره کلاس رو به اون طبقهها بشکنین. گاهی آدم ها برای حل یک مساله واقعا بزرگ کلا یک کلاس بزرگ تعریف می کنن و کل توابع و متغیرها رو می برن اون تو! اینکار رو نکنین.