در دوران قرنطینه که از خانه کار میکنیم، ممکن است احساس تنهایی یا حواسپرتی داشته باشیم. این دو، چالشهای روزانهای هستند که برای حفظ روحیه و نگهداشتن بهرهوری در سطح بالا، باید با آنها مقابله کنیم. یکی از راهحلهای این مشکلات، برنامه نویسی دونفره بهصورت ریموت است. یعنی یک همتیمی برنامهنویسی داشته باشیم و هر روز با هم کار کنیم و از هم یاد بگیریم. با این شیوه، راحتتر با چالشهای برنامهنویسی روبهرو میشویم. چراکه همتیمی ما هم مثل خودمان وقت و انرژی خود را صرف کار میکند. پس میتوانیم با هم روی یک پروژه نرمافزاری همکاری کرده و درباره تمامی مراحل کار و راهحلهای احتمالی بحث کنیم.
خوبی برنامه نویسی دونفره ریموت یا Remote Pair Programming این است که حتی اگر همتیمی برنامهنویسی ما در جای دیگری از دنیا باشد، همچنان میتوانیم با هم کار کنیم. این روش سبک زندگی کاری ما را در جهت مثبتی تغییر میدهد.
منظور از برنامه نویسی دونفره یا Pair Programming چیست؟
برنامهنویسی دونفره یا Pair Programming به برنامهنویسی همزمان دو توسعهدهنده روی یک کامپیوتر گفته میشود. در این کار تیمی دونفره، یک پیشبرنده یا driver و یک هدایتکننده یا navigator وجود دارد. وظیفه پیشبرنده اصلاح کد است، درحالیکه هدایتکننده وظیفه مشاهدهگری را به عهده دارد. او پیشنهاد میکند کدام کد اجرا شود و اشتباهات برنامهنویسی را برطرف میکند. در برنامه نویسی دونفره بهتر است نقش پیشبرنده و هدایتکننده همواره با هم عوض شود تا به راهحلهای بهینه دست پیدا کنیم. این روش از طرفی باعث تشویق افراد به کار گروهی و به اشتراک گذاشتن اطلاعات میشود. از طرف دیگر، کدهای تولیدشده با این روش معمولا کیفیت بالاتر و باگهای کمتری دارند؛ چون هدایتکننده در حین برنامهنویسی، کد را بازبینی کرده و همچنین در مورد نحوه اجرای برنامه با پیشبرنده طوفان فکری میکند.
چگونه به شکل ریموت یا دورکار Pair Programming کنیم؟
در دوران کرونا بهدلیل قرنطینه خانگی، یا به هر دلیل دیگری ممکن است شما و همتیمی برنامهنویسیتان در یک مکان یکسان نباشید. همچنین، شاید امکان کار کردن روی یک کامپیوتر را نداشته باشید. در این شرایط، باز هم میتوانید بهصورت تیمی همکاری کنید. به این کار، برنامه نویسی دونفره ریموت میگوییم.
در برنامهنویسی ریموت، هرکدام از توسعهدهندهها روی یک کامپیوتر متفاوت کار میکند. آنها از طریق نرمافزارهای ارتباطی ویدیو کنفرانس مثل Google Hangouts، اسکایپ، یا زوم با یکدیگر صحبت میکنند و صفحه نمایش خود را به اشتراک میگذارند. با استفاده از یکی از این ابزارها، پیشبرنده صفحه نمایش خود را به اشتراک میگذارد تا هدایتکننده بتواند آنچه را که او مینویسد، ببیند.
همچنین، پلاگینهایی برای Atom، Sublime، VS Code و تقریبا هر نوع ویرایشگر کد دیگری وجود دارد که به شما اجازه میدهد IDE خود را با سایر توسعهدهندهها به اشتراک بگذارید و در عین حال کد را اصلاح کنید. میتوانید به توسعهدهنده دیگر به کامپیوتر خودتان دسترسی از راه دور بدهید.
با این وجود، به دو دلیل زیر توصیه میکنیم که تنها از یک ابزار ویدیو کنفرانس استفاده کنید:
- تنها پیشبرنده باید کد بنویسد. اگر شما به نرمافزار ویرایشگرِ کدِ پیشبرنده از طریق یک پلاگین یا بهصورت ریموت دسترسی دارید، گاهی وسوسه میشوید با تایپ کردن به پیشبرنده کمک کنید. شاید این کار برخلاف قوانین نباشد، اما نیازمند این است که از قبل با پیشبرنده هماهنگ کرده باشید تا این کار شما دخالت در برنامهنویسی او به حساب نیاید.
- با کار کردن روی دو کامپیوتر جداگانه، خودتان را مجبور میکنید هر بار که نقشهایتان را عوض میکنید، از «کنترل نسخه» برای دنبال کردن تغییرات و به اشتراک گذاشتن کد با یکدیگر بهترین استفاده را داشته باشید.
اجازه دهید ببینیم وقتی نقشهایتان را عوض میکنید، چه اتفاقی میافتد. ابتدا، پیشبرنده کنونی آخرین تغییرات خود را اعمال میکند. همچنین، کاری را که انجام داده است، در یک کامنت توضیح میدهد. بعد از آن، این تغییرات را در یک فضای ریموت ذخیره کرده و آخرین نسخه از کد را در اختیار هدایتکننده قرار میدهد.
حالا هدایتکننده، پیشبرنده میشود و آخرین تغییرات را روی کامپیوتر خود برده و فایل مربوطه را باز میکند. دوباره در این مرحله، صفحه نمایش خود را به اشتراک میگذارد و کدنویسی را ادامه میدهد.
مزایای برنامه نویسی دونفره ریموت چیست؟
برنامهنویسی دونفره ریموت مزایای زیادی دارد. مهمترین مزیت این نوع برنامهنویسی این است که دو برنامهنویس با مهارتهای مختلف، یک مشکل یکسان را از زاویههای مختلف میبینند. آنها در حین کدنویسی به یکدیگر نظر میدهند و در مورد هر مشکل بحث میکنند. با این روشِ همفکری، کدی با کیفیت بالاتر و ایرادات کمتر تولید میشود. همچنین، آنها بهطور مداوم با یکدیگر در تماس هستند. درنتیجه دچار حواسپرتی نمیشوند و در حین کار متمرکز میمانند. این نوع برنامه نویسی دونفره ریموت مزایای دیگری هم دارد که عبارتاند از:
- بازخورد مداوم
زمانیکه شما پیشبرنده هستید و مسئولیت کدنویسی با شما است، هدایتکننده همواره درباره کد تولیدشده بازخورد میدهد. دیدگاه متفاوتی که هدایتکننده ارائه میدهد کمک میکند تا کد نوشتهشده را بهتر و بهینهتر کنید.
- سختی کار کمتر
دو ذهن بهتر از یک ذهن کار میکند. وقتی مشکلات را با کسی به اشتراک میگذارید، از سختی آن کم میشود. اگر برای مشکلی، راهحلی به ذهنتان نمیرسد، شخص دیگر با شما همفکری میکند تا راحتتر مشکل را رفع کنید.
- تمرکز بیشتر
چون در این روش همکاری، صفحه نمایش و میکروفنتان را به اشتراک میگذارید، حواستان کمتر به شبکههای اجتماعی پرت میشود. همچنین، در این شرایط، افرادی که دور و اطراف شما هستند، مثل خانواده، کمتر ممکن است در کارتان وقفه ایجاد کنند.
- تعامل اجتماعی
احساس تنهایی چالش اصلی کسانی است که دورکاری میکنند. این نوع همکاری بسیار فراتر از برنامهنویسی است. چون با وقت زیادی که با همکارتان میگذرانید، به احتمال زیاد به دوستانی نزدیک و حامی یکدیگر تبدیل میشوید.
- مسئولیتپذیری
اگر با همتیمی برنامهنویسیتان برنامهای منظم و از پیش آماده داشته باشید، هم مسئولیتپذیر میشوید و هم از وقتتان بهترین استفاده را میکنید.
- مهارتهای همکاری
یکی از مهمترین مهارتهایی که با این روش همکاری کسب میکنید، مهارت همکاری و برقراری ارتباط است. اگر زمانی در آینده بهدنبال حرفه جدیدی بگردید، این مهارتهای ارتباطی در کنار مهارتهای فنی، به شما کمک میکنند تا موقعیت شغلی بهتری را به دست بیاورید.
- تجربه دنیای واقعی (Real-World)
برنامهنویسی دونفره بهصورت ریموت به شما کمک میکند تا با کار گروهی، نحوه ساختن نرمافزار را بیاموزید. همچنین، باعث میشود استفاده از «کنترل نسخه» و Gitflow را یاد بگیرید. یادگیری این مهارتها به شما در پیدا کردن حرفه آیندهتان کمک بسیاری میکند.
در نهایت، به نظر میرسد برنامه نویسی دونفره ریموت روش خیلی خوبی برای کار کردن باشد. چون برنامهنویسی دونفره این پتانسیل را دارد که شما را به توسعهدهندهای بهتر تبدیل کند و به شما کمک میکند با سرعت بسیار بالاتری به یادگیری بپردازید.
کلام آخر
قطعا برنامه نویسی دونفره از راه دور چالشهایی دارد. اما کلید موفقیت در انجام این کار تعامل و ارتباط است. انتظاراتتان را به یکدیگر بگویید و از سیستم صحیح و خطا برای یافتن راهی که به نظر هر دو نفرتان بهترین است، استفاده کنید. یادتان باشد که هیچ گروه دونفرهای شبیه دیگری نیست.
این روشِ همکاری شیوهای بسیار قدرتمند برای توسعه مهارتهای برنامهنویسی و ارتباطی است. همچنین طبیعت به اشتراک گذاشتن اطلاعات در این همکاری، آن را به روشی بسیار جذاب تبدیل میکند. حتی با وجود این محدودیت که در مکانهای مختلف و در منطقههای زمانی متفاوتی هستیم، این امکان را داریم که با تشکیل تیم با مهندسان مختلف همواره در حال آموختن مطلب جدیدی باشیم. همچنین، تولید کدی که بهخوبی روی آن فکر شده است، نهتنها لذتبخش است، بلکه ما را به افرادی حرفهایتر در زمینه برنامهنویسی تبدیل میکند.
آیا شما تابهحال برنامه نویسی دونفره از راه دور را تجربه کردهاید؟ این تجربهها را با ما در میان بگذارید.
منابع: Medium