Pasikartojantis kodas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką

Pasikartojantis kodas (angl. duplicate code) – ta pati instrukcijų seka programos tekste pasikartoja dukart ar daugiau. Tokią programą sunkiau prižiūrėti (jei pasikartojančiame fragmente aptinkama klaida, ją reikia taisyti iškart keliose vietose).[1]. Pasikartojantis kodas yra rimta ir paplitusi programavimo problema. Manoma, jog daugelyje didesnių sistemų jis sudaro apie 10%–15% viso kodo. [2]

Pavyzdys[taisyti | redaguoti kodą]

Pavyzdžiui, sakiniai:

  int s1 = 0;
  for (int i = 0; i < 10; i = i + 1)
    s1 = s1 + i * i;
  int s2 = 0;
  for (int i = 0; i < 10; i = i + 1)
    s2 = s2 + i;

daug aiškiau atrodytų bei būtų greičiau vykdomi sujungti į vieną:

  int s1 = 0;
  int s2 = 0;
  for (int i = 0; i < 10; i = i + 1)
    {
      s1 = s1 + i * i;
      s2 = s2 + i;
    }

Trijų pakartojimų taisyklė[taisyti | redaguoti kodą]

Yra žinoma "trijų pakartojimų taisyklė"[3], kurios autoriai siūlo imtis pertvarkymų (atsikratant pakartojimo) jei kodo fragmentas kur nors kartojasi daugiau nei du kartus. Kiti šaltiniai[4] siūlo apskritai vengti bet kokių pasikartojimų.

Šaltiniai[taisyti | redaguoti kodą]

  1. Spinellis, Diomidis. "The Bad Code Spotter's Guide." InformIT.com. Nuoroda tikrinta 2008-06-06.
  2. Kapser, C.; Godfrey, M.W., ""Cloning Considered Harmful" Considered Harmful," 13th Working Conference on Reverse Engineering (WCRE), pp. 19-28, Oct. 2006
  3. Martin Fowler (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional. Knygos ISBN Lietuvoje yra „ISBN 978-0201485677“..
  4. http://c2.com/cgi/wiki?OnceAndOnlyOnce