Жұптық бағдарламалау – екі бағдарламашы бір компьютерде жұмыс істейтін әдіс. Кодты жазушы мен қадағалаушы рөлдерін алмастырып, сапаны арттырып, қателерді азайтады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бағдарламалық жасақтаманы әзірлеудің бірлескен әдісі
Collaborative technique for software development
Жұптық бағдарламалау – екі бағдарламашы бір жұмыс орнында бірге жұмыс істейтін бағдарламалық жасақтаманы әзірлеу әдісі. Бірі – жүргізуші, код жазады, екіншісі – бақылаушы немесе навигатор, енгізілген әрбір код жолын қарап шығады. Екі бағдарламашы рөлдерін жиі ауыстырып отырады. Бақылаушы жұмыстың "стратегиялық" бағытын қарастырып, жақсартулар бойынша идеялар мен болашақта туындауы мүмкін мәселелерді анықтайды. Бұл жүргізушіге ағымдағы міндетті орындаудың "тактикалық" жақтарына толық назар аударуға мүмкіндік береді, ал бақылаушы қауіпсіздік желісі және кеңесші рөлінде болады.
Pair programming is a software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently. While reviewing, the observer also considers the "strategic" direction of the work, coming up with ideas for improvements and likely future problems to address. This is intended to free the driver to focus all of their attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.
Экономика
Жұппен бағдарламалау жеке жұмыс істейтін бағдарламашылармен салыстырғанда кодты дайындауға жұмсалатын адам-сағаттарды арттырады. Қателіктерді жасамас бұрын болдырмаудан басқа, көзге көрінбейтін пайдалар да болуы мүмкін. Мысалы, бірге жұмыс істеген кезде телефон қоңырауларын немесе басқа алаңдатушы жағдайлардан сыпайы түрде бас тарту, келісілген уақыт аралықтарында аз үзіліс жасау немесе телефонға жауап беру үшін үзілістерді бөлісу (бірақ біреу күтіп тұрғандықтан жұмысқа жылдам оралу). Команда мүшелерінің бірі көбірек шоғырлануға ие болып, екіншісіне назарын аударуға немесе оятуға көмектесе алады, егер олар назарынан айырылса, және бұл рөл мерзімімен алмасады. Мүмкін, бір мүше екіншісі білмейтін тақырып немесе техника туралы біледі, бұл шешімді табу немесе сынау кешігуін болдырмайды немесе жақсы шешім табуға мүмкіндік береді, соның арқасында бағдарламашының білімі, тәжірибесі және шеберлігі жеке жұмыс істеумен салыстырғанда кеңейеді. Осы және тағы да көптеген көзге көрінбейтін пайдаларды дәл өлшеу қиын болуы мүмкін, бірақ олар жұмыс уақытын тиімдірек етуге септігін тигізеді.
Pair programming increases the man hours required to deliver code compared to programmers working individually. In addition to preventing mistakes as they are made, other intangible benefits may exist. For example, the courtesy of rejecting phone calls or other distractions while working together, taking fewer breaks at agreed upon intervals or sharing breaks to return phone calls (but returning to work quickly since someone is waiting). One member of the team might have more focus and help drive or awaken the other if they lose focus, and that role might periodically change. One member might know about a topic or technique that the other does not, which might eliminate delays to finding or testing a solution, or allow for a better solution, thus effectively expanding the skill set, knowledge, and experience of a programmer as compared to working alone. Each of these intangible benefits, and many more, may be challenging to accurately measure but can contribute to more efficient working hours.
Қанағаттанғандық
2000 жылы жұптық бағдарламалаушылардың онлайн сауалнамасы бойынша, бағдарламалаушылардың 96% жұптық бағдарламалау кезінде жалғыз бағдарламалаудан көбірек ләззат алатынын айтты. Бұдан әрі, 95% жұптық бағдарламалау кезінде өз жұмыстарына сенімдірек екендерін мәлімдеді. Дегенмен, сауалнама өз еркімен қатысқан жұптық бағдарламалаушылар арасында жүргізілгендіктен, жұптық бағдарламалауға мәжбүр болған бағдарламалаушылар ескерілмеді.
In an online survey of pair programmers from 2000, 96% of programmers stated that they enjoyed working more while pair programming than programming alone. Furthermore, 95% said that they were more confident in their work when they pair programmed. However, as the survey was among self selected pair programmers, it did not account for programmers who were forced to pair program.
Оқу
Білім бағдарламалаушылар арасында үнемі бөлісіледі, ол өндірісте немесе оқу сыныбында болсын. Көптеген дереккөздер студенттер жұптап бағдарламалау кезінде жоғары сенімділік көрсететінін көрсетеді. "Бос жұптасу" кезінде әр бағдарламашы командадағы басқа барлық бағдарламалаушылармен байланысып, жұмыс істейді, тек бір серікпен жұптаспайды, бұл жүйе туралы білімді бүкіл командаға таратуға мүмкіндік береді. Жұп бағдарламалаушылар бір бағдарламалаушыға қарағанда міндетті жылдам орындай алады, бірақ жұмсалған еңбек сағаттарының жалпы саны артады. Жұптық бағдарламалау күрделі бағдарламалау міндеттерінде жоғары сапа мен дұрыстыққа қол жеткізуге көмектесе алады, бірақ бұл даму күшін (құнын) айтарлықтай арттырады. Бұл кодты әзірлеу уақытын қысқартуы мүмкін, бірақ бағдарламаның сапасы төмендеу қаупі де бар. GitHub Copilot сияқты жасанды интеллект көмек құралдарын пайдаланатын бағдарламалаушылардың зерттеуі, кейбір бағдарламалаушылар жасанды интеллект көмегін жұптық бағдарламалауға ұқсас деп есептесе де, практикада мұндай құралдарды қолдану бағдарламалау тәжірибесі тұрғысынан мүлдем басқаша, адам бағдарламалаушы жүргізуші және навигатор рөлдері арасында үнемі ауысуға мәжбүр.
Knowledge is constantly shared between pair programmers, whether in the industry or in a classroom. Many sources suggest that students show higher confidence when programming in pairs, In "promiscuous pairing", each programmer communicates and works with all the other programmers on the team rather than pairing only with one partner, which causes knowledge of the system to spread throughout the whole team. Although pair programmers may complete a task faster than a solo programmer, the total number of man hours increases. Pair programming could be helpful for attaining high quality and correctness on complex programming tasks, but it would also increase the development effort (cost) significantly. It may reduce the code development time but also risks reducing the quality of the program. A study of programmers using AI assistance tools such as GitHub Copilot found that while some programmers conceived of AI assistance as similar to pair programming, in practice the use of such tools is very different in terms of the programmer experience, with the human programmer having to transition repeatedly between driver and navigator roles.