۶ عادت خوب برنامه نویسی | راهنمای کاربردی
زمانی که از تبدیل شدن به یک برنامهنویس خوب صحبت میکنیم، برخی عادتهای خاص هستند که بیدرنگ به ذهن متبادر میشوند. برخی عادات وجود دارند که اغلب برنامهنویسان توافق دارند، داشتن آنها مناسب است، اما در عمل اغلب ایشان این عادتها را ندارند. هر آنچه که میدانیم بر اساس عادتهای ما تعریف شده است. برای این که تبدیل یک برنامهنویس خوب بشویم، باید تلاش کنیم برخی عادتهای خوب برنامهنویسی را در خود ایجاد کنیم. در این مقاله با شش عادت خوب برنامه نویسی آشنا میشویم که باید تلاش کنید در خود ایجاد کنید.
1. تمیزکاری کد
یک عادت عالی برنامهنویسی این است که هر زمان یک قطعه کد را تغییر میدهید، تلاش کنید آن را بهبود ببخشید. مهم نیست که مشغول اصلاح یک خط کد هستید یا یک قابلیت کاملاً جدید را به کد موجود اضافه میکنید، در هر حال باید در جهت تمیزکاری و بهبود کد تلاش کنید. «رابرت سی. مارتین» (Robert C. Martin) این عادت را در یک نقل قول مشهور به خوبی بیان کرده است:
«همواره کدی که ویرایش میکنید را بهتر از حالت اولیه آن بکنید»
اگر با تعداد موارد جزئی زیادی که میتوانید در زمان خواندن برخی کدها بهبود ببخشید آشنا شوید، شگفتزده خواهید شد. اینها تغییرهایی که میتوانید انجام دهید، شاید به کوچکی تغییر دادن نام یک متغیر یا تابع باشند. کافی است مطمئن شوید که هر زمان دستکم یک بهینهسازی داشتهاید. به این ترتیب همواره کدی که ادیت میکنید را به حالتی بهتر از حالت اصلی آن درمیآورید و تعداد مشکلات کد را به مقدار زیادی بهبود میبخشید.
دلیل این که داشتن این عادت برنامهنویسی بسیار مهم است، این است که به یادگیری مداوم ما کمک میکند. مواردی که دیروز خوب تلقی میشدند، امروز میتوانند به روش حتی بهتری اجرا شوند. کدها در طی زمان رو به زوال میروند، از این رو ضروری است که مراقب کد باشیم و آن را در وضعیتی قابل نگهداری حفظ کنیم.
2. به فرد بعد از خود فکر کنید
هر زمان که یک قطعه کد را مینویسید، باید به توسعهدهنده بعدی که قرار است روی کد شما کار کند، فکر کنید.
کدی بنویسید که قابلیت نگهداری داشته باشد تا توسعهدهندگان بعدی، آن را به سهولت درک کنند و به همان میزان که برای شما خوانا است برای آنها نیز خوانا باشد. نسبت زمانی که برای خواندن یک کد صرف میشود در قیاس با زمان مورد نیاز برای نوشتن کد برابر با 10 به 1 است! این بدان معنی است که با صرف کمی تلاش بیشتر برای خواناتر ساختن کد، میتوانید صرفهجویی زمانی زیادی ایجاد کنید.
زمانی که میخواهید کدنویسی کنید، رؤیایی فکر نکنید، کد ساده بنویسید تا هر کس آن را خوانده و درک کند. در واقع هیچ نیازی به نوشتن کدهای جادوی تکخطی که از Stack Overflow کپی کردهاید و حتی خودتان هم به درستی درک نمیکنید وجود ندارد.
3. تنها آن چه لازم است و نه بیشتر انجام دهید
توسعهدهندگان عادت عجیبی در زمینه بیشکاری دارند. زمانی که یک قابلیت خاص تقاضا میشود، اغلب توسعهدهندگان تلاش میکنند چیزی بزرگتر از آن چه تقاضا شده است بسازند.
این چیزی است که «بیشمهندسی» (Overengineering) نام دارد و هنر بیشکاری در موارد مختلف گفته میشود. مثلاً کد بیش از حد نیاز مستحکم یا پیچیده ساخته میشود. نکته مهم در مورد بیشمهندسی این است که هیچ نیازی به آن وجود ندارد!
در اغلب موارد، دلیل این که چیزی بیش از آن چه تقاضا شده، ساخته میشود، اتکا به حدس و گمان است. توسعهدهنده بر مبنای تفکرات خود از قبل کدی را که ممکن است در آینده مفید باشد اضافه میکند. این قطعه کد اضافی به کدبیس اضافه میشود، اما احتمالاً هرگز استفاده نخواهد شد.
بیشمهندسی منجر به کدی میشود که طوری طراحی شده تا بیش از حد ژنریک باشد و از این رو تمرکزش را از وظیفه اصلی که در وهله نخست برای آن طراحی شده است از دست میدهد. بنابراین نهتنها استفاده از آن دشوار میشود، بلکه به صورتی بنیادی غیر قابل درک است.
4. برای کد خود طرحریزی داشته باشید
برنامهنویسهای واقعی عاشق انجام یک کار و تنها همان یک کار هستند و معنی برنامهنویسی نیز همین است. این واقعیت نباید شما را شگفتزده کند. واقعیت بدیهی این است که برنامهنویسان در زمان تحویل گرفتن یک کار مستقیماً به سراغ بخشی که انجامش را دوست دارند میروند و بیدرنگ شروع به کدنویسی میکنند.
این وضعیتِ هجوم بردن به سمت کد، ممکن است در ابتدا هیجانانگیز به نظر برسد، اما این هیجان ممکن است به قیمت هدر رفتن مقدار زمان زیادی از شما تمام شود. زمانی که مستقیماً به سمت بخش خاصی از کد میرویم، در نهایت دید خودمان را از تصویر کلی کد از دست میدهیم.
پیش از آن که شروع به کدنویسی بکنید، باید برای آن طرحریزی کرده و آن را سازماندهی کنید. به مسائلی فکر کنید که ممکن است در مسیر با آنها مواجه شوید و چگونه میتوانید آنها را رفع کنید. کد خود را چطور سازماندهی میکنید؟ دلیل این که قصد دارید یک قابلیت خاص را پیادهسازی کنید چیست؟
همه اینها سؤالاتی عالی هستند که باید پیش از آغاز کدنویسی از خود بپرسید. این سؤالها موجب میشوند از این واقعیت آگاه شوید که پیش از شروع به نوشتن کد مسائل زیادی هستند که باید در موردشان تفکر و تأمل بکنید.
5. مستندسازی
شاید این جذابترین عادت در لیست عادات خوب برنامهنویسی ما نباشد، اما بیشک داشتن خصوصیت مستندسازی بسیار عالی است. مستندسازی کارها اهمیت بسیار زیادی دارد. آیا تاکنون با یک ریپازیتوری سروکار داشتهاید که هیچ مستندانی در مورد شیوه تنظیم صحیح موارد مختلف یا طرز کار اپلیکیشن ارائه نکرده باشد؟
پس از خواندن کامل کد به مدت چند ساعت، این احتمال وجود دارد که همچنان هیچ سرنخی در مورد طرز کار آن نداشته باشید. در این موارد است که مستندات به کار میآید. به عنوان یک مقدار کمینه همواره باید یک فایل readme.md مناسب برای پروژههای خود داشته باشید که در مورد کاری که اپلیکیشن انجام میدهد و شیوه تنظیم و راهاندازی آن توضیح داده باشد.
بخش هیجانانگیز مستندسازی این است که میتوانید آن را همراه با کدنویسی انجام دهید. برای نمونه زمان خود را صرف انتخاب نامهای گویا برای متغیرها بکنید، چون این کار ارزش زیادی دارد. انتخاب نامهای خوب برای متغیرها، متدها و کلاسها کاری زمانگیر است، اما موجب صرفهجویی زمانی زیادی در بلندمدت میشود.
6. هرگز از یادگیری دست نکشید
چنان که «ایزاک آسیموف» (Isaac Asimov) اشاره کرده است: «روزی که یادگیری را متوقف کنید، روزی است که حرکت رو به زوال را آغاز میکنید.»
این موضوع در دنیای فناوری که همه چیز با سرعتی فزاینده در حال تغییر است، به طور خاصی صحیح است. امکان همراه شدن با همه مواردی که در حال تغییر هستند، وجود ندارد و حتی اگر امکان این کار وجود نیز داشت، کاری عاقلانه محسوب نمیشد. اما نباید این موضوع موجب شود که یادگیری را به کلی کنار بگذارید، بلکه باید تلاش کنید هر چند مدت یک بار یک زبان برنامهنویسی جدید یا یک فریمورک تازه را یاد بگیرید.
معنی این حرف آن نیست که باید در زمینه همه زبانهای برنامهنویسی یا همه فریمورکها به فردی خبره تبدیل شوید، بلکه میتوانید برخی از آنها را امتحان کنید و ببینید آیا آنها را دوست دارید یا نه. زمانی که به تحقیق در مورد برخی از مسائل خاص که در زبانها یا فریمورکهای دیگر برنامهنویسی حل شدهاند، میپردازیم، بینش خوبی کسب کرده و به عنوان یک برنامهنویس رشد میکنیم.
سخن پایانی
زمانی که میخواهید خود را به عن,ان یک برنامهنویس خوب از توده افراد جدا کنید، عادات خوب زیادی وجود دارند که میتوانید در خود ایجاد کنید. در این مقاله به بررسی شش عادت خوب برنامهنویسی پرداختیم که اغلب توسعهدهندگان باید در مسیر کسب آنها تلاش کنند. تلاش کنید این عادات برنامهنویسی را به نوبت در خود ایجاد کنید. به خاطر داشته باشید که برای ایجاد این عادات خوب در خودتان به زمان و پشتکار نیاز دارید و این عادتها در طی یک شب در فرد ایجاد نمیشوند.