۱۰ عادت خوب برنامه نویسی برای توسعه دهندگان

در این مقاله به بررسی و معرفی ۱۰ عادت خوب برنامه نویسی برای توسعه دهندگان میپردازیم که میتوانند موجب شوند با تلاش کمتر، کدنویسی تمیز تر و هوشمندانه تری انجام دهیم. با ما همراه باشید تا هم اکنون به توسعه این عادت ها در خودمان شروع کنیم.۱ – کدهای خوانا (Human-Friendly) بنویسیمهمیشه به یاد داشته باشید که فقط برای کامپیوترها کدنویسی نمیکنید. بلکه برای آینده خودتان هم اینکار را انجام میدهید. بنابراین بسیار مهم است که کدهای خوانا (readable) بنویسید. در حقیقت، برنامه نویسی مانند نوشتن یک شعر خوب است. لحن باید متناسب باشد، جملات و کلمات توصیفی نیز باید ساختار خوبی داشته باشند. (دوره های آموزشی برنامه نویسی و طراحی وبسایت – سیر تا پیاز)برای ساخت این این عادت خوب برنامه نویسی ، در اینجا به چند نکته برای نوشتن کدهای خوانا اشاره شده است:کنوانسیون نامگذاری مناسبی را دنبال کنیدبرای مثال، در صورتی که شما حرف اول متغیرهای private را با علامت underscore شروع میکنید، باید این ساختار را در مابقی کدتان دنبال کنید. اگر بصورت تیمی کار میکنید، قبل از دستکاری کدها، درباره کنوانسیون و استانداردهای نامگذاری عناصر پروژه به توافق برسید.با این حال، بیشتر زبان های برنامه نویسی، اکنون استانداردهای نامگذاری خودشان را دارند که ممکن است توسط خود زبان برنامه نویسی یا جامعه توسعه دهندگان آن زبان تعریف شده باشند؛ بنابراین در اکثر مواقع نیازی به معرفی کنوانسیون های نامگذاری خودتان ندارید.اسامی معنی دار متدها و متغیرهانام متغیر و متد باید بخوبی کارایی کد را توصیف کند. به عنوان مثال، مخفف های غیر معمول مانند Sort_PT() میتوانند پیچیده بنظر برسند: مفهوم PT چیست؟ پس باید نامگذاری آن را برای درک بهتر، به Sort_PostType() بهینه سازی کنیم.با این حال استثناهایی نیز میتوانند وجود داشته باشند. اکثر برنامه نویسان از قبل با اصطلاح ID آشنا هستند و میدانند که به معنی identity میباشد. پس همیشه میتوانیم در نامگذاری هایمان از کلمه “ID” استفاده کنیم.تو رفتگی و استفاده از Line Breakبا چند کلید ساده Tab میتوانید کل ساختار کدتان را آشکار و قابل فهم کنید و برنامه ای که نوشتید را با درک واضح تر از چگونگی کارکرد آن، ویرایش کنید. هنگامی که دو دستور در یک خط، کارهای متفاوتی را انجام میدهند، از line break استفاده کنید. برای مثال بهتر است خصوصیات CSS را بصورت زنجیره ای در یک خط ننویسید چراکه کار را پیچیده میکند.۲ − سازمان یافته فکر کنیدعلاوه بر کدنویسی تمیز تر، ساختار و سازمان دهی کد نیز به مسئله خوانایی کمک میکند. بسیار مهم است که کدهایتان را گروه بندی کنید تا به سادگی بتوانید ویرایش کنید. (اگر نیاز به چندین بار اسکرول کردن برای یافتن بخشی از کدتان دارید، باید روی بهینه سازی ساختار آن بیشتر کار کنید)همچنین تمام کدتان را در یک اسکریپت کوچک قرار ندهید. اگرچه بنظر میرسد نوشتن بیشتر از ۸۰۰۰ خط کد در یک فایل کار راحتی باشد، اما باید به فکر دیباگ کردن هم باشد. همیشه به فکر راحتی تغییر کدهایتان باشید.بهترین تمرین، جداسازی کدها به فایلهای مختلف بر اساس کارایی اصلی شان میباشد. برای مثال manager و interface و animation و extension و … .در صورت امکان، مطمئن شوید که زبان فقط یک هدف مشخص را انجام میدهد. اگر شما یک افکت انیمیشنی را در CSS3 مینویسید، نوشتن انیمیشن با جی کوئری را بیخیال شوید. مگر اینکه یک دلیل کافی برای اینکار داشته باشید. اگر هم مجبور به انجام اینکار باشید، بخوبی در فایل CSS درباره این استثنا کامنت گذاری کنید.۳ − اول فکر کن، بعد بنویسیک عادت خوب برنامه نویسی دیگر! قبل از زدن اولین کلید، بسیار مهم است که بدانید دقیقا چه کاری میخواهید انجام دهید. در دنیای برنامه نویسی، داشتن برنامه ریزی و یک نقشه راه، اهمیت بسیاری دارد. نوشتن یک نویگیشن منوی ثابت کار دشواری نیست، اما اگر بخواهیم منو ریسپانسیو باشد و همچنین زمانی که بازدید کننده صفحه را اکسرول میکند، قابلیت مینیمایز کردن خودش را داشته باشد؟شروع به نوشتن کد بدون داشتن یک اصول مشخص در ذهن، معمولا موجب تلاش های مجدد، نا امیدی و حتی افسردگی میشود. پس بجای حل مسئله و برنامه نویسی با این روش، بسیار ساده تر است که ابتدا اصول اولیه را کاملا مشخص و واضح کنید و سپس یک راه حل بنویسید. به عنوان مثال برای منوی ریسپانسیو میتوانید گام های زیر را انجام دهید:از فریمورک بوت استرپ استفاده کنید.منوی نویگیشن را طراحی کنید.کلاس .navbar-fixed-top را به منو اضافه کنید.یک اسکریپت jQuery برای تغییر سایز منو هنگام اسکرول صفحه به میزان ۲۰۰px توسط کاربر بنویسید.اگر کاربر دوباره به بالا اسکرول کند، سایز منو را به حالت اول برگردانیدرفع مشکلدر حال حاضر، شما باید مشکلات اساسی دیگری را کشف کنید. مثلا چگونه میتوانیم سایز لوگوی سایت را در حالت ریسپانسیو نویگیشن منو، تغییر دهیم. یا اینکه چگونه میتوانیم منوی dropdown را تغییر سایز دهیم و همچنین اگر نیاز باشذ، چگونه میتوانیم منوی سایت را از حالت fixed خارج کرده و آن را داینامیک کنیم. پس از انجام تمام این موارد، منوی شما آماده است.۴ – کدهای قابل مدیریت بنویسیدمطمئن هستم که دوست ندارید صدها متغیر را بصورت جداگانه و خط به خط تغییر دهید. متاسفانه من به مدت یکسال این شیوه را پیش گرفتم. یک تجربه کسل کننده بود و پس از آن یاد گرفتم چگونه کدی بنویسم که به کمترین تغییرات دستی ممکن نیاز داشته باشد.پس چگونه به این هدف برسیم؟ از آرایه استفاده کنید. آرایه ها برای نگهداری متغیرها بسیار عالی هستند و میتوانید به این متغیرها به سادگی استفاده از حلفه for یا متد for each دسترسی داشته باشید.همچنین روش های داینامیک تری برای افزدون، تنظیم و دریافت داده در برخی از زبان های برنامه نویسی وجود دارند. مانند List و LINQ در زبان سی شارپ. پس بطور مرتب درباره ویژگی های بهتر، کتابخانه ها و پلاگین ها برای مدیریت هوشمندانه تر داده ها، تحقیق کنید. دوره آموزش سی شارپ (مقدماتی تا فوق پیشرفته)نهایتا برای جلوگیری از ویرایش و تغییرات مداوم در کدتان، کدهای مستقل یا به اصطلاح “highly independent code” بنویسید؛ طوری که هنگام افزدون ویژگی های جدید و یا اعمال کردن تغییرات، سیستم را از کار نیندازد.۵ − ویژگی های بیش از حد پیاده سازی نکنیدوقتی مهارت هایمان رشد میکنند، سعی میکنیم راه حل های پیچیده تری توسعه بدیم که به مجموعه گسترده ای از نیازها پاسخگو باشند. این یک نشانه خوبی از افزایش مهارت های برنامه نویسی است، اما باید محتاط باشید چراکه ممکن است با پیاده سازی ویژگی های غیر ضروری بسیار زیاد و بیش از حد در پروژه، کار را پیچیده کنید.در طراحی و توسعه، بسیار مهم است که مدام به خودمان هدف اصلی پروژه را یاد آوری کنیم و فقط ويزگی هایی را اضافه کنیم که هدف را محقق کنند. برای مثال اگر میدانید سایز یک کالکشن دقیقا چه میباشد، از آرایه استفاده کنید. اگر تابع List بتواند داده را طوری که میخواهید دریافت کند، از LINQ پیشرفته استفاده نکنید.چرا باید یک پلاگین توسعه بدیم که به سختی و بسیار کم از آن استفاده کنیم؟ فقط به دلیل اینکه میتوانید، به معنی اینکه باید توسعه بدهید نیست. از زمان خود صرفه جویی کنید. یه یاد داشته باشید که بخش بزرگ و وقت تلف کن از اتمام یک پروژه، فرآیند دیباگ کردن میباشد و نباید زمان از دست بدهید.۶ − Debugging هوشمندانه را یاد بگیریدهرجایی که کد باشد، آنجا باگ هایی هستند. داشتن یک راه حل بدون باگ یا به اصطلاح bug-free غیر ممکن است. بنابراین مهارت های Debugging بسیار هائز اهمیت میباشند. شاید راهکار باستانی trial-and-error پاسخگو باشد، اما یک روش سریع نیست و بسیار کند است. همچنین، چرا باید خودتان را شکنجه دهید، در حالی که debugger هایی برایتان توسعه داده شدند؟ابزارهای Debuggingامروزه مرورگرها به ابزارهای برنامه نویس یا DevTools بسیار قدرتمند و پرکاربرد، مجهز شدند که دارای قابلیت هایی از جمله error detection و breakpoint setting و expression tracking و performance checking هستند. همه برای راحتی Debugging برای شما. پس این عادت خوب برنامه نویسی را در خودتان پرورش دهید و Debugging هوشمندانه تر را یاد بگیرید. (دوره های آموزشی برنامه نویسی و طراحی وبسایت – سیر تا پیاز)جتی IDE هایی همچون Aptana Studio 3 و Xamarin Studio دیباگرهای قدرتمند و built-in خودشان را منتشر کردند، بنابراین وقت گذاشتن برای یادگیری آنها میتواند کارتان را بسیار ساده تر کند.۷ − ادیتور قدرتمندتری پیدا کنیداستفاده از ادیتور مناسب نه تنها میتواند دانش شما را افزایش دهد، بلکه موجب تسریع روند توسعه و تکمیل پروژه میشود. صرفنظر از اینکه شما چقدر با تجربه و حرفه ای هستید، شدیدا توصیه میشود که حتما از ادیتورهایی با قابلیت code completion استفاده کنید. مانند Visual Studio Code و Aptana Studio 3.نه تنها انجام اینکار به افراد تازه کار کمک بسیار زیادی در یادگیری و شناخت سینتکس میکند، بلکه میتواند توسط افراد حرفه ای جهت نوشتن کدهای بهتر و توسعه راهکارهای هوشمندانه تر، استفاده شود. به یاد داشته باشید که اکثر IDE ها از قابلیت code completion فقط برای برخی از زبان های برنامه نویسی پشتیبانی میکنند. پس ابزار درست را انتخاب کنید.۸ − Version Controlزمان هایی خواهد بود که شما یک خطای بزرگ برنامه نویسی انجام دهید و بخواهید به یک نسخه قبل تر از کدتان برگردید. حال اگر خطای شما شامل چندین فایل در codebase شود و تاریخ آخرین ویرایش برخی از آنها چند روز یا حتی چند ماه قبل باشد، چه اتفاقی خواهد افتاد؟به همین دلیل است که سیستم version control بسیار اهمیت دارد و به عنوان یک توسعه دهنده، حتما باید عادت خوب برنامه نویسی انجام ورژن کنترل را در خودتان توسعه دهید.سیستم های کنترل ورژندر میان چندین نرم افزار Version Control موجود، Git با داشتن مستندات آنلاین بیشمار، محبوب ترین و پر استفاده ترین مورد میباشد. بوسیله Git میتوانید به تعداد دلخواه اصلاحات پروژه های خود را نگهداری کنید، بخشی از فایل که آخرین بار ویرایش کردید را بررسی کنید و هر موقع که خواستید به نسخه های قبلی برگردید.بلکه انجام اینکار برای افراد تازه کار تا حدی اضافه بر سازمان بنظر برسد چرا که در اصل برای پروژه های تیمی توسعه یافته است. اما در واقع یک ابزار بسیار عالی و ضروری برای پروژه های شخصی در بازه زمانی طولانی است. ممکن است به دلیل اینکه در سیستم Git چیزهای بسیاری برای یادگیری وجود دارد (حتی در حالت GUI)، برای یادگیری و استفاده از آن دو دل باشید، اما اگر قصد حرفه ای شدن در برنامه نویسی را داشته باشید، دیر یا زود باید گیت را یادبگیرید که البته بهتر است هرچه زودتر آن را یاد بگیرید.۹ − ورزش کنیدشاید یکی از مهم ترین عادت های فردی برای یک برنامه نویس ورزش کردن و داشتن یک فعالیت فیزیکی مرتب باشد. کدنویسی و دیباگینگ فرآیند خسته کننده میباشد و میتواند از نظر سلامت فیزیکی و روحی به شما لطمه بزند. مگر اینکه بطور مرتب ورزش کنید.ورزش هایی مانند دویدن، فیتنس، بوکس و کیک بوکسینگ، والیبال و بسکتبال به دلیل جنب و جوش و تحرک فراوان، گردش خون را در بدن و مغزتان افزایش میدهند و موجب سلامتی روحی و جسمی و همچنین افزایش قدرت حافظه (که در برنامه نویسی برایمان مهم است) میشود. حداقل ۳ الی ۵ روز در هفته بمدت یک ساعت و نیم به انجام ورزش مورد علاقه خود بپردازید. یا اینکه حداقل ۳۰ دقیقه الی ۱ ساعت در روز با دور تند پیاده روی کنید.۱۰ − همیشه چیزهای جدید یاد بگیریددر کار برنامه نویسی، به سرعت میتوانید از بازی خارج شوید. تکنولوژی و علم کامپیوتر به سرعت در حال رشد است و حتی بسیاری از روش های طراحی و توسعه و زبانهای برنامه نویسی در طی ۱۰ سال گذشته منسوخ شده اند. حتی اگر شما فارغ التحصیل از یک دانشگاه برتر در این زمینه باشید، در اولویت استخدام قرار نمیگیرید.تنها راه نجات یافتن و شکوفا شدن، یادگیری مداوم میباشد. باید یادگیری مداوم که یک عادت خوب برنامه نویسی میباشد را بخوبی در خود پرورش دهید. بهترین راه برای یادگیری؟ مطالعه و تماشای ویدیوهای آموزشی کافی نیست. بلکه باید تمرین داشته باشید و پروژه های خودتان را تعریف کنید و سعی کنید آنها را انجام دهید. خودتان را با پروژه های عملی مختلف به چالش بکشید و چیزی که یاد گرفتید را با حالت های مختلف عملی کنید. این شما را وادار میکند تا کارآمدتر فکر کنید. https://codefriend.ir/2020/05/01/۱۰-عادت-خوب-برنامه-نویسی/