Pair programming is een manier van programmeren waarbij twee mensen samen te werken op een toetsenbord. Een persoon, "de bestuurder", typen op het toetsenbord. De andere persoon, "de waarnemer" (of "navigator") beoordelingen elke regel code dat wordt ingetoetst, het controleren op fouten en het denken over het totale ontwerp.
Enkele voordelen die je kunt verwachten: betere code (eenvoudiger ontwerp, minder bugs, meer onderhoudbaar), hogere moraal (meer fun!), Gedeelde kennis in uw hele team (zowel specifieke kennis van uw codebase en algemene kennis van programmeren), beter time management, hoger productiviteit.
Stappen
- 1Begin met een redelijk goed gedefinieerde taak voordat u gaat zitten. De taak moet iets wat je bent ervan overtuigd dat je kunt voltooien in een uur of twee zijn. Bijvoorbeeld, "In 'onderhoudshistorie' om de database code bewegende-busje." U vindt het misschien nuttig om te schetsen wat je van plan bent om te doen voordat u begint met code.
- 2Eens zijn over een klein doel tegelijk: iets wat je kunt voltooien binnen een paar minuten. Met vermelding van het probleem in de woorden aan een andere persoon helpt focus je geest en helpt betrekken geest van je partner. Het zorgt er ook voor dat u beiden weet wat je bezig bent op dit moment.
- 3Vertrouw op je partner, ondersteuning van uw partner.
- Als je de driver, voltooi de huidige kleine doel zo snel als je kunt, het negeren van grotere problemen. Vertrouw op de waarnemer om je vangnet.
- Als je de waarnemer, lees de code dat de bestuurder schrijft zoals hij of zij schrijft het. Jouw taak is code review. Je moet totaal letten, gericht op het laten niets aan je aandacht ontsnappen. Denk na over mogelijke bugs, grotere problemen, en manieren om het ontwerp te vereenvoudigen of te verbeteren. Brengen fouten en code die je vindt onleesbaar meteen. Wacht tot de huidige kleine doel wordt gedaan hierop om grotere problemen en ideeën voor verbetering van het ontwerp. Jot deze latere taken neer, zodat de bestuurder kan blijven concentreren op het huidige kleine taak. Bijvoorbeeld, als je ziet dat de huidige code niet goed zijn voor een null-ingang, schrijven op een stuk papier, "Voeg testexemplaar voor null-ingang."
- Als je de waarnemer, niet dicteren de code. De bestuurder dient actief te worden na te denken over hoe de huidige taak te bereiken, niet alleen passief te typen. En als de waarnemer, moet u het feit dat u niet nodig om de kleine details uitvinden benutten; je kan en moet denken op een hoger niveau. Zeggen "Dat ziet er goed uit. Hoe zit het met de behandeling van de zaak waar we nu langs een null pointer?" is beter dan "OK, nu het type 'if (s == NULL) {return...'"
- 4Veel praten! Zeg wat je gaat doen, vraag om een implementatie idee, vragen om een betere manier om het probleem op te lossen bij de hand, brengen alternatieve ideeën, wijzen op mogelijke ingangen die de code niet, raden duidelijkere namen voor variabelen en subroutines, suggereren manieren om de code te implementeren in kleinere stappen, vertel de chauffeur dat kleine beetje API kennis die ze direct op het moment dat ze het nodig hebben nodig hebben, etc. Listen veel, ook, natuurlijk. Als mensen goed koppelt, worden ze heen en weer bijna non-stop praten. Hier zijn een aantal gemeenschappelijke dingen te zeggen terwijl pairing:
- "Denk je dat dit een geldige test?"
- "Is die er juist voor u? '
- "Wat is de volgende?"
- "Geloof me" (wanneer het is makkelijker om een beetje code te schrijven om uw punt te maken dan om het hardop te zeggen)
- 5Synchroniseer regelmatig. Als u samen te werken, zul je merken dat je krijgt uit sync: het worden zeker weet wat je partner doet, of steeds onduidelijk over de huidige taak. Dit is normaal. Als het gebeurt, synchroniseren opnieuw. De sleutel tot een goede koppeling is te synchroniseren zeer frequent-binnen enkele seconden of een minuut van te merken dat je niet synchroon. Als u besteden vijf minuten (of meer) niet synchroon, kan je net zo goed worden codering solo, want het is de frequente re-sync'ing dat de synergie van pairing creëert.
- Als je kunt, zeggen wat je gaat doen voordat je het doet. Beter nog, vraag je partner, bijvoorbeeld, "Zullen we schrijven nu de test voor de null geval?" Soms, echter, moet u code schrijven om je gedachten te begrijpen, en dat is oke. Dan kunt u zeggen dat u doet dat: ". Ik moet deze typen om te zien of het een goed idee" Best om dat soort van exploratie te houden tot minder dan een minuut, dat wel.
- Wanneer uw partner vraagt of u akkoord gaat met iets, zoals "Zullen we schrijven nu de test voor de null geval?" of "Ik denk dat deze methode kunnen nu worden verwijderd. Bent u het eens? ', zegt u" Ja "of" Nee "duidelijk en direct.
- Het is prima om het toetsenbord te gaan heen en weer heel vaak. Bijvoorbeeld, soms is het veel gemakkelijker om te "zeggen" iets door in de code te typen dan door te proberen om het hardop te verklaren uit. Dus laat de waarnemer pak het toetsenbord en type. Dan kunt u terugschakelen, of laat de waarnemer blijven rijden, naar gelang van wat logisch is recht dan.
- 6Neem een moment om te vieren als je taken uit te voeren en problemen op te lossen. Bijvoorbeeld, elke keer krijg je een test te passeren, geven elkaar een beetje. Als u ook high-five elke keer krijg je een nieuwe test om te falen, zul je echt in de groef van collaboratieve programmering en test-driven design.
- 7Overschakelen rollen vaak minstens elk half uur. Dit houdt je zowel volledig bezig, jullie beiden in harmonie met de details op laag niveau en het grote plaatje. Ook rijden full-blast kan je genoeg uit, en het is moeilijk om de waakzaamheid vereist van de rol van waarnemer langer dan een half uur te handhaven. Schakelen rollen laadt u.
Tips
- Wees vooral hoffelijk. Bijvoorbeeld, als je partner wijst op een fout, zeg: "Dank je." Toen wees op een fout, doe dat voorzichtig, om niet te beledigen ego's. Fouten en het corrigeren van hen zijn een normaal onderdeel van de programmering, geen bewijs dat iemand het vermogen ontbeert. Als de waarnemer, laat de bestuurder afwerking het schrijven van een complete lijn van code alvorens te wijzen op een fout. De meeste mensen vinden het vervelend te worden gecorrigeerd als ze typt, maar nuttig te worden gecorrigeerd als ze klaar te typen.
- Schrijf een unit test eerst, voordat je schrijft de uitvoering (als de code is unit-toetsbaar). De unit test helpt bij het vaststellen van de volgende kleine doel op een manier die jullie beiden begrijpen, omdat je kunt zien zowel de code. De volgende kleine doel raakt, "Maak deze test pass." kan moeilijk zijn om te leren op het eerste, maar het koppelen met iemand die al gewend aan het kan de vaardigheid vrij snel te leren.
- Het verschil tussen goed / slecht pairing en prachtige koppeling is eenvoudig dit:. Let Kijk naar het scherm als de types driver. Wanneer uw partner spreekt, luister. Eet geen cornflakes. Niet controleren uw e-mail. Niet controleren digg. Laat geen detail voorbij je. Als je goed oplet, praten en luisteren, je moeiteloos verdiept in het werk geworden, en je de vreugdevolle "flow" van de koppeling in te voeren. Dit is wanneer uw productiviteit omhoog schiet. Als een van jullie of beide wordt mentaal het uitchecken, dan is de pairing principe zuigt en je kan net zo goed werken solo.
- Als je een levenslange gewoonte van mentaal uitchecken wanneer andere mensen met je praten, of altijd multitasking tussen 5 verschillende dingen, probeer dan 100% van je aandacht op de taak bij de hand als een eendaagse experiment. Zie voor jezelf als je het leuk vindt en als de resultaten die je krijgt. Je zou mentaal uitchecken herhaaldelijk, gewoon uit gewoonte. Als dat gebeurt, kan je paar u zachtjes herinneren aan de huidige taak elke keer. Getting gericht kan veel gemakkelijker met een paar dan alleen.
- Zitten aan een tafel waar je gemakkelijk kan passeren het toetsenbord tussen jullie te rollen om te draaien. Een plain ol 'rechthoekige tafel werkt het best (in tegenstelling tot rare, curvy, "ergonomische" meubilair).
- Als je technologisch übersavvy, probeer dan met behulp van twee toetsenborden en twee muizen. "Schakelen" tussen bestuurders wordt veel gemakkelijker. Dit wordt bereikt met een apparaat genaamd een KVM-switch, die u de stekker van de toetsenborden en muizen in, en lopen de draden aan op de computer. De schakelaar is zo eenvoudig als het draaien van een knop. Een tweede monitor kan net zo eenvoudig worden toegevoegd, en sommige kunnen niet achter een monitor (hoewel de "V" staat voor video) en kan ideaal zijn als uw behoeften zijn minder.
- Laptop computers zijn minder dan ideaal vanwege de kleine omvang en moeilijkheidsgraad zien van het scherm vanuit een hoek, maar je kunt nog steeds koppelen aan een laptop. Een truc is om de waarnemer zitten enigszins achter de bestuurder in plaats van aan de zijkant.
- Maak geen ruzie over hetzij bouwkundige zaken of triviale zaken zoals hoe ver de beugels streepje. Deze dingen moeten worden besloten voordat je paar.
- Degene die minder over het systeem of taal kent zouden de meeste van de te besturen, zodat de beginnende blijft ingeschakeld. Je leert meer actief dan passief.
Waarschuwingen
- Als de registratie is een expert met een beginner, moet de deskundige bereid zijn om de rol van mentor spelen, anders is de koppeling zal niet harmonieus.