paint-brush
Шифра мириса 285 - Како поправити не-императивне функцијеод стране@mcsee
280 читања

Шифра мириса 285 - Како поправити не-императивне функције

од стране Maximiliano Contieri3m2025/01/11
Read on Terminal Reader

Предуго; Читати

Функције са нејасним називима скривају намеру и збуњују читаоце. Користите описна, радњи оријентисана имена.
featured image - Шифра мириса 285 - Како поправити не-императивне функције
Maximiliano Contieri HackerNoon profile picture
0-item

Бе Императиве!!

ТЛ;ДР: Функције са нејасним именима скривају намеру и збуњују читаоце. Користите описна, радњи оријентисана имена.

Проблеми

  • Нејасна сврха функције
  • Повећано когнитивно оптерећење
  • Обмањујући контекст
  • Смањена читљивост
  • Тешка сарадња
  • Скривена функционалност

Решења

  1. Користите глаголе оријентисане на акцију
  2. Нека имена буду описна
  3. Одразите сврху функције
  4. Избегавајте опште термине
  5. Обезбедите смислени контекст
  6. Јасно изразите појединачну одговорност
  7. Ускладите акцију са исходом

Рефакторинг

хттпс://хацкерноон.цом/импровинг-тхе-цоде-оне-лине-ат-а-тиме

Контекст

Функције именоване генеричким терминима приморавају читаоце да зароне у имплементацију како би разумели своје понашање.


Ово губи време и повећава шансе за грешке.


Именовање постаје још критичније када се ради са самосталним функцијама, где име класе не пружа додатни контекст.


Ово питање се директно односи на принцип Реци, не питај .


Уместо да разоткривају двосмислена понашања која приморавају позиваоца да закључи функционалност, императивна имена преносе тачну радњу, усмеравајући читаоца без потребе да прегледа код.


Када функције именујете описно, елиминишете непотребно нагађање и ускладите се са овим принципом.

Пример кода

Погрешно

 public String dateFormatting(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void load() { System.out.println("Loading..."); }

Тачно

 public String formatDate(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void loadUserPreferences() { System.out.println("Loading user preferences..."); }

Детецтион

  • [к] Приручник

Овај мирис можете открити тако што ћете прегледати називе функција које користе нејасне термине као што су уради , покрени , обради , учитај итд.


Аутоматизовани линтери могу означити ове обрасце или истакнути функције са превише генеричким именима.

Ознаке

  • Именовање

Ниво

  • [к] Почетник

Зашто је бијекција важна

Имена функција треба да стварају јасну кореспонденцију један на један између њиховог имена и функционалности.


Разбијање ове Бијецтион приморава програмере да испитају детаље кода за контекст, успоравајући отклањање грешака, прегледе и проширења.

АИ Генератион

Алати за вештачку интелигенцију понекад генеришу генеричка имена функција без разумевања вашег домена.


Када користите АИ, наведите да имена функција морају бити дескриптивна и оријентисана на акцију.

АИ Детецтион

АИ модели могу помоћи у откривању двосмислених имена упоређивањем потписа функција са унапред дефинисаним најбољим праксама именовања.


Комбиновање вештачке интелигенције са ручним прегледом кода даје најбоље резултате.

Пробајте их!

Запамтите: АИ асистенти праве много грешака

Без одговарајућих упутстава

Са посебним упутствима

ЦхатГПТ

ЦхатГПТ

Цлауде

Цлауде

збуњеност

збуњеност

Цопилот

Цопилот

Близанци

Близанци

Закључак

Називи функција нису само ознаке; они су уговори са читаоцем.


Двосмислена имена крше овај уговор и доводе до забуне.


Описна, радњи оријентисана имена поједностављују комуникацију и чине ваш код лакшим за одржавање и проширење.

Односи

Види такође

Одрицање од одговорности

Код Мириси су моје мишљење .

Цредитс

Фотографија бритисхлибрари на Унспласх-у


Име функције треба да буде глагол или глаголска фраза и да има смисла

Роберт Ц. Мартин


Овај чланак је део ЦодеСмелл серије.


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

ХАНГ ТАГС

ОВАЈ ЧЛАНАК ЈЕ ПРЕДСТАВЉЕН У...