کد شما باید واضح باشد و نگهداری آن آسان باشد. در اینجا چندین اصل برنامه نویسی دیگر وجود دارد که به شما کمک می کند تا عمل خود را تمیز کنید.
نکات کلیدی
- Keep It Simple, Stupid (KISS): کدی بنویسید که تا حد امکان ساده باشد. از هوشمندی بیش از حد خودداری کنید و از نام متغیرهای واضح استفاده کنید.
- کد DRY را بنویسید: از تکرار کد خودداری کنید. در عوض از توابع، حلقه ها و الگوریتم ها استفاده کنید. نگهداری و اشکال زدایی کد DRY آسان تر است.
- Open/Closed: کدی بنویسید که برای برنامه افزودنی باز است اما برای اصلاح بسته است. از تغییر مستقیم جلوگیری کنید و برای کد پایدارتر و قابل نگهداری تر، برنامه های افزودنی را تشویق کنید.
نوشتن کد آسان است اما نوشتن کد خوب چالش برانگیز است. پذیرش اصول اولیه برنامه نویسی راهی مطمئن برای نوشتن کد با کیفیت بالا است که بدون توجه به اندازه پروژه نرم افزاری کارآمد، قابل خواندن، قابل اعتماد، ایمن و قابل نگهداری است.
کد بد به اشکال مختلف وجود دارد: زنجیره های درهم و برهم، عظیم، برنامه های غیرقابل اعتماد، متغیرهایی که منطقی نیستند، و غیره. چگونه کد موثر می نویسید؟ با نظم و هدف. در اینجا اصول برنامه نویسی اصلی وجود دارد که شما را به کدنویس بهتری تبدیل می کند.
1. ساده، احمقانه نگه دارید (KISS)
کمی خشن به نظر می رسد، اما یکی از مهم ترین اصولی است که هنگام نوشتن کد کامپیوتری باید از آن استفاده کنید. KISS به چه معناست؟
این بدان معنی است که شما باید کد را تا حد امکان ساده بنویسید. یکی از قوانین برنامه نویسی اولیه این است که هرگز در تلاش برای زرنگ بودن یا خودنمایی با یک بلوک ضخیم کد پیشرفته گرفتار نشوید. اگر می توانید یک اسکریپت را در یک خط بنویسید، آن را در یک خط بنویسید.
در اینجا یک تابع ساده وجود دارد:
function addNumbers(num1, num2) {
return num1 + num2;
}
خیلی ساده. خواندن آن آسان است و شما دقیقاً می دانید که چه اتفاقی دارد می افتد.
یکی از اصول برنامه نویسی در این روح استفاده از نام متغیرهای واضح است. از کتابخانه های کدگذاری استفاده کنید و از ابزارهای موجود استفاده کنید. پس از شش ماه به راحتی به سر کار برگردید. ساده نگه داشتن همه چیز شما را از رنج های بیهوده نجات خواهد داد.
2. کد DRY را بنویسید
اصل برنامه نویسی کامپیوتر خود را تکرار نکنید (DRY) به طور واضح به معنی تکرار نشدن کد است. این یک اشتباه رایج در کدنویسی است. هنگام نوشتن کد، از تکراری شدن داده ها یا منطق خودداری کنید. اگر تا به حال کدی را در برنامه خود کپی و جایگذاری کرده اید، این کد DRY نیست.
به این اسکریپت نگاه کنید:
function addNumberSequence(number) {
number = number + 1;
number = number + 2;
number = number + 3;
number = number + 4;
number = number + 5;
return number;
}
به جای تکرار خطوط، سعی کنید الگوریتمی را پیدا کنید که به جای آن از یک حلقه استفاده کند.
نگهداری کد DRY آسان است. اشکال زدایی یک حلقه که 50 تکرار را مدیریت می کند، آسان تر از 50 بلوک کد است که هر کدام یک تکرار را مدیریت می کنند.
3. باز/بسته
این اصل برنامه نویسی به این معنی است که شما باید سعی کنید کد خود را برای برنامه های افزودنی باز اما برای اصلاح بسته کنید. این تضمین میکند که کدی ایجاد میکنید که نیازی به اصلاح ندارد، حتی زمانی که نیازمندیها تغییر میکنند. این یک اصل مهم در هنگام انتشار یک کتابخانه یا چارچوبی است که دیگران از آن استفاده خواهند کرد.
به عنوان مثال، فرض کنید در حال حفظ یک چارچوب رابط کاربری گرافیکی هستید. میتوانید نسخهای را برای کدنویسها منتشر کنید تا مستقیماً کد منتشر شده شما را اصلاح و ادغام کنند. با این حال، وقتی یک بهروزرسانی بزرگ را چهار ماه بعد منتشر میکنید، چه اتفاقی میافتد؟
کدشون خراب میشه این احتمالاً گروه های شما را بسیار ناراضی خواهد کرد. آنها نمی خواهند برای مدت طولانی تری از کتابخانه شما استفاده کنند، مهم نیست چقدر در دوران اوج خود مفید بوده است.
در عوض، کدی را آزاد کنید که از تغییر مستقیم جلوگیری می کند و گسترش را تشویق می کند. اصول اولیه برنامه نویسی مانند این رفتار اصلی را از رفتار اصلاح شده جدا می کند. کد پایدارتر و نگهداری آسان تر است.
4. ترکیب بر ارث
اگر با استفاده از برنامه نویسی شی گرا کد بنویسید، این اصل برنامه نویسی را بسیار مفید خواهید یافت. اصل ترکیب بر وراثت بیان می کند که اشیاء با رفتارهای پیچیده باید دارای نمونه هایی از اشیاء با رفتارهای فردی باشند. آنها نباید کلاسی را به ارث ببرند و رفتارهای جدیدی اضافه کنند.
تکیه بر ارث باعث دو مسئله اساسی می شود. اول، سلسله مراتب وراثت می تواند با عجله به هم ریخته شود. همچنین در تعریف رفتارهای مورد خاص انعطاف کمتری دارید. فرض کنید می خواهید رفتارهایی را برای اشتراک گذاری پیاده سازی کنید:
برنامه نویسی کامپوزیشن برای نوشتن تمیزتر است، نگهداری آن آسان تر است و به رفتارهای تعریف کننده انعطاف پذیری اجازه می دهد. هر رفتار فردی طبقه خاص خود را دارد. شما می توانید با ترکیب رفتارهای فردی رفتارهای پیچیده ایجاد کنید.
5. مسئولیت واحد
اصل مسئولیت واحد بیان می کند که هر کلاس یا ماژول در یک برنامه باید فقط یک عملکرد خاص را ارائه دهد. همانطور که رابرت سی مارتین می گوید: “یک کلاس باید تنها یک دلیل برای تغییر داشته باشد.”
کلاس ها و ماژول ها اغلب از این طریق شروع می شوند. مراقب باشید که مسئولیت های زیادی اضافه نکنید زیرا کلاس ها پیچیده تر می شوند. Refactor کنید و آنها را به کلاس ها و ماژول های کوچکتر تقسیم کنید.
پیامد بارگذاری بیش از حد کلاس ها دو بار است. اول، هنگامی که می خواهید یک ماژول خاص را برای عیب یابی جدا کنید، اشکال زدایی را پیچیده می کند. دوم، ایجاد عملکرد اضافی برای یک ماژول خاص دشوارتر می شود. اصول برنامه نویسی خوب از بروز این مشکلات قبل از تبدیل شدن به مشکل جلوگیری می کند.
6. تفکیک دغدغه ها
مفهوم تفکیک نگرانی ها نسخه ای انتزاعی از اصل مسئولیت واحد است. این ایده بیان می کند که باید برنامه هایی با قسمت های مختلف طراحی کنید و این قسمت ها نباید به یکدیگر دسترسی داشته باشند.
یک مثال شناخته شده در این مورد، طراحی مدل-نما-کنترلر (MVC) است. MVC یک برنامه را به سه بخش مجزا تقسیم می کند: داده ها (مدل)، منطق (کنترل کننده)، و آنچه صفحه نمایش می دهد (نمایش). تغییرات MVC در محبوب ترین چارچوب های وب امروزی رایج است.
به عنوان مثال، کدی که پایگاه داده را کنترل می کند، نیازی به دانستن نحوه نمایش داده ها در مرورگر ندارد. کد رندر ورودی را از کاربر می گیرد، اما کد منطقی پردازش را مدیریت می کند. هر قطعه کد کاملا مستقل است.
نتیجه کدی است که به راحتی اشکال زدایی می شود. اگر زمانی نیاز به بازنویسی کد رندر داشتید، می توانید این کار را بدون نگرانی در مورد نحوه ذخیره داده ها یا پردازش منطق انجام دهید.
7. شما به آن نیاز ندارید (YAGNI)
این اصل به این معنی است که هرگز نباید برای عملکرد به صورت غیرمجاز کدنویسی کنید که ممکن است در آینده به چیزی نیاز داشته باشید. یکی از مهمترین اصول برنامه نویسی کامپیوتر برای یادگیری این است که نباید سعی کنید مشکلی را که وجود ندارد حل کنید.
در تلاش برای نوشتن کد DRY، برنامه نویسان ممکن است این اصل را نقض کنند. اغلب، برنامه نویسان بی تجربه سعی می کنند انتزاعی ترین و عمومی ترین کدی را که می توانند بنویسند. با این حال، انتزاع بیش از حد باعث ایجاد کد متورم می شود که حفظ آن غیرممکن است.
اصول برنامه نویسی DRY را فقط در مواقعی که نیاز دارید اعمال کنید. اگر متوجه شدید که تکههایی از کد نوشته شده است، یک لایه انتزاعی را پیادهسازی کنید. به هزینه دسته کد فعلی خود خیلی به آینده فکر نکنید.
8. کد خود را مستند کنید
با تمام این صحبت ها در مورد اصول کدنویسی، می توان به راحتی انسان طرف مقابل را که ممکن است در نهایت وارد کد شما شود، فراموش کرد.
هر توسعه دهنده ارشد بر اهمیت مستندسازی کد شما با نظرات مناسب تاکید می کند. همه زبان ها آنها را ارائه می دهند. باید نوشتن آنها را به عادت تبدیل کنید. نظرات را برای توضیح اشیاء، بهبود تعاریف متغیرها و آسانتر کردن درک عملکردها بگذارید.
در اینجا یک تابع جاوا اسکریپت با نظراتی است که شما را از طریق کد راهنمایی می کند:
// This function will add 5 to the input if odd, or return the number if even
function evenOrOdd(number) {
// Determine if the number is even
if (number % 2 == 0) {
return number;
}
// If the number is odd, this will add 5 and return
else {
return number + 5;
}
}
در حالی که در حال کدنویسی هستید، گذاشتن نظرات کار کمی بیشتر است. زمان می برد و توجه شما را از کار واقعی در دست می گیرد. به هر حال شما کد خود را به خوبی درک می کنید، درست است؟ چه کسی اهمیت می دهد؟ شایان ذکر است که هیچ چیز یکبار مصرف نیست، حتی در دنیای فناوری. اگر فرد طرف مقابل در نهایت گم شود، اصل برنامه نویسی رایانه چیست؟
توصیه میکنیم هر جا که نگران مبهم یا مبهم شدن چیزها هستید، نظرات خود را بنویسید، مخصوصاً هنگام همکاری با دیگران. توسعه دهندگان همکار خود را با مجبور کردن آنها به رمزگشایی نحو شما ناامید نکنید.
سعی کنید یک برنامه بنویسید، آن را به مدت شش ماه به حال خود رها کنید و برای اصلاح آن برگردید. شما خوشحال خواهید شد که برنامه خود را به جای اینکه مجبور باشید روی هر تابعی بریزید تا نحوه عملکرد آن را به خاطر بسپارید، مستندسازی کنید.
9. Refactor
پذیرش آن سخت است، اما کد شما در اولین بار کامل نخواهد بود. Refactoring کد به این معنی است که کد خود را بازبینی کنید و به دنبال راه هایی برای بهینه سازی آن باشید و در عین حال نتایج را دقیقاً یکسان نگه دارید. این یک نکته برای نوشتن کد تمیزتر و با کیفیت است.
پایگاه های کد به طور مداوم در حال تکامل هستند. یکی از اصول برنامه نویسی این است که به یاد داشته باشید که بازدید مجدد، بازنویسی یا حتی طراحی مجدد کل تکه های کد کاملاً طبیعی است.
این بدان معنا نیست که شما اولین باری که برنامه خود را نوشتید موفق نشدید. شما به ناچار با گذشت زمان با یک پروژه بیشتر آشنا خواهید شد. از این دانش برای تنظیم خود هنگام پیشرفت استفاده کنید.
10. کد پاک به هر قیمتی
جدا از تمام اصول برنامه نویسی اساسی، نفس خود را در خانه بگذارید و نوشتن کد هوشمندانه را فراموش کنید. وقتی این را می گوییم، منظور آن نوع کدی است که بیشتر شبیه یک معما است تا راه حل. شما برای تحت تاثیر قرار دادن غریبه ها برنامه نویسی نمی کنید. شما در این حرفه برای حل مشکلات هستید.
سعی نکنید حجم زیادی از منطق را در یک خط جمع کنید. دستورالعمل های واضح را در نظرات و اسناد خود بگذارید. اگر کد شما به راحتی قابل خواندن باشد، معمولا نگهداری از آن نیز آسان خواهد بود.
برنامه نویسان خوب و کدهای خوانا دست به دست هم می دهند. در صورت لزوم نظرات خود را بنویسید، به راهنماهای سبک پایبند باشید و تا حد امکان خود را به جای پسر بعدی قرار دهید.
اصول برنامه نویسی کامپیوتر را بیاموزید تا یک برنامه نویس خوب باشید
یادگیری اینکه چگونه یک برنامه نویس خوب باشید زمان و تلاش زیادی را می طلبد. این قوانین برنامه نویسی پایه نقشه راهی برای تبدیل شدن به یک برنامه نویس حرفه ای است. با پیروی از این اصول قدیمی، خود را برای موفقیت در حرفه برنامه نویسی آینده خود آماده خواهید کرد.