Middle
Критерияҳои арзёбии коди дар услуби протсессӣ кадомҳоянд ва кадомҳоянд хуб ва кадомҳоянд бад?
sobes.tech AI
Ҷавоб аз AI
Ҳикматҳои дуруст:
- Уқибат: Чӣ қадар осон аст, фаҳмидани он, ки код чӣ мекунад, вақте ки аз боло ба поён мехонем.
- Номҳои тағйирёбанда ва функсияҳо: Истифодаи номҳои тавсифӣ, ки мақсад ва логикаи онҳоро инъикос мекунанд.
- Декомпозиция: Тақсим кардани вазифаҳои мураккаб ба функсияҳои хурдтар, ки метавонанд идора карда шаванд. Ҳар як функсия бояд як вазифаи мушаххасро иҷро кунад.
- Намудани тағйирёбандаҳои глобалӣ: Кам кардани истифодаи тағйирёбандаҳои глобалӣ барои кам кардани вобастагиҳо ва таъсироти тарафӣ.
- Идоракунии хато: Идоракунии равшан ва равшан кардани хатогиҳо ва истисноҳо.
- Шарҳҳо: Дар ҷойҳое, ки код номуайян аст ё барои шарҳ додани логика.
- Муносибати услуб: Услуби ягонаи формат ва номгузорӣ дар тамоми лоиҳа.
- Кам кардани такрори коди: Ҳаросат аз такрори блокҳои коди якхела.
# Намунаи хуби декомпозиция ва номҳои равшан
def calculate_average(numbers):
"""Меҳвар кардани миёнаи рӯйхати рақамҳо."""
if not numbers:
return 0
total = sum(numbers)
return total / len(numbers)
def process_data(data):
# Мегӯем, ки 'data' рӯйхати рӯйхатҳои рақамҳо аст
averages = []
for row in data:
avg = calculate_average(row)
averages.append(avg)
return averages
Критерийҳои бад:
- Номуайян: Код душвор фаҳмидан аст, зеро логикаи норавшан, номҳои номувофиқ ё структураи нокамол.
- "Шпагетти-код": Бисёр гузаришҳо ва вобастагиҳо, ки пайравии пайдарпайро мушкил месозанд.
- "Лаззати"-код: Функсияҳои дароз, монолитӣ, ки вазифаҳои гуногунро иҷро мекунанд.
- Истифодаи "ҳисобҳои магикӣ": Константҳои рақамӣ бе шарҳ дар код.
- Намудани идоракунии хато: Барнома дар ҳолатҳои нодида хато мекунад.
- Такрори коди: Блокҳои коди якхела ё хеле монанд дар ҷойҳои гуногун такрор мешаванд.
- Намудани услуб: Формат ва номгузорӣ гуногун, ки хонданро мушкил месозад.
# Намунаи бад барои "лоззати" ва рақамҳои магикӣ
def process(d):
t = 0
for r in d:
s = 0
c = 0
for n in r:
s += n
c += 1
if c > 0:
t += s / c
return t / len(d) if len(d) > 0 else 0
Мувофиқат:
| Дӯстона | Бад |
|---|---|
| Уқибат | Номуайян ("шпагетти", "лоззати") |
| Номҳои равшан барои тағйирёбанда ва функсияҳо | Номҳои номувофиқ |
| Декомпозиция | Монолитӣ |
| Номҳои глобалӣ нодуруст истифода бурда мешавад | Беандоза истифодаи тағйирёбандаҳои глобалӣ |
| Идоракунии хато равшан аст | Номуайянӣ дар идоракунии хато |
| Шарҳҳо дар ҷойҳое, ки лозим аст | Шарҳҳо намебошанд |
| Муносибати услуб | Номувофиқ услуб |
| Такрори коди кам кардан | Такрори коди |