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

آفلاین
user-avatar
جواد غلامی
12 آذر 1399, خواندن در 10 دقیقه

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

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

۱- خواندن کد‌های دیگران

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

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

۲- واضح نوشتن کامنت و مستندات

مختصر نوشتن توضیحات‌، در عین واضح بودن کد‌هایتان باعث می‌شود کار همکاران‌تان بسیار ساده‌تر شود‌. با توجه به اینکه شرکت‌‌های مختلفی اولویت‌های مدنظر خود را در مورد چگونگی اسناد و کامنت‌ها خواهند داشت‌، نکاتی وجود دارد که باید در نظر داشته باشید‌:

۱. هنگامی که هدف یک قطعه کد جدید را توصیف می‌کنید‌، دقت کنید که آنچه را که این کد انجام می‌دهد‌، توضیح دهید

به عنوان مثال‌، اگر یک تابع وجود داشته باشد که پروسه x را انجام می‌دهد و در ادامه شما یک تابع دیگر می‌نویسید‌؛ تعریف شما از تابع جدید باید به تابع اضافه شود (‌کارکرد جدید اضافه‌شده به این تابع خاص‌)‌، به جای آن که بگوییم شروع پروسه x (‌که فقط با فراخوانی تابع قبلی انجام می‌شود‌)‌.

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

۲. در کامنت‌ها بیشتر روی اینکه چرا باید کد تمیز باشد تمرکز کنید تا چگونگی

توضیح دادن هدف یک خط کد بدیهی یا الگوریتم می‌تواند روند خواندن کد را سرعت بخشد‌، بطوریکه مفهوم هر خط کد نمایان باشد.

UnhelpfulComments

در نهایت‌، تمام مخاطبین و اهداف خود را در ذهن داشته باشید

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

۳- کد‌تان را تست کنید

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

۴- برقراری ارتباط موثر با تیم و مشتری

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

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

۵- دانستن اینکه چه موقع کمک می‌خواهیم

اما چه زمانی به کمک نیاز داریم‌؟ قطعا‌، در موقعیت‌هایی نیاز به نیروی کمکی داریم. نیروی کمکی که دانش تخصصی و تجربه کاری بیشتری نسبت به ما داشته باشد. از طرف دیگر‌، حل خطا‌ها (دیباگ) بخش بزرگی از برنامه نویسی است و اگر تنها راه ما این است که مثلا فقط از رئیس در شرکت سوال کنیم، ممکن است او به این فکر بیفتد که دقیقا ما چه نقشی داریم.

طبیعتا‌، تلاش برای رفع خطا‌ها یا درخواست کمک در ارتباط با افراد و شرکت‌ها متفاوت است. اما به عنوان چند راهنمایی کلی می‌توان این انتخاب را ساده‌تر کرد‌:

برای شروع‌، ارزش وقت دیگران و از جمله خودتان را درک کنید

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

دوم‌، اهمیت مساله را در نظر بگیرید

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

در نهایت سعی کنید توانایی‌ها و محدودیت‌های خود را بشناسید

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

نتیجه‌گیری

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

منبع

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

آفلاین
user-avatar
جواد غلامی @gholamuuuu
جواد هستم طراح و توسعه دهنده وب. مهندسی برق می خونم
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو