O clădire care are geamuri sparte arată de parcă nimănui nu îi pasă de ea. Deci nici altor persoane nu le mai pasă și permit ca alte geamuri să fie sparte. Eventual, se vor sparge și ele.Acest lucru se aplică și în cod.
void copyInts(int a1[], char a2[], int n) {
for (int i = 0; i < n; i++) {
a2[i] = a1[i];
}
}
void copyInts(int source[], int destination[], int length) {
for (int i = 0; i < length; i++) {
destination[i] = source[i];
}
}
int e = 0;Folosirea variabilei e este greu de găsit. Evitați folosirea constantelor numerice. Este mai ușor să căutați folosința lui MAX_CLASSES_PER_STUDENT, decât folosința numărului 7, deoarece 7 poate avea mai înțelesuri diferite în contexte diferite.
for (int j=0; j<34; j++) {
s += (t[j]*4)/5;
}
codul sursă nou:
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for (int j=0; j < NUMBER_OF_TASKS; j++) {
int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;
int realTaskWeeks = (realTaskDays / WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}
string name = employee.getName();
customer.setName("mike");
if (paycheck.isPosted())...
firstName, lastName; street, houseNumber; city, state, zipcode;Formează o adresă? Putem adăuga context folosind prefixe:
addrFirstName, addrLastName, addrState, etc.sau, mai bine, folosim o structură de date denumită Address.
writeField (nume) writeField (output-Stream, name)Există, desigur, cazuri în care două argumente sunt adecvate, de exemplu:
Punctul p = Punct nou (0,0);Funcțiile triadice, care au trei argumente, sunt în mod semnificativ mai greu de înțeles decât dyadele. Trebuie să aveți un motiv foarte întemeiat pentru a introduce o funcție care necesită 3 argumente.
// Check to see if the employee is eligible for full benefits if ((employee.flags & HOURLY_FLAG) && (employee.age > 65))Sau aceasta?
if (employee.isEligibleForFullBenefits())Este nevoie de doar câteva secunde de gândire pentru a explica cea mai mare parte a intenției voastre în cod. În multe cazuri, este pur și simplu o problemă de a crea o funcție care spune același lucru ca și comentariul pe care doriți să-l scrieți.
// Actions //////////////////////////////////