Middle+
На шта обраћаш пажњу када радиш преглед кода?
sobes.tech АИ
Одговор од АИ
- Usklađenost sa stilom kodiranja projekta
- Čitljivost i razumljivost koda
- Nedostatak dupliranja koda (DRY)
- Ispravno korišćenje arhitektonskih obrazaca i principa dizajna (SOLID)
- Obrada grešaka i graničnih slučajeva
- Nedostatak curenja memorije (snažni ciklički referentni ciklusi, objekti van upravljanja)
- Korišćenje odgovarajućih struktura podataka i algoritama za rešavanje zadatka
- Postojanje komentara i njihova aktuelnost
- Postojanje i pokrivenost jediničnih testova
- Optimizacija performansi (ako je primenjivo)
- Atomarnost i čitljivost commitova
- Usklađenost implementacije sa zadatkom i zahtevima
// Primer provere odsustva curenja memorije
class Parent {
var child: Child?
}
class Child {
weak var parent: Parent? // Korišćenje weak za izbegavanje snažnih cikličnih referenci
}
// Primer provere DRY
func computeSum(_ a: Int, _ b: Int) -> Int {
// Opšta logika
return a + b
}
func processNumbers(_ x: Int, _ y: Int) {
let result = computeSum(x, y)
// Dodatna obrada
print(result)
}
func handleValues(_ p: Int, _ q: Int) {
let result = computeSum(p, q) // Ponovna upotreba computeSum
// Dodatna obrada
print(result * 2)
}
| Aspekt | Šta proveravam |
|---|---|
| Čitljivost | Imena promenljivih, funkcija, klasa; uvlačenje |
| Ispravnost | Logika, obrada grešaka, granični slučajevi |
| Performanse | Petlje, složeni računi, rad sa kolekcijama |
| Testiranje | Postojanje i kvalitet testova |
| Arhitektura/Dizajn | Usklađenost sa obrazcima i principima |