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

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

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

اصول شروع برنامه نویسی
 

  ده اصل:

  • KISS
  • DRY
  • گسترش پروژه
  • دسته بندی خوب
  • وظیفه گذاری هربخش
  • کد مستقل
  • YAGNI
  • اصول بهینه سازی
  • بروز رسانی کد
  • کد تمییز

در ابتدا پیش نیاز های ضروری برای هر برنامه نویس

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

طراحی و تحلیل الگوریتم ها

2-مفاهیم فناوری اطلاعات:

شما به عنوان یک برنامه نویس باید با مفاهیم IT آشنا باشید. مثلا کدهای شما چگونه اجرا می شوند ؟ چگونه به  سمت سرور می روند ؟ پروتکل چیست ؟ مفسر با کامپایلر چه تفات هایی دارند؟ نرم فزار، سخت افزار، شبکه و …  

3-انتخاب زبان برنامه نویسی مناسب:

زبان های زیادی برای برنامه نویسی وجود دارند. ولی تقریبا می توان گفت که سینتکس و یا دستور اکثر زبان های برنامه نویسی مشابه زبان ++C (سی پلاس پلاس) یا C است. پس پیشنهاد می کنم اگر مبتدی هستید آموزش سی پلاس پلاس یا سی را کامل یاد بگیرید.

انواع زبان برنامه نویسی

4-محیط برنامه نویسی مناسب:

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

5-زبان انگلیسی تخصصی:

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

6-انتخاب بهترین اساتید و وسایل کمک آموزشی

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

منابع آموزشی معتبر

اصول اولیه برنامه نویسی:

KISS :

اصل ” keep it simple, stupid “ نه تنها در زندگی ما کاربرد دارد بلکه استفاده از آن بطور خاص در پروژه هایی با حجم متوسط و یا سنگین بسیار ضروری است. فرض کنید شما یک فرد مبتدی هستید و یک پروژه در ذهن دارید و می‌‌خواهید مراحل مختلف انجام آن را تصور می‌کنید. این اصل به شما می‌گوید که همیشه از پروژه ها و کار های کوچک شروع کنید. مثلا اگر به طراحی بازی علاقه مندید نیازی نیست که از بازی های بسیار بزرگ مثل GTA شروع کنید. برای همین بهتر است از پروژه های ساده شروع کنید.با کار کردن بر روی این پروژه های ساده هم اعتماد به نفس پیدا میکنید و هم بطور آهسته زمینه ای برای شروع پروژه های بزرگ برای شما فراهم سازی میشود.در واقع همین پروژه های کوچک و ساده هستند که باعث علاقه مندی شما و آشنایی بیشتر با یک زبان میشود.پس بهتر است ساده شروع کنیم بدلیل اینکه هرچه پروژه سنگین تر باشد احتمال وقوع ارور ها و باگ ها بیشتر است. همینطور رفع کردن آن ها زمان طولانی تری را از شما میگیرد. برای همین بهتر تر زمانی که به تسلط کافی رسیدید سمت پروژه های بزرگ تر بروید.

DRY :

اصل “don’t repeat yourself ” به شما کمک می کند تا کد تمیزی داشته باشید و به راحتی بتوانید آن را تغییر دهید. این اصل این گونه رفتار می کند که از تکرار بیهوده data جلوگیری می کند. وقتی یک تکه از کد در جاهای مختلف تکرار شود شما این قانون را نقض کرده اید.و فقط باعث پیچیده تر شدن و افزایش حجم برنامه خود میشوید.

در مقابل این اصل برنامه نویسی، اصل (WET (write everything twice قرار دارد. بهترین کار برای شناسایی نقض شدن این اصل پرسیدن این سوال از خودتان است. برای این که بخواهید طرز رفتار این برنامه را تغییر دهید نیاز دارید چند تکه کد را تغییر دهید.

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

همواره پروژه خود را گسترش دهید : 

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

گسترش دادن پروژه

دسته بندی کردن بهتر از ارث بری است

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

خاصیت ارث بری

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

هر بخش مسئولیت مجزایی داشته باشد

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

همه چیز را به جزئی ترین چیز تبدیل کنید

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

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

YAGNI

نحوه نگرش اصل ” you aren’t gonna need it ” به این نحو است که شما در پروژه خود، نباید توابع یا متدهایی طراحی کنید که حدس می زنید در آینده به آن نیاز دارید. ممکن اصلا از این متد ها هیچ وقت استفاده نکنید و وقت شما هدر رفته باشد. مهم تر از این ساختار کد شما پیچیده تر می شود.

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

از بهینه سازی زودرس جلوگیری کنید

این اصل شباهت بسیار زیادی با اصل YAGNI دارد. با این تفاوت که اصل YAGNI از وجود توابع و یا مسئولیت های اضافی جلوگیری می کند. ولی نحوه نگرش این اصل به این صورت است که از بهینه سازیالگوریتم ها در ساختار برنامه، قبل از زمانی که ضروری هستند، جلوگیری می کند.

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

اکنون می خواهیم این اصل برنامه نویسی را با یک مثال شبیه سازی کنیم. فرض کنید برنامه شما در فرایند بارگذاری تصاویر ضعف دارد و این کار را کند، انجام می دهد. شما برای رفع این مشکل الگوریتمی ارائه می دهید که زمان load کردن تصویر از دیتابیس را کاهش می دهد و فرایند بارگذاری تصاویر به خوبی انجام می شود. در صورتی که ضعف اصلی برنامه ما پروسه بارگذاری تصاویر بوده است و load کردن تصاویر در زمان مناسبی انجام می شده است.

Refactor, Refactor, Refactor

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

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

کد تمیز از کد خلاقانه ارزش بیشتری دارد

تمییز کد نوشتن

 

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

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

کلام آخر :

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

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

نشانی ایمیل شما منتشر نخواهد شد.

4 + چهار =