Légy kötelező!!
TL;DR: A nem egyértelmű nevű funkciók elrejtik a szándékot és összezavarják az olvasókat. Használjon leíró, cselekvésorientált neveket.
https://hackernoon.com/improving-the-code-one-line-at-a-time
Az általános kifejezésekkel elnevezett függvények arra kényszerítik az olvasókat, hogy belemerüljenek a megvalósításba, hogy megértsék viselkedésüket.
Ez időt veszít, és növeli a hibák esélyét.
A névadás még kritikusabbá válik, ha önálló függvényekkel dolgozik, ahol az osztálynév nem biztosít további kontextust.
Ez a probléma közvetlenül kapcsolódik a Mondd, ne kérdezz elvhez .
Ahelyett, hogy olyan kétértelmű viselkedéseket tárnának fel, amelyek arra kényszerítik a hívót, hogy funkcionalitásra következtessen, a kötelező nevek a pontos műveletet közvetítik, és a kód ellenőrzése nélkül irányítják az olvasót.
Ha a függvényeket leíró jelleggel nevezi meg, kiküszöböli a felesleges találgatásokat, és igazodik ehhez az elvhez.
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..."); }
Ezt a szagot úgy észlelheti, hogy áttekinti a függvényneveket, amelyek homályos kifejezéseket használnak, mint például a do , run , process , load stb.
Az automatizált linterek megjelölhetik ezeket a mintákat, vagy kiemelhetik a funkciókat túlságosan általános nevekkel.
A függvényneveknek egyértelmű egy az egyhez egyezést kell létrehozniuk a nevük és a funkcióik között.
A Bijection megszakítása arra kényszeríti a fejlesztőket, hogy megvizsgálják a kódrészleteket a környezet szempontjából, lelassítva a hibakeresést, az áttekintéseket és a bővítményeket.
Az AI-eszközök néha generikus függvényneveket generálnak anélkül, hogy megértenék a domainjét.
AI használatakor adja meg, hogy a függvényneveknek leíró jellegűnek és cselekvés-orientáltnak kell lenniük.
Az AI-modellek segíthetnek felismerni a kétértelmű neveket, ha összehasonlítják a függvényaláírásokat az előre meghatározott elnevezési bevált gyakorlatokkal.
A mesterséges intelligencia és a kézi kódellenőrzés kombinálása a legjobb eredményt nyújtja.
Ne feledje: az AI-asszisztensek sok hibát követnek el
Megfelelő utasítások nélkül | Speciális utasításokkal |
---|---|
A függvénynevek nem csak címkék; ezek az olvasóval kötött szerződések.
A kétértelmű nevek megszegik ezt a szerződést, és zűrzavarhoz vezetnek.
A leíró, cselekvésorientált nevek leegyszerűsítik a kommunikációt, és megkönnyítik a kód karbantartását és bővítését.
Code Smells az én véleményem .
Fotó: britishlibrary az Unsplash oldalon
A függvénynév ige vagy igei kifejezés lehet, és értelmesnek kell lennie
Robert C. Martin
Ez a cikk a CodeSmell sorozat része.