La programmazione coppie rimuove la necessità di revisioni del codice in un progetto di programmazione Extreme (XP)?

13

In un progetto di programmazione estremo, i programmatori accoppiano la programmazione il più delle volte.

Poiché anche queste coppie ruotano, cioè si accoppia il programma a persone diverse e si ha un senso di proprietà collettiva, il codice sorgente viene spesso rivisto e aggiornato.

Essendo così, c'è bisogno di revisioni del codice? Voglio dire, smetti di programmare e fai solo delle revisioni del codice.

    
posta Eduardo Copat 04.12.2014 - 22:24
fonte

1 risposta

13

Una delle risorse chiave per Extreme Programming è quella di Wiki di Ward aka Portland Pattern Repository aka C2.com . Qui è dove un certo numero di persone ha nascosto diverse metodologie e le ha documentate mentre le usavano.

All'interno di questo wiki, c'è una pagina: Recensioni dei codici di programmazione estreme che ha un numero di contributori, incluso Ron Jeffries e Kent Beck.

Per questo, hanno detto:

Code reviews are considered important by many large-process gurus. They are intended to ensure conformance to standards, and more importantly, intended to ensure that the code is clear, efficient, works, and has QWAN. They also intended to help disseminate knowledge about the code to the rest of the team.

ExtremeProgramming requires that all development is done by two engineers working together. The code is actually reviewed on the fly, to quite a great degree. This ensures that more than one person has intimate knowledge of the code at all times.

ExtremeProgramming requires that all objects have UnitTests. These ensure that the object works, and continues to work as modified.

Some languages are reflective. In such languages, UnitTests can check directly for important standards conformance. (e.g. objects must implement both #= and #hash, or neither.)

ExtremeProgramming practices CollectiveCodeOwnership, which means that objects needing attention will be browsed by many developers. This tends to bring pressure to bear on those producing code that doesn't conform to standards. Visiting developers are encouraged/expected to bring code into conformance when they find deviations. This also ensures that knowledge of code is disseminated beyond the initial pair of programmers that created it.

Therefore, ExtremeProgramming projects do not require explicit reviews. Drop them from your methodology.

C'è anche un po 'più di discussione sull'argomento lì da altri.

I punti chiave, tuttavia, sono che con la combinazione di test, proprietà collaborativa e programmazione di coppie, queste cose risolvono gli obiettivi che in genere una revisione del codice dovrebbe fare, ad esempio:

  • Disperdere la conoscenza di ciò che viene fatto
  • Un secondo (o più) set di bulbi oculari sul codice per assicurarsi che stia seguendo gli standard
  • Verifica il corretto funzionamento del codice

Questi sono fatti continuamente attraverso la programmazione di coppie e test automatizzati in Extreme Programming e quindi un'esplicita ispezione Fagan non è necessaria.

Lettura correlata:

risposta data 04.12.2014 - 22:44
fonte