Pasikartojantis kodas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

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[redaguoti | redaguoti vikitekstą]

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ė[redaguoti | redaguoti vikitekstą]

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[redaguoti | redaguoti vikitekstą]

  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; Kent Beck; John Brant; William Opdyke; Don Roberts (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional. ISBN 978-0201485677.
  4. http://c2.com/cgi/wiki?OnceAndOnlyOnce