برنامهنویسی آنقدر ساده است که هر کس میتواند این مهارت را یاد بگیرد اما نوشتن یک برنامهٔ خوب به قدری سخت است که حتی گاهی برنامهنویسان حرفهای هم به راحتی از پس آن برنمیایند! به طور مثال، اگر قرار باشد یک فیچر ساده به برنامه اضافه شود، برنامهنویس مجبور است تغییرات غیرضروری زیادی در کدهایی که خودش زده اعمال کند؛ همین یک قدم ساده کافی است تا اعتماد به نفس برنامهنویسان تازهکار به طور کامل از بین برود و حتی باعث شود برای همیشه از دنیای برنامهنویسی خداحافظی کنند. همهٔ اینها زمانی که شما تمرینات برنامهنویسی را به طور حرفهای انجام داده و در نتیجهٔ آن کدی تمیز در حداقل زمان ممکن بزنید، تغییر خواهد کرد. در ادامه با سکان آکادمی همراه باشید تا با ترفندهایی آشنا شوید که میتوان با دنبال کردن آنها، از سطح یک برنامهنویس مبتدی به یک برنامهنویس تمامعیار مبدل شد.
کدهای قابل فهم بنویسید
برنامهنویسان باید به این درک برسند که برای کامپیوترها کد نمیزنند بلکه خود و دیگر انسانهایی از جنس خودشان قرار است با این کدها سر و کار داشته باشند؛ بنابراین نوشتن کدهای قابلفهم در کدنویسی، اهمیت بسیار بالایی دارد. در حین کدنویسی، باید اطمینان پیدا کنید که از یک قانون نامگذاری ثابت برای متغیرها، فانکشنها، کلاسها و ... پیروی میکنید. علاوه بر این، از یک متغیر یا فانکشن به همراه فاصلهگذاری مناسب استفاده کنید. این روش به شما کمک میکند که کدهای استانداردی بنویسید و اطمینان پیدا کنید که در تمام سورسکد، از شیوهٔ یکسانی برای کدنویسی استفاده شده است.
در مستندات بسیاری به این نکته اشاره شده که یک برنامهنویس خوب کسی است که در سورسکدش به خوبی کامنتگذاری کند اما این در حالی است که ما میگوییم یک برنامهنویس خوب کسی است که کدهایش را به گونهای بنویسد که خود کد گویای ماهیتاش بوده و نیاز به کامنتگذاری چندانی نباشد مگر در مواقع خیلی ضروری. لذا ضروری به نظر میرسد تا کدهایی بنوسیم که به طور مثال خود متغیر گویای ماهیتاش باشد (مثلاً اگر قرار است مبلغ حساب کاربری را در یک متغیر ذخیره سازیم، بهتر است به جای متغیری همچون amount از متغیری تحت عنوان userAmount استفاده کنیم).
از فیچرهای فضایی استفاده نکنید
این عادتی است که بیشتر برنامهنویسان باتجربه را -که مهارت زیادی دارند- بیش از سایرین اذیت میکند؛ در واقع، آنها علاقهٔ شدیدی در به رخ کشیدن مهارتهای خود دارند و خب چه راهی بهتر از استفاده فیچرهای فضایی!
اما در حقیقت، پروژه اصلاً به این فیچرها نیازی ندارد و در نهایت به تخریب آن منجر میشود. به جای انجام چنین کارهایی، تمرکزتان را روی اهداف اصلی بگذارید و تنها فیچرهایی را اضافه کنید که شما را به هدف دلخواهتان نزدیکتر میکنند.
استفاده از ساختار کدنویسی خوب
ساختار کدنویسی مورد استفادهٔ شما، کمک زیادی به خوانا بودن کدهایتان میکند؛ لذا بهتر است کدهای خود را به شکلی دستهبندی کنید که به راحتی قابل اصلاح باشند و تنها در این صورت است که میتوانید با یک اسکرول ساده به دنبال باگها و خطاهای موجود بگردید.
اما گذاشتن تمام کدها در یک فایل کاری است که هنگام دیباگ کردن دردسرساز خواهد شد. به جای چنین کاری، کدها را بر اساس عملکردشان در گروههای مختلف دستهبندی کنید. به طور مثال، با استفاده از کلاسهای مختلفی که حاوی فانکشنهایی هستند که وظایف مرتبط با یکدیگر را انجام میدهند، میتوانید این اطمینان را حاصل کنید که از ساختار کدنویسی مرتبی برخوردار خواهید شد.
به طور مثال، اگر بخواهید در برنامهٔ خود عملکردهای مرتبط با کاربران را هَندل کنید، به سادگی میتوانید یک کلاس تحت عنوان مثلاً UserClass درست نموده و کلیهٔ فانکشنهای مرتبط با فیچرهای مختلف کاربران همچون اضافه کردن کاربر، آپدیت کردن کاربر، حذف کردن کاربر، گرفتن اطلاعات کاربر و غیره را در قالب فانکشنهایی به این کلاس اضافه نمایید.
دیباگ کردن صحیح را یاد بگیرید
به خاطر داشته باشید که هر جا کدی هست، باگی هم ممکن است وجود داشته باشد (برای آشنایی بیشتر با مفهوم باگ، به مقالهٔ آشنايى با دريابان گريس مارى هوپر، کسی که برای اولین بار اصطلاح Bug را باب کرد! مراجعه نمایید.) به همین دلیل بهتر است به جای اینکه سعی کنید اصلاً به باگ نخورید، یاد بگیرید که چگونه هوشمندانه دیباگ کنید.
اگر فکر میکنید که با آزمون و خطا کردن دیباگ میکنید و مشکل حل میشود، سخت در اشتباهید! پس بهتر است یادگیری مهارتهای لازم در این زمینه را جدی بگیرید. نرمافزارهای دیباگکنندهٔ بسیاری برای این کار توسعه داده شدهاند که به راحتی میتوانند در انجام این عمل به شما کمک کنند.
یکی از راهکارهای یادگیری فرایند دیباگ کردن، در حین یادگیری یک زبان برنامهنویسی است؛ به عبارت دیگر، زمانی که شما یک زبان برنامهنویسی جدید -مثلاً جاوا- را فرا میگیرید و کدی نوشتهاید که به درستی کار میکند، حال از عمد شروع به دستکاری سورسکد خود کرده و برنامه را اجرا کنید تا ببینید چه خطایی در معرض دیدتان قرار میگیرد. پس از آشنایی با خطا، کد را به حالت اول درآورده و به سراغ بخش دیگری از سورسکد بروید. در چنین حالتی، شما با خطاهای احتمالی که ممکن است در برنامههای واقعی برایتان پیش بیایند آشنا خواهید شد.
کد قابل مدیریت بنویسید
یک اپ موبایل، وب اپلیکیشن یا به طور کلی هر برنامهای در طول زمان نیازمند یکسری تغییرات و ریفکتورها است؛ نوشتن کدی که خودتان نتوانید مدیریتش کنید -چه رسد به سایر برنامهنویسان- هدر دادن وقت و هزینه است و بدون شک شما را خسته خواهد کرد. لذا ضروری به نظر میرسد که به شکلی کدنویسی کنید که اگر روزی قرار شد فیچر جدیدی به برنامه اضافه شود و یا ادامهٔ توسعهٔ پروژه به دست همکارتان سپرده شود، به سادگی بتوان از سورسکد سر درآورد و با مشکل چندانی مواجه نشد.
قبل از شروع به کدزنی برنامهریزی کنید
برنامهریزی درست قبل از شروع به کدزنی به شما کمک میکند که برای پیادهسازی ایدهای که در سر دارید آماده شوید. بهتر است قبل از شروع هر کاری و نه فقط در زمان کد زدن، یک برنامهٔ مشخص در ذهن داشته باشید. اگر بدانید که قرار است با چه چیزی مواجه شوید و برای رسیدن به آن نقشهٔ از پیش تعیین شدهای داشته باشید، بدون شک زمان کمتری را به هدر میدهید و به سردرگمی نمیرسید. بهتر است همواره تمام قدمهایی که شما را به هدف نهاییتان نزدیکتر میکنند، در ذهن داشته باشید. به طور مثال، یکی از جنبههایی که شدیداً نیاز به بررسی دارد، تحلیل دیتابیس است. اجازه دهید برای روشنتر شدن این مسئله مثالی بزنیم.
فرض کنیم که قصد داریم یک وبلاگ توسعه دهیم؛ در این وبلاگ قرار است مقالات در دستهبندیهای مختلف تقسیمبندی شوند؛ مثلاً یک مقاله در دستهٔ برنامهنویسی، یک مقاله در دستهٔ تجربهٔ کاربری و مقالهٔ دیگری هم در بخش طراحی سایت. وبلاگ با این طرح کدنویسی شده اما پس از چند سال میبینیم که تمایل داریم یک مقالهای که در دستهبندی برنامهنویسی بود، در دستهبندی طراحی سایت هم نمایش داده شود اما این در حالی است که طراحی دیتابیس ما اجازهٔ چنین کاری را نخواهد داد و بخشهایی از اسکمای دیتابیس و سورسکد را میبایست ریفکتور کرد. در صورتی که پیش از تحلیل این پروژه به این فکر میکردیم که شاید روزی قرار باشد یک مقاله در دستهبندیهای مختلف قرار گیرد، از همان بدو امر میتوانستیم یک تیبل اصطلاحاً یکبهچند هم داشته باشیم تا از آن طریق بتوانیم این فیچر ساده را پیادهسازی کنیم.
به طور کلی، تحلیل اولیهٔ پروژه کار نسبتاً دشواری است چرا که شما به عنوان یک توسعهدهنده باید علاوه بر نیازهای فعلی پروژه، احتمالاتی که در آینده ممکن است اتفاق بیافتند را نیز پیشبینی کنید؛ در چنین شرایطی، توصیه میشود که پس از تکمیل تحلیل اولیهٔ پروژه، با یک برنامهنویسی که در این پروژه حضور ندارد هم مشورت کنید. با توجه به اینکه چنین فردی اصطلاحاً Out of The Box (خارج از گود) به قضیه نگاه میکند، ممکن است که دید به مراتب بازتری نسبت به شما داشته باشد و چیزهایی را ببیند که شما حواستان به آنها نبوده است!
از سیستمهای ورژن کنترل استفاده کنید
استفاده از سرویسهای ورژن کنترلی مانند #گیت یکی از خصیصههای برنامهنویسان حرفهای است؛ این سیستمها به شما کمک خواهند کرد تا بدون اینکه مجبور باشید کدهایتان را خطبهخط به دنبال یک اشتباه مرور کنید مشکل را پیدا کنید، به نسخههای پیشین سورسکد رجوع کنید و مجدد از آنها استفاده نمایید و مهمتر از همه اینکه به صورت گروهی روی پروژهای واحد کار کنید. به طور کلی، سیستمهایی همچون Git این امکان را به شما میدهند تا کل پروژهٔ خود را بارها و بارها بررسی کرده و اگر نیاز باشد سالهای آتی برای انجام تغییری به کدهایتان سر بزنید و اصلاحی انجام دهید.
از یادگیری غافل نشوید
سعی کنید در هر فرصتی، چیز جدیدی برای یادگیری پیدا کنید به خصوص این روزها که همه چیز در دنیای توسعهٔ نرمافزار به سرعت در حال پیشرفت است. اگر سرعت خود را با سرعت این پیشرفت تنظیم نکنید، جزو آن دسته از افرادی خواهید بود که از متدهای قدیمی و از رده خارج برنامهنویسی استفاده میکنند و مهارتهایی دارند که این روزها کسی به دنبالشان نیست و در نتیجه کسی از کار کردن با شما لذت نخواهد برد!
مثلاً اگر برنامهنویس پایتون هستید، این قانون شخصی را برای خود در نظر بگیرید که هر روز یک چیز جدید در ارتباط با این زبان برنامهنویسی محبوب فرا بگیرید؛ با یک حساب سرانگشتی، خواهید دید که در هر سال ۳۶۵ نکتهٔ جدید یا خواهید گرفت که بسیار گرانبها است!
یک IDE حرفهای انتخاب کنید
بهرهگیری از یک ادیتور مناسب تغییر قابلتوجهی در سرعت کدنویسی شما ایجاد میکند و کار شما را بسیار آسانتر از قبل میکند.حتی برنامهنویسان فوق حرفهای هم نیاز دارند که این دوست خوب را کنار خود داشته باشند و در کامل کردن کدهای خود از آن کمک بگیرند.
به طور کلی، توصیه میشود کسانی که در ابتدای راه برنامهنویسی هستند تحت هیچ عنوان از IDE استفاده نکنند چرا که این دست نرمافزارها منجر به تنبل شدن برنامهنویس میشوند! اگر در ابتدای راه یادگیری یک زبان برنامهنویسی هستید، توصیه این است که از یک ادیتور کد ساده مثل Notepad در ویندوز، Gedit در لینوکس یا TextMate در مک استفاده کنید. زمانی که شما در ابتدای راه مجبور شوید که هر چیزی را خودتان تایپ کنید و یا مثلاً فکر کنید که فلان فانکشن که برای فلان کار است نامش چه بود، خواهید دید که پس از مدت زمانی کوتاه اصول کار ملکهٔ ذهنتان خواهد شد.
پس از اینکه همه چیز ملکهٔ ذهنتان شد، میتوانید از یک IDE حرفهای همچون اکلیپس، نتبینز و غیره استفاده کرده و تا سرعت کدنویسی شما بالا رفته و در عین حال فرصت داشته باشید روی الگوریتمهای پروژهٔ خود فکر بیشتر کنید.
در استفاده از پروتوتایپها زیادهروی نکنید
بسیاری از دولوپرها برای تمام کردن پروژه و رساندن آن به مراحل نهایی از پروتوتایپها -پروژههای از پیش نوشته شده- بهره میگیرند. علیرغم اینکه به پایان رساندن یک پروژه نیازمند کار و تلاش بیوقفه است، بهترین کار این است که خود شما آخرین نفری باشید که روی آن زمان میگذارید و برایش کوشش میکنید. استفاده از پروتوتایپها راه را برای شما راحت و کوتاه میکنند اما نباید در بهکارگیری از آنها زیادهروی کرد.
به طور کلی، اگر میخواهید در دنیای پررقابت برنامهنویسی باقی بمانید و همیشه برایتان کار باشد، از کارهایی که برنامهنویسان حرفهای انجام میدهند که ۱۰ مورد از مهمترین آنها را در بالا یادآور شدیم هرگز غافل نشوید.
به نظر شما برنامهنویسان حرفهای به غیر از موارد فوق چه ویژگیهای دیگری دارند که آنها را از سایرین متمایز میکند؟ نظرات خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.