هشت اصل برنامه نویسی که توسعه دهندگان باید آنها را رعایت کنند

دنیای برنامه نویسی یکی از زمینه های شغلی بسیار جذاب و پرمخاطب در کشور ایران است که هر روز به تعداد افرادی که به آن علاقه مند میشوند افزوده میشود اما با وجود جذابیت زیاد و محبوب بودن تخصص برنامه نویسی نیز همانند دیگر تخصص ها نیاز به اصول خاصی دارد که اگر یک نفر اصول برنامه نویسی را رعایت نکند ممکن است پروژه های او کم کیفیت و ناکارآمد باشد و در طول زمان باعث مشکلات و دردسرهای زیادی برای او شود.

کدنویسی اصولی باعث میشود پروژه های یک برنامه نویس منعطف ، تمیز و قابل درک باشد بطوریکه نگهداری از آنها راحت باشد و امکان همکاری از طرف دیگر برنامه نویس ها نیز وجود داشته باشد چرا که بسیاری از پروژه های برنامه نویسی بصورت تیمی و توسط بیش از یک نفر انجام میشود و درک کردن کدهای شما توسط دیگر برنامه نویسان از اهمیت بالایی برخوردار است.

اگر در حال یادگیری برنامه نویسی هستید باید بدانید که این بهترین فرصت است که با اصول برنامه نویسی پیش بروید و از همان ابتدا کدنویسی را به شیوه ی صحیح و سالم انجام دهید.

اصول برنامه نویسی چیست ؟

ما در این مقاله هشت اصل از اصول پایه ای برنامه نویسی را جمع آوری کردیم که در اکثر زبان های برنامه نویسی صدق میکند و با رعایت این اصول در هر زبان برنامه نویسی میتوانید کدهای سالم و تمیزی بنویسید.

بعضی از افراد تصور میکنند که اصول برنامه نویسی رابطه ی نزدیکی با کسب تجربه دارد و فردی که مدت زمان طولانی برنامه نویسی کرده است به اصول برنامه نویسی هم مسلط است ولی بارها مشاهده شده که حتی برنامه نویسان حرفه ای نیز از قواعد درست غافل هستند و نمیتوانند کدنویسی تمیز یا اصطلاحا clean code انجام دهند و به همین علت استقبال از کارها و پروژه های آنها کم است یا کارفرماها با دیدن نمونه کارهای آنها از واگزاری پروژه به آنها صرف نظر میکنند.

در واقع اصول برنامه نویسی ربطی به تجربه ی فرد ندارد بلکه یک سری قراردادهای پذیرفته شده توسط اکثر برنامه نویسان است که هرشخصی بعنوان توسعه دهنده باید آنها را فرا بگیرد.

در ادامه به اصول برنامه نویسی میپردازیم.

اصل اول – کدهای DRY بنویسید

اصل DRY مخفف Don’t Repeat Yourself است که طبق این اصل شما باید از تکرار بیهوده کدنویسی پرهیز کنید.این یکی از اشتباهات رایج در برنامه نویسی است و شما نباید یک کد تکراری را بارها بنویسید بلکه باید الگوریتمی پیاده سازی کنید که یک تکه کد را چندین بار اجرا کنید مثل استفاده از حلقه ها و …

اگر حس می کنید قسمتی از کدها را عینا کپی و پیست میکنید شما از اصول DRY پیروی نمیکنید.

استفاده از حلقه ها در برنامه نویسی بجای کپی کردن کدها باعث میشود کدهای شما کمتر ، منظم تر و دیباگ کردن آن بسیار راحت تر باشد.

این اصل در کدنویسی تمیز یا clean code از اهمیت بالایی برخوردار است زیرا وقتی پروژه های برنامه نویسی بزرگتر میشود وجود کدهای تکراری و زیاد انرژی و زمان بسیاری را درگیر میکند. مسلط بودن به الگوریتم های مختلف و شی گرایی در برنامه نویسی تا حدودی باعث میشود که اصول DRY رعایت شود. در مقابل DRY نوعی از برنامه نویسی به نام WET وجود دارد که مخفف Write Everything Twiceیا We Enjoy Typing میباشد.

یک نمونه ی خیلی ساده این است که یک تابع بنویسید ده عدد را با هم جمع کند. اگر بخواهید از اصول DRY استفاده کنید باید حلقه ای بنویسید که ده بار تکرار شود و هر بار عدد را با جمع اعداد قبلی جمع کند. شاید کار سه خط کد باشد اما اگر DRY را رعایت نکنید باید برای هر عدد یک خط کدنویسی کنید که میشود ده خط کد ! یعنی حدودا 70% کد اضافه نوشته اید حال تصور کنید درون پروژه ای بزرگ هستید و اگر DRY رعایت نشود چه مصیبتی پیش می آید.

اصل دوم – اصل KISS در برنامه نویسی

این اصل بیان میکند که هرچه پروژه های برنامه نویسی شما ساده تر بمانند و از پیچیدگی ها دوری کنند پروژه های شما اصولی تر خواهد بود. بنابراین بعنوان یک برنامه نویس باید سعی کنید روی ساده بودن هر عملیات تمرکز کنید و تا میتوانید آنها را از پیچیدگی نجات دهید. اگر لازم است برای یک کار خاصی سه تابع بنویسید تا آن کار به سادگی انجام بگیرد همان سه تابع را بنویسید. نوشتن یک تابع پیچیده دردی از شما دوا نخواهد کرد.

اصل KISS توسط Kelly Johnson ابداع شده است و اعتقاد دارد که پروژه های خوب به جای پیچیدگی ، به سمت ساده سازی حرکت میکنند.

برخی از برنامه نویسان عمدا یا سهوا کدهای پیچیده ای می نویسند و احساس میکنند با نوشتن کدهای پیچیده ، سیستمی طراحی میکنند که قدرت بیشتری خواهد داشت یا از نظر دیگران کار آنها ارزشمندتر خواهد بود، اما این اقدام کاملا اشتباه است و نتیجه ی عکس دارد.به یاد داشته باشید همیشه پروژه هایی موفق میشوند که خود را از پیچیدگی های غیرضروری نجات میدهند.

اصل سوم – اصل تک وظیفه بودن

این اصل بیان میکند هر کلاس یا ماژول در پروژه های برنامه نویسی باید یک کار واحد انجام دهد. برای هر کلاس در برنامه نویسی باید تنها یک دلیل وجود داشته باشد نه چندین دلیل.

اضافه کردن مسئولیت های بیشتر به یک کلاس یا ماژول در برنامه نویسی باعث پیچیدگی پروژه ی شما خواهد شد. این همان اصلی بود که باعث شد سیستم عامل لینوکس به موفقیت چشم گیری برسد زیرا لینوس توروالدز برنامه نویس هسته ی لینوکس از همان ابتدا سعی کرده است لینوکس برپایه ی این اصول برنامه نویسی پیاده سازی شود که هر ابزاری فقط یک کار خاصی را انجام بدهد حتی اگر وظیفه اش بسیار کوچک باشد.

اصل چهار – مستندات نویسی و کامنت گذاری را یاد بگیرید

مستندات یا کامنت ها که در لابلای کدها قرار میگیرند توضیحاتی هستند که به دیگران اعلام میکنند اینجا چه اتفاقی می افتد. مستندات نویسی میتواند به چند روش انجام بگیرد :

  • راهنمای تک خطی
  • راهنمای چند خطی

دنیای برنامه نویسی یکی از زمینه های شغلی بسیار جذاب و پرمخاطب در کشور ایران است که هر روز به تعداد افرادی که به آن علاقه مند میشوند افزوده میشود اما با وجود جذابیت زیاد و محبوب بودن تخصص برنامه نویسی نیز همانند دیگر تخصص ها نیاز به اصول خاصی دارد که اگر یک نفر اصول برنامه نویسی را رعایت نکند ممکن است پروژه های او کم کیفیت و ناکارآمد باشد و در طول زمان باعث مشکلات و دردسرهای زیادی برای او شود.کدنویسی اصولی باعث میشود پروژه های یک برنامه نویس منعطف ، تمیز و قابل درک باشد بطوریکه نگهداری از آنها راحت باشد و امکان همکاری از طرف دیگر برنامه نویس ها نیز وجود داشته باشد چرا که بسیاری از پروژه های برنامه نویسی بصورت تیمی و توسط بیش از یک نفر انجام میشود و درک کردن کدهای شما توسط دیگر برنامه نویسان از اهمیت بالایی برخوردار است.اگر در حال یادگیری برنامه نویسی هستید باید بدانید که این بهترین فرصت است که با اصول برنامه نویسی پیش بروید و از همان ابتدا کدنویسی را به شیوه ی صحیح و سالم انجام دهید.اصول های برنامه نویسی چه چیزهایی هستنداصول برنامه نویسی چیست ؟
ما در این مقاله هشت اصل از اصول پایه ای برنامه نویسی را جمع آوری کردیم که در اکثر زبان های برنامه نویسی صدق میکند و با رعایت این اصول در هر زبان برنامه نویسی میتوانید کدهای سالم و تمیزی بنویسید.بعضی از افراد تصور میکنند که اصول برنامه نویسی رابطه ی نزدیکی با کسب تجربه دارد و فردی که مدت زمان طولانی برنامه نویسی کرده است به اصول برنامه نویسی هم مسلط است ولی بارها مشاهده شده که حتی برنامه نویسان حرفه ای نیز از قواعد درست غافل هستند و نمیتوانند کدنویسی تمیز یا اصطلاحا clean code انجام دهند و به همین علت استقبال از کارها و پروژه های آنها کم است یا کارفرماها با دیدن نمونه کارهای آنها از واگزاری پروژه به آنها صرف نظر میکنند.در واقع اصول برنامه نویسی ربطی به تجربه ی فرد ندارد بلکه یک سری قراردادهای پذیرفته شده توسط اکثر برنامه نویسان است که هرشخصی بعنوان توسعه دهنده باید آنها را فرا بگیرد.در ادامه به اصول برنامه نویسی میپردازیم.اصل اول - کدهای DRY بنویسید
اصل DRY مخفف Don't Repeat Yourself است که طبق این اصل شما باید از تکرار بیهوده کدنویسی پرهیز کنید.این یکی از اشتباهات رایج در برنامه نویسی است و شما نباید یک کد تکراری را بارها بنویسید بلکه باید الگوریتمی پیاده سازی کنید که یک تکه کد را چندین بار اجرا کنید مثل استفاده از حلقه ها و ...اگر حس می کنید قسمتی از کدها را عینا کپی و پیست میکنید شما از اصول DRY پیروی نمیکنید.استفاده از حلقه ها در برنامه نویسی بجای کپی کردن کدها باعث میشود کدهای شما کمتر ، منظم تر و دیباگ کردن آن بسیار راحت تر باشد.این اصل در کدنویسی تمیز یا clean code از اهمیت بالایی برخوردار است زیرا وقتی پروژه های برنامه نویسی بزرگتر میشود وجود کدهای تکراری و زیاد انرژی و زمان بسیاری را درگیر میکند. مسلط بودن به الگوریتم های مختلف و شی گرایی در برنامه نویسی تا حدودی باعث میشود که اصول DRY رعایت شود. در مقابل DRY نوعی از برنامه نویسی به نام WET وجود دارد که مخفف Write Everything Twiceیا We Enjoy Typing میباشد.یک نمونه ی خیلی ساده این است که یک تابع بنویسید ده عدد را با هم جمع کند. اگر بخواهید از اصول DRY استفاده کنید باید حلقه ای بنویسید که ده بار تکرار شود و هر بار عدد را با جمع اعداد قبلی جمع کند. شاید کار سه خط کد باشد اما اگر DRY را رعایت نکنید باید برای هر عدد یک خط کدنویسی کنید که میشود ده خط کد ! یعنی حدودا 70% کد اضافه نوشته اید حال تصور کنید درون پروژه ای بزرگ هستید و اگر DRY رعایت نشود چه مصیبتی پیش می آید.اصل دوم - اصل KISS در برنامه نویسی
این اصل بیان میکند که هرچه پروژه های برنامه نویسی شما ساده تر بمانند و از پیچیدگی ها دوری کنند پروژه های شما اصولی تر خواهد بود. بنابراین بعنوان یک برنامه نویس باید سعی کنید روی ساده بودن هر عملیات تمرکز کنید و تا میتوانید آنها را از پیچیدگی نجات دهید. اگر لازم است برای یک کار خاصی سه تابع بنویسید تا آن کار به سادگی انجام بگیرد همان سه تابع را بنویسید. نوشتن یک تابع پیچیده دردی از شما دوا نخواهد کرد.اصل KISS توسط Kelly Johnson ابداع شده است و اعتقاد دارد که پروژه های خوب به جای پیچیدگی ، به سمت ساده سازی حرکت میکنند.برخی از برنامه نویسان عمدا یا سهوا کدهای پیچیده ای می نویسند و احساس میکنند با نوشتن کدهای پیچیده ، سیستمی طراحی میکنند که قدرت بیشتری خواهد داشت یا از نظر دیگران کار آنها ارزشمندتر خواهد بود، اما این اقدام کاملا اشتباه است و نتیجه ی عکس دارد.به یاد داشته باشید همیشه پروژه هایی موفق میشوند که خود را از پیچیدگی های غیرضروری نجات میدهند.اصل سوم - اصل تک وظیفه بودن
این اصل بیان میکند هر کلاس یا ماژول در پروژه های برنامه نویسی باید یک کار واحد انجام دهد. برای هر کلاس در برنامه نویسی باید تنها یک دلیل وجود داشته باشد نه چندین دلیل.اضافه کردن مسئولیت های بیشتر به یک کلاس یا ماژول در برنامه نویسی باعث پیچیدگی پروژه ی شما خواهد شد. این همان اصلی بود که باعث شد سیستم عامل لینوکس به موفقیت چشم گیری برسد زیرا لینوس توروالدز برنامه نویس هسته ی لینوکس از همان ابتدا سعی کرده است لینوکس برپایه ی این اصول برنامه نویسی پیاده سازی شود که هر ابزاری فقط یک کار خاصی را انجام بدهد حتی اگر وظیفه اش بسیار کوچک باشد.اصل چهار - مستندات نویسی و کامنت گذاری را یاد بگیرید
مستندات یا کامنت ها که در لابلای کدها قرار میگیرند توضیحاتی هستند که به دیگران اعلام میکنند اینجا چه اتفاقی می افتد. مستندات نویسی میتواند به چند روش انجام بگیرد :راهنمای تک خطی
راهنمای چند خطی
اصول برنامه نویسی - مستندات یا کامنت گذاریپیشنهاد میشود برای هر کلاس یا تابعی که کار خاصی انجام میدهد یک راهنمای چند خطی در ابتدای آن نوشته شود و تا میتوانید از کامنت گذاری تک خطی دوری کنید. برای درک بهتر این اصل میتوانید از سورس کدهای درون گیتهاب استفاده کنید و از کامنت گذاری آنها الهام بگیرید.اصل پنجم - نامگذاری صحیح متغیرها ، توابع ، کلاس ها و ...
در برنامه نویسی نیاز مبرم به نامگذاری است و در هر قطعه کد ممکن است بارها نیاز به نامگذاری اجزای مختلف باشد. نام گذاری صحیح و اصولی باعث میشود که کدهای شما قابل درک باشد و مشخص شود که یک موجودیت قرار است چه وظیفه ای را انجام دهد.هر نام که انتخاب میکنید باید دارای معنی باشد و از نامگذاری های نامشخص و رمزی خودداری کنید.نام هر تابع ، کلاس یا ... در برنامه نویسی باید نشان دهنده ی وظیفه ی آن باشد برای مثال اگر قرار است تابعی بنویسیم که عمل جمع اعداد را انجام دهد addNumbers گزینه ی خوبی خواهد بود.همچنین حروف نام ها در برنامه نویسی باید از قواعدی نیز پیروی کند که معروف ترین آنها camel case است که به شکل زیر انجام میگیرد :تمام کلمات در نام باید بهم چسبیده باشند و بین آنها هیچ کاراکتری نباشد
تمامی حروف کلمه ی اول کوچک باشد
باقی کلمات بجز کلمه ی اول با حرف بزرگ شروع میشود و بقیه حروف آن کلمه باید کوچک باشد
یک نمونه : strUserNameاصل ششم - اصل YAGNI را رعایت کنید
گاهی برنامه نویسان آینده نگری می کنند و کاری را انجام میدهند که به تصور آنها شاید در آینده مورد نیاز باشد. این نوع کدنویسی اشتباه محض است و باعث میشود بابت چیزی که اصولا نیازی نداریم پروژه را سنگین کنیم و مشکلات جدیدی داشته باشیم. اصل YAGNI مخفف You Aren`t Gonna Need It است و بیان میکند از نوشتن کدهای اضافی که حس میکنید در آینده به آنها نیاز دارید اجتناب کنید چون واقعیت این است که شما به آنها نیاز پیدا نخواهید کرد.پس سعی کنید هرچیزی که در زمان حال نیاز است را به نحو احسن پیاده سازی کنید و چیزهایی که حس میکنید ممکن است در آینده مورد نیاز باشد هرگز کدنویسی نکنید.اصل هفتم - تفکیک نگرانی ها یا اصل SoC در برنامه نویسی
اصل SoC بیان میکند بهتر است نگرانی های لازم در برنامه نویسی از همدیگر تفکیک شوند. اگر نگرانی های خاصی درباره ی طراحی رابط کاربری یک پروژه وجود دارد نباید با نگرانی های مربوط به عملیات سمت پایگاه داده مخلوط شود.رعایت SoC در اصول برنامه نویسییکی از الگوهایی که برای پیروی از این اصل وجود دارد استفاده از الگوی طراحی MVC است. در واقع MVC مخفف سه کلمه ی Model View Controller است و تمامی پروژه های برنامه نویسی را به سه بخش تقسیم بندی میکند.بخش Model مسئولیت نگهداری کدهای لازم برای پایگاه داده را دارد.
بخش View مسئولیت نمایش رابط کاربری یا نتیجه ی نهایی پروژه را دارد.
بخش Controller بعنوان میانجی بین view و model عمل میکند و وظیفه ی کنترل پروژه را برعهده دارد.
این جدا سازی ها باعث میشود خطاهای کمتری رخ دهد و در صورت وجود باگ یا Error سریعا رفع شود.البته در نظر داشته باشید که اصل SoC میتواند هر نوع اقدام دیگری بجز استفاده از MVC نیز باشد و مفهوم آن بطور کلی این است که نگرانی های بخش های مختلف با هم ترکیب نشوند.اصل هشتم - Refactor در برنامه نویسی
اصل Refactor به برنامه نویسان بیان میکند به طور منظم به کدهای خود سر بزنید و آنها را ویرایش یا تکمیل کنید. کدی که برای اولین بار نوشته میشود به منزله ی کاملترین کد نیست و باید به مرور اصلاح و تکمیل شود. پروژه های بزرگ برنامه نویسی همیشه از این اصل پیروی کرده اند و در طول زمان با بروزرسانی های مداوم تکمیل شده اند. هیچ پروژه ای در ابتدا بزرگ و قوی نبوده است.بازدید مجدد ، بروزرسانی بخشی از کدها یا حتی طراحی مجدد یک قسمت از پروژه ، کاملا طبیعی است.این اصل را میتوان با دو اصل DRY و KISS نیز ترکیب کرد تا هنگام بازدید مجدد کدهای تکراری یا پیچیده را ویرایش و مشکلات آنها را رفع کنید.شاید قبلتر با سه اصل DRY ، KISS و YAGNI بخاطر محبوبیت آنها آشنا بوده باشید اما اصول دیگر نیز حائز اهمیت هستند و اگر قصد دارید به یک برنامه نویس حرفه ای یا سینیور تبدیل شوید حتما باید بتوانید کدنویسی تمیز ( Clean Code ) انجام دهید.

پیشنهاد میشود برای هر کلاس یا تابعی که کار خاصی انجام میدهد یک راهنمای چند خطی در ابتدای آن نوشته شود و تا میتوانید از کامنت گذاری تک خطی دوری کنید. برای درک بهتر این اصل میتوانید از سورس کدهای درون گیتهاب استفاده کنید و از کامنت گذاری آنها الهام بگیرید.

اصل پنجم – نامگذاری صحیح متغیرها ، توابع ، کلاس ها و …

در برنامه نویسی نیاز مبرم به نامگذاری است و در هر قطعه کد ممکن است بارها نیاز به نامگذاری اجزای مختلف باشد. نام گذاری صحیح و اصولی باعث میشود که کدهای شما قابل درک باشد و مشخص شود که یک موجودیت قرار است چه وظیفه ای را انجام دهد.

هر نام که انتخاب میکنید باید دارای معنی باشد و از نامگذاری های نامشخص و رمزی خودداری کنید.نام هر تابع ، کلاس یا … در برنامه نویسی باید نشان دهنده ی وظیفه ی آن باشد برای مثال اگر قرار است تابعی بنویسیم که عمل جمع اعداد را انجام دهد addNumbers گزینه ی خوبی خواهد بود.

همچنین حروف نام ها در برنامه نویسی باید از قواعدی نیز پیروی کند که معروف ترین آنها camel case است که به شکل زیر انجام میگیرد :

  • تمام کلمات در نام باید بهم چسبیده باشند و بین آنها هیچ کاراکتری نباشد
  • تمامی حروف کلمه ی اول کوچک باشد
  • باقی کلمات بجز کلمه ی اول با حرف بزرگ شروع میشود و بقیه حروف آن کلمه باید کوچک باشد

یک نمونه : strUserName

اصل ششم – اصل YAGNI را رعایت کنید

گاهی برنامه نویسان آینده نگری می کنند و کاری را انجام میدهند که به تصور آنها شاید در آینده مورد نیاز باشد. این نوع کدنویسی اشتباه محض است و باعث میشود بابت چیزی که اصولا نیازی نداریم پروژه را سنگین کنیم و مشکلات جدیدی داشته باشیم. اصل YAGNI مخفف You Aren`t Gonna Need It است و بیان میکند از نوشتن کدهای اضافی که حس میکنید در آینده به آنها نیاز دارید اجتناب کنید چون واقعیت این است که شما به آنها نیاز پیدا نخواهید کرد.

پس سعی کنید هرچیزی که در زمان حال نیاز است را به نحو احسن پیاده سازی کنید و چیزهایی که حس میکنید ممکن است در آینده مورد نیاز باشد هرگز کدنویسی نکنید.

اصل هفتم – تفکیک نگرانی ها یا اصل SoC در برنامه نویسی

اصل SoC بیان میکند بهتر است نگرانی های لازم در برنامه نویسی از همدیگر تفکیک شوند. اگر نگرانی های خاصی درباره ی طراحی رابط کاربری یک پروژه وجود دارد نباید با نگرانی های مربوط به عملیات سمت پایگاه داده مخلوط شود.

دنیای برنامه نویسی یکی از زمینه های شغلی بسیار جذاب و پرمخاطب در کشور ایران است که هر روز به تعداد افرادی که به آن علاقه مند میشوند افزوده میشود اما با وجود جذابیت زیاد و محبوب بودن تخصص برنامه نویسی نیز همانند دیگر تخصص ها نیاز به اصول خاصی دارد که اگر یک نفر اصول برنامه نویسی را رعایت نکند ممکن است پروژه های او کم کیفیت و ناکارآمد باشد و در طول زمان باعث مشکلات و دردسرهای زیادی برای او شود.کدنویسی اصولی باعث میشود پروژه های یک برنامه نویس منعطف ، تمیز و قابل درک باشد بطوریکه نگهداری از آنها راحت باشد و امکان همکاری از طرف دیگر برنامه نویس ها نیز وجود داشته باشد چرا که بسیاری از پروژه های برنامه نویسی بصورت تیمی و توسط بیش از یک نفر انجام میشود و درک کردن کدهای شما توسط دیگر برنامه نویسان از اهمیت بالایی برخوردار است.اگر در حال یادگیری برنامه نویسی هستید باید بدانید که این بهترین فرصت است که با اصول برنامه نویسی پیش بروید و از همان ابتدا کدنویسی را به شیوه ی صحیح و سالم انجام دهید.اصول های برنامه نویسی چه چیزهایی هستنداصول برنامه نویسی چیست ؟
ما در این مقاله هشت اصل از اصول پایه ای برنامه نویسی را جمع آوری کردیم که در اکثر زبان های برنامه نویسی صدق میکند و با رعایت این اصول در هر زبان برنامه نویسی میتوانید کدهای سالم و تمیزی بنویسید.بعضی از افراد تصور میکنند که اصول برنامه نویسی رابطه ی نزدیکی با کسب تجربه دارد و فردی که مدت زمان طولانی برنامه نویسی کرده است به اصول برنامه نویسی هم مسلط است ولی بارها مشاهده شده که حتی برنامه نویسان حرفه ای نیز از قواعد درست غافل هستند و نمیتوانند کدنویسی تمیز یا اصطلاحا clean code انجام دهند و به همین علت استقبال از کارها و پروژه های آنها کم است یا کارفرماها با دیدن نمونه کارهای آنها از واگزاری پروژه به آنها صرف نظر میکنند.در واقع اصول برنامه نویسی ربطی به تجربه ی فرد ندارد بلکه یک سری قراردادهای پذیرفته شده توسط اکثر برنامه نویسان است که هرشخصی بعنوان توسعه دهنده باید آنها را فرا بگیرد.در ادامه به اصول برنامه نویسی میپردازیم.اصل اول - کدهای DRY بنویسید
اصل DRY مخفف Don't Repeat Yourself است که طبق این اصل شما باید از تکرار بیهوده کدنویسی پرهیز کنید.این یکی از اشتباهات رایج در برنامه نویسی است و شما نباید یک کد تکراری را بارها بنویسید بلکه باید الگوریتمی پیاده سازی کنید که یک تکه کد را چندین بار اجرا کنید مثل استفاده از حلقه ها و ...اگر حس می کنید قسمتی از کدها را عینا کپی و پیست میکنید شما از اصول DRY پیروی نمیکنید.استفاده از حلقه ها در برنامه نویسی بجای کپی کردن کدها باعث میشود کدهای شما کمتر ، منظم تر و دیباگ کردن آن بسیار راحت تر باشد.این اصل در کدنویسی تمیز یا clean code از اهمیت بالایی برخوردار است زیرا وقتی پروژه های برنامه نویسی بزرگتر میشود وجود کدهای تکراری و زیاد انرژی و زمان بسیاری را درگیر میکند. مسلط بودن به الگوریتم های مختلف و شی گرایی در برنامه نویسی تا حدودی باعث میشود که اصول DRY رعایت شود. در مقابل DRY نوعی از برنامه نویسی به نام WET وجود دارد که مخفف Write Everything Twiceیا We Enjoy Typing میباشد.یک نمونه ی خیلی ساده این است که یک تابع بنویسید ده عدد را با هم جمع کند. اگر بخواهید از اصول DRY استفاده کنید باید حلقه ای بنویسید که ده بار تکرار شود و هر بار عدد را با جمع اعداد قبلی جمع کند. شاید کار سه خط کد باشد اما اگر DRY را رعایت نکنید باید برای هر عدد یک خط کدنویسی کنید که میشود ده خط کد ! یعنی حدودا 70% کد اضافه نوشته اید حال تصور کنید درون پروژه ای بزرگ هستید و اگر DRY رعایت نشود چه مصیبتی پیش می آید.اصل دوم - اصل KISS در برنامه نویسی
این اصل بیان میکند که هرچه پروژه های برنامه نویسی شما ساده تر بمانند و از پیچیدگی ها دوری کنند پروژه های شما اصولی تر خواهد بود. بنابراین بعنوان یک برنامه نویس باید سعی کنید روی ساده بودن هر عملیات تمرکز کنید و تا میتوانید آنها را از پیچیدگی نجات دهید. اگر لازم است برای یک کار خاصی سه تابع بنویسید تا آن کار به سادگی انجام بگیرد همان سه تابع را بنویسید. نوشتن یک تابع پیچیده دردی از شما دوا نخواهد کرد.اصل KISS توسط Kelly Johnson ابداع شده است و اعتقاد دارد که پروژه های خوب به جای پیچیدگی ، به سمت ساده سازی حرکت میکنند.برخی از برنامه نویسان عمدا یا سهوا کدهای پیچیده ای می نویسند و احساس میکنند با نوشتن کدهای پیچیده ، سیستمی طراحی میکنند که قدرت بیشتری خواهد داشت یا از نظر دیگران کار آنها ارزشمندتر خواهد بود، اما این اقدام کاملا اشتباه است و نتیجه ی عکس دارد.به یاد داشته باشید همیشه پروژه هایی موفق میشوند که خود را از پیچیدگی های غیرضروری نجات میدهند.اصل سوم - اصل تک وظیفه بودن
این اصل بیان میکند هر کلاس یا ماژول در پروژه های برنامه نویسی باید یک کار واحد انجام دهد. برای هر کلاس در برنامه نویسی باید تنها یک دلیل وجود داشته باشد نه چندین دلیل.اضافه کردن مسئولیت های بیشتر به یک کلاس یا ماژول در برنامه نویسی باعث پیچیدگی پروژه ی شما خواهد شد. این همان اصلی بود که باعث شد سیستم عامل لینوکس به موفقیت چشم گیری برسد زیرا لینوس توروالدز برنامه نویس هسته ی لینوکس از همان ابتدا سعی کرده است لینوکس برپایه ی این اصول برنامه نویسی پیاده سازی شود که هر ابزاری فقط یک کار خاصی را انجام بدهد حتی اگر وظیفه اش بسیار کوچک باشد.اصل چهار - مستندات نویسی و کامنت گذاری را یاد بگیرید
مستندات یا کامنت ها که در لابلای کدها قرار میگیرند توضیحاتی هستند که به دیگران اعلام میکنند اینجا چه اتفاقی می افتد. مستندات نویسی میتواند به چند روش انجام بگیرد :راهنمای تک خطی
راهنمای چند خطی
اصول برنامه نویسی - مستندات یا کامنت گذاریپیشنهاد میشود برای هر کلاس یا تابعی که کار خاصی انجام میدهد یک راهنمای چند خطی در ابتدای آن نوشته شود و تا میتوانید از کامنت گذاری تک خطی دوری کنید. برای درک بهتر این اصل میتوانید از سورس کدهای درون گیتهاب استفاده کنید و از کامنت گذاری آنها الهام بگیرید.اصل پنجم - نامگذاری صحیح متغیرها ، توابع ، کلاس ها و ...
در برنامه نویسی نیاز مبرم به نامگذاری است و در هر قطعه کد ممکن است بارها نیاز به نامگذاری اجزای مختلف باشد. نام گذاری صحیح و اصولی باعث میشود که کدهای شما قابل درک باشد و مشخص شود که یک موجودیت قرار است چه وظیفه ای را انجام دهد.هر نام که انتخاب میکنید باید دارای معنی باشد و از نامگذاری های نامشخص و رمزی خودداری کنید.نام هر تابع ، کلاس یا ... در برنامه نویسی باید نشان دهنده ی وظیفه ی آن باشد برای مثال اگر قرار است تابعی بنویسیم که عمل جمع اعداد را انجام دهد addNumbers گزینه ی خوبی خواهد بود.همچنین حروف نام ها در برنامه نویسی باید از قواعدی نیز پیروی کند که معروف ترین آنها camel case است که به شکل زیر انجام میگیرد :تمام کلمات در نام باید بهم چسبیده باشند و بین آنها هیچ کاراکتری نباشد
تمامی حروف کلمه ی اول کوچک باشد
باقی کلمات بجز کلمه ی اول با حرف بزرگ شروع میشود و بقیه حروف آن کلمه باید کوچک باشد
یک نمونه : strUserNameاصل ششم - اصل YAGNI را رعایت کنید
گاهی برنامه نویسان آینده نگری می کنند و کاری را انجام میدهند که به تصور آنها شاید در آینده مورد نیاز باشد. این نوع کدنویسی اشتباه محض است و باعث میشود بابت چیزی که اصولا نیازی نداریم پروژه را سنگین کنیم و مشکلات جدیدی داشته باشیم. اصل YAGNI مخفف You Aren`t Gonna Need It است و بیان میکند از نوشتن کدهای اضافی که حس میکنید در آینده به آنها نیاز دارید اجتناب کنید چون واقعیت این است که شما به آنها نیاز پیدا نخواهید کرد.پس سعی کنید هرچیزی که در زمان حال نیاز است را به نحو احسن پیاده سازی کنید و چیزهایی که حس میکنید ممکن است در آینده مورد نیاز باشد هرگز کدنویسی نکنید.اصل هفتم - تفکیک نگرانی ها یا اصل SoC در برنامه نویسی
اصل SoC بیان میکند بهتر است نگرانی های لازم در برنامه نویسی از همدیگر تفکیک شوند. اگر نگرانی های خاصی درباره ی طراحی رابط کاربری یک پروژه وجود دارد نباید با نگرانی های مربوط به عملیات سمت پایگاه داده مخلوط شود.رعایت SoC در اصول برنامه نویسییکی از الگوهایی که برای پیروی از این اصل وجود دارد استفاده از الگوی طراحی MVC است. در واقع MVC مخفف سه کلمه ی Model View Controller است و تمامی پروژه های برنامه نویسی را به سه بخش تقسیم بندی میکند.بخش Model مسئولیت نگهداری کدهای لازم برای پایگاه داده را دارد.
بخش View مسئولیت نمایش رابط کاربری یا نتیجه ی نهایی پروژه را دارد.
بخش Controller بعنوان میانجی بین view و model عمل میکند و وظیفه ی کنترل پروژه را برعهده دارد.
این جدا سازی ها باعث میشود خطاهای کمتری رخ دهد و در صورت وجود باگ یا Error سریعا رفع شود.البته در نظر داشته باشید که اصل SoC میتواند هر نوع اقدام دیگری بجز استفاده از MVC نیز باشد و مفهوم آن بطور کلی این است که نگرانی های بخش های مختلف با هم ترکیب نشوند.اصل هشتم - Refactor در برنامه نویسی
اصل Refactor به برنامه نویسان بیان میکند به طور منظم به کدهای خود سر بزنید و آنها را ویرایش یا تکمیل کنید. کدی که برای اولین بار نوشته میشود به منزله ی کاملترین کد نیست و باید به مرور اصلاح و تکمیل شود. پروژه های بزرگ برنامه نویسی همیشه از این اصل پیروی کرده اند و در طول زمان با بروزرسانی های مداوم تکمیل شده اند. هیچ پروژه ای در ابتدا بزرگ و قوی نبوده است.بازدید مجدد ، بروزرسانی بخشی از کدها یا حتی طراحی مجدد یک قسمت از پروژه ، کاملا طبیعی است.این اصل را میتوان با دو اصل DRY و KISS نیز ترکیب کرد تا هنگام بازدید مجدد کدهای تکراری یا پیچیده را ویرایش و مشکلات آنها را رفع کنید.شاید قبلتر با سه اصل DRY ، KISS و YAGNI بخاطر محبوبیت آنها آشنا بوده باشید اما اصول دیگر نیز حائز اهمیت هستند و اگر قصد دارید به یک برنامه نویس حرفه ای یا سینیور تبدیل شوید حتما باید بتوانید کدنویسی تمیز ( Clean Code ) انجام دهید.

یکی از الگوهایی که برای پیروی از این اصل وجود دارد استفاده از الگوی طراحی MVC است. در واقع MVC مخفف سه کلمه ی Model View Controller است و تمامی پروژه های برنامه نویسی را به سه بخش تقسیم بندی میکند.

  • بخش Model مسئولیت نگهداری کدهای لازم برای پایگاه داده را دارد.
  • بخش View مسئولیت نمایش رابط کاربری یا نتیجه ی نهایی پروژه را دارد.
  • بخش Controller بعنوان میانجی بین view و model عمل میکند و وظیفه ی کنترل پروژه را برعهده دارد.

این جدا سازی ها باعث میشود خطاهای کمتری رخ دهد و در صورت وجود باگ یا Error سریعا رفع شود.

البته در نظر داشته باشید که اصل SoC میتواند هر نوع اقدام دیگری بجز استفاده از MVC نیز باشد و مفهوم آن بطور کلی این است که نگرانی های بخش های مختلف با هم ترکیب نشوند.

اصل هشتم – Refactor در برنامه نویسی

اصل Refactor به برنامه نویسان بیان میکند به طور منظم به کدهای خود سر بزنید و آنها را ویرایش یا تکمیل کنید. کدی که برای اولین بار نوشته میشود به منزله ی کاملترین کد نیست و باید به مرور اصلاح و تکمیل شود. پروژه های بزرگ برنامه نویسی همیشه از این اصل پیروی کرده اند و در طول زمان با بروزرسانی های مداوم تکمیل شده اند. هیچ پروژه ای در ابتدا بزرگ و قوی نبوده است.

بازدید مجدد ، بروزرسانی بخشی از کدها یا حتی طراحی مجدد یک قسمت از پروژه ، کاملا طبیعی است.

این اصل را میتوان با دو اصل DRY و KISS نیز ترکیب کرد تا هنگام بازدید مجدد کدهای تکراری یا پیچیده را ویرایش و مشکلات آنها را رفع کنید.

شاید قبلتر با سه اصل DRY ، KISS و YAGNI بخاطر محبوبیت آنها آشنا بوده باشید اما اصول دیگر نیز حائز اهمیت هستند و اگر قصد دارید به یک برنامه نویس حرفه ای یا سینیور تبدیل شوید حتما باید بتوانید کدنویسی تمیز ( Clean Code ) انجام دهید.

5/5 - (9 امتیاز)

نظرات در مورد : هشت اصل برنامه نویسی که توسعه دهندگان باید آنها را رعایت کنند

4 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. ممنون از شما اصول خوبی هست مخصوصا اصول KISS و DRY که من خیلی دوستشون دارم و رعایتشون میکنم ولی باقی اصول رو نمیدونستم خیلی مقاله ی مفیدی بود به قول یک استادی برنامه نویس خوب برنامه نویسی هست که کدنویسی تمیزی بکنه و نتیجه ی کار را مثل هلو تحویل بده وگرنه نوشتن کد رو که همه میتوننن یاد بگیرن دمتون گرم