Miros de cod

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În ingineria software și, în special, în contextul dezvoltării agile și al programării extreme , [1] [2] mirosul codului de expresie (literalmente „put de cod”) este utilizat pentru a indica o serie de caracteristici pe care le poate avea sursa de cod și care sunt recunoscute în general ca indicii probabile ale unei defecțiuni de programare. [1] Mirosurile de cod nu sunt (și nu dezvăluie) „ erori ”, adică erori reale, ci deficiențe de proiectare care reduc calitatea software-ului , indiferent de corectitudinea reală a funcționării sale. Mirosul de cod este adesea legat de prezența datoriilor tehnice, iar identificarea acestuia este o metodă euristică comună utilizată de programatori ca ghid pentru activitatea de refactorizare , adică executarea acțiunilor de restructurare a codului care vizează îmbunătățirea structurii sale, scăderea complexității sale fără a-și modifica funcționalitate. [1]

Există numeroase liste de mirosuri de cod în literatura de refacere; cel mai cunoscut și mai influent este cel propus de Martin Fowler în celebra sa carte despre refactorizare. [1] Atât în ​​lista Fowler, cât și în altele, mirosurile de cod nu sunt niciodată definite în termeni absoluți, iar identificarea lor include întotdeauna un element de judecată subiectivă din partea programatorului.

Exemple de miros de cod

  • Duplicați codul , la fel sau aproape la fel, în diferite secțiuni de cod (încalcă principiul nu vă repetați ).
  • Metoda prea lungă .
  • Prea mare clasă .
  • Listă de parametri prea lungă (pentru metode sau funcții).
  • Invidie de caracteristici [3] sau invidie de date („invidie de date”): o clasă care folosește foarte mult serviciile sau datele altei persoane.
  • Constantele magice : valori literale (numere, șiruri) care apar direct („hard-wired”) în cod.
  • Expresii complexe de nivel scăzut (de exemplu, aritmetică, manipularea șirurilor, ...).
  • Ce comentarii („ce comentarii”): comentarii care explică ce face o anumită bucată de cod (simptom că codul nu este suficient de clar în sine). [4]
  • Nume obscure : nume și identificatori (de variabile, atribute, clase, ...) care nu clarifică semnificația intenționată a entității corespunzătoare.
  • Nume incoerente : seturi de nume și identificatori care sunt incompatibili unul cu celălalt (de exemplu, utilizarea inconsecventă a literelor mari și minuscule). [3]
  • Cod mort : porțiuni de cod care nu sunt utilizate (și nu sunt șterse), contribuind la costul menținerii codului fără a produce beneficii. [3]
  • Generalitate speculativă : cod scris într-o formă mai generală decât este necesar pentru a fi eventual aplicat în viitor în contexte mai largi. Programarea extremă are o regulă specifică împotriva acestei practici, „Tu nu vei avea nevoie de ea”: „implementează întotdeauna lucrurile atunci când ai nevoie de ele, niciodată când te aștepți să le ai nevoie”. [5]

Notă

  1. ^ a b c d Fowler și colab. (1999)
  2. ^ Binstock (2011)
  3. ^ a b c J. Atwood, Code miroase la codinghorror.com
  4. ^ Comentarii la cod: Bine sau Rău? Arhivat 22 martie 2016 la Internet Archive ., La tobeaile.com
  5. ^ Nu ai nevoie de ea

Bibliografie

  • Andrew Binstock (2011), Laudă codului mic , Săptămâna informației, 27 iunie 2011.
  • Martin Fowler și colab. (1999), Refactoring: Îmbunătățirea proiectării codului existent , Addison-Wesley. ISBN 0-201-48567-2 .

Elemente conexe

linkuri externe