paint-brush
Kodi Smell 285 - Si të rregulloni funksionet jo-imperativenga@mcsee
277 lexime

Kodi Smell 285 - Si të rregulloni funksionet jo-imperative

nga Maximiliano Contieri3m2025/01/11
Read on Terminal Reader

Shume gjate; Te lexosh

Funksionet me emra të paqartë fshehin qëllimin dhe ngatërrojnë lexuesit. Përdorni emra përshkrues, të orientuar drejt veprimit.
featured image - Kodi Smell 285 - Si të rregulloni funksionet jo-imperative
Maximiliano Contieri HackerNoon profile picture
0-item

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

  1. Përdorni folje të orientuara drejt veprimit
  2. Bëjini emrat përshkrues
  3. Reflektoni qëllimin e funksionit
  4. Shmangni termat e përgjithshëm
  5. Jepni një kontekst kuptimplotë
  6. Shprehni qartë përgjegjësinë e vetme
  7. 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

ChatGPT

ChatGPT

Klodi

Klodi

Hutim

Hutim

Kopilot

Kopilot

Binjakët

Binjakët

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 britishlibraryUnsplash


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.


L O A D I N G
. . . comments & more!

About Author

Maximiliano Contieri HackerNoon profile picture
Maximiliano Contieri@mcsee
I’m a sr software engineer specialized in Clean Code, Design and TDD Book "Clean Code Cookbook" 500+ articles written

VARUR TAGS

KY ARTIKU U PARAQIT NË...