Bëhu imperativ!!
TL;DR: Funksionet me emra të paqartë fshehin qëllimin dhe ngatërrojnë lexuesit. Përdorni emra përshkrues, të orientuar drejt veprimit.
Problemet
- Qëllimi i paqartë i funksionit
- Rritja e ngarkesës njohëse
- Konteksti mashtrues
- Lexueshmëri e reduktuar
- Bashkëpunim i vështirë
- Funksionaliteti i fshehur
Zgjidhjet
- Përdorni folje të orientuara drejt veprimit
- Bëjini emrat përshkrues
- Reflektoni qëllimin e funksionit
- Shmangni termat e përgjithshëm
- Jepni një kontekst kuptimplotë
- Shprehni qartë përgjegjësinë e vetme
- Përputhni veprimin me rezultatin
Rifaktorimet
https://hackernoon.com/improving-the-code-one-line-at-a-time
Konteksti
Funksionet e emërtuara me terma të përgjithshëm i detyrojnë lexuesit të zhyten në zbatim për të kuptuar sjelljen e tyre.
Kjo humbet kohë dhe rrit mundësinë e gabimeve.
Emërtimi bëhet edhe më kritik kur punoni me funksione të pavarura, ku emri i klasës nuk ofron kontekst shtesë.
Kjo çështje lidhet drejtpërdrejt me parimin " Thuaj, Mos pyet" .
Në vend që të ekspozojnë sjellje të paqarta që e detyrojnë telefonuesin të konkludojë funksionalitetin, emrat imperativ përcjellin veprimin e saktë, duke e udhëhequr lexuesin pa pasur nevojë të inspektojë kodin.
Kur emërtoni funksionet në mënyrë përshkruese, ju eliminoni supozimet e panevojshme dhe përputheni me këtë parim.
Shembull i kodit
E gabuar
public String dateFormatting(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void load() { System.out.println("Loading..."); }
E drejta
public String formatDate(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void loadUserPreferences() { System.out.println("Loading user preferences..."); }
Zbulimi
- [x] Manual
Ju mund ta zbuloni këtë erë duke rishikuar emrat e funksioneve që përdorin terma të paqartë si do , ekzekutimi , procesi , ngarkimi , etj.
Linjat e automatizuara mund t'i shënjojnë këto modele ose të nënvizojnë funksionet me emra tepër të përgjithshëm.
Etiketat
- Emërtimi
Niveli
- [x] Fillestar
Pse Bijection është e rëndësishme
Emrat e funksioneve duhet të krijojnë një korrespondencë të qartë një-për-një midis emrit dhe funksionalitetit të tyre.
Thyerja e këtij Bijection i detyron zhvilluesit të shqyrtojnë detajet e kodit për kontekstin, duke ngadalësuar korrigjimin, rishikimet dhe shtesat.
Gjenerimi i AI
Mjetet e AI ndonjëherë gjenerojnë emra të përgjithshëm funksionesh pa e kuptuar domenin tuaj.
Kur përdorni AI, specifikoni që emrat e funksioneve duhet të jenë përshkrues dhe të orientuar drejt veprimit.
Zbulimi i AI
Modelet e AI mund të ndihmojnë në zbulimin e emrave të paqartë duke krahasuar nënshkrimet e funksioneve me praktikat më të mira të emërtimit të paracaktuara.
Kombinimi i AI me rishikimin manual të kodit jep rezultatet më të mira.
Provoni ato!
Mbani mend: Asistentët e AI bëjnë shumë gabime
Pa udhëzime të duhura | Me udhëzime specifike |
---|---|
konkluzioni
Emrat e funksioneve nuk janë vetëm etiketa; janë kontrata me lexuesin.
Emrat e paqartë e thyejnë këtë kontratë dhe çojnë në konfuzion.
Emrat përshkrues dhe të orientuar drejt veprimit thjeshtojnë komunikimin dhe e bëjnë kodin tuaj më të lehtë për t'u ruajtur dhe zgjeruar.
Marrëdhëniet
Shihni gjithashtu
Mohim përgjegjësie
Kodi Smells janë mendimi im.
Kreditë
Foto nga britishlibrary në Unsplash
Emri i funksionit duhet të jetë një folje ose një frazë foljeje dhe duhet të jetë kuptimplotë
Robert C. Martin
Ky artikull është pjesë e serisë CodeSmell.