Übersetzt für Hexlet.io
Bei der Computerprogrammierung besteht eine Namenskonvention aus einer Reihe von Regeln zur Auswahl einer Zeichenfolge, die für Bezeichner verwendet werden soll, die Variablen, Typen, Funktionen und andere Objekte im Quellcode und in der Dokumentation bezeichnen - Wikipedia
Namen zu finden ist schwer!
In diesem Artikel konzentrieren wir uns auf die Benennungstechnik (P) A / HC / LC, um die Lesbarkeit des Codes zu verbessern. Diese Richtlinien können auf jede Programmiersprache angewendet werden. Der Artikel verwendet JavaScript für Codebeispiele.
Was bedeutet (P) A / HC / LC?
In dieser Praxis wird das folgende Muster zum Benennen einer Funktion verwendet:
? (P) + (A) + (HC) + ? (LC)
Wofür steht das Präfix (P)?
Das Präfix erweitert die Bedeutung der Funktion.
- is
Beschreibt eine Eigenschaft oder einen Status des aktuellen Kontexts (normalerweise ein boolescher Wert).
const color = 'blue';
const isBlue = (color === 'blue'); //
const isPresent = true; //
if (isBlue && isPresent) {
console.log('Blue is present!');
}
- has
Gibt an, ob der aktuelle Kontext einen bestimmten Wert oder Status hat (normalerweise einen booleschen Wert).
/* */
const isProductsExist = (productsCount > 0);
const areProductsPresent = (productsCount > 0);
/* */
const hasProducts = (productsCount > 0);
- should
Reflektiert einen positiven bedingten Operator (normalerweise einen Booleschen Wert), der einer bestimmten Aktion zugeordnet ist.
const shouldUpdateUrl = (url, expectedUrl) => url !== expectedUrl;
Aktion ist das Herzstück der Funktion
Aktion ist der Verbteil des Funktionsnamens. Dies ist der wichtigste Teil bei der Beschreibung der Funktionsweise einer Funktion.
- get
( getter ).
function getFruitsCount() {
return this.fruits.length;
}
- set
A B.
let fruits = 0;
const setFruits = (nextFruits) => {
fruits = nextFruits;
};
setFruits(5);
console.log(fruits); // 5
- reset
.
const initialFruits = 5;
let fruits = initialFruits;
setFruits(10);
console.log(fruits); // 10
const resetFruits = () => {
fruits = initialFruits;
};
resetFruits();
console.log(fruits); // 5
- fetch
, (, ).
const fetchPosts = (postCount) => fetch('https://api.dev/posts', {...});
- remove
- -.
, , — removeFilter
, deleteFilter
( ):
const removeFilter = (filterName, filters) => filters.filter((name) => name !== filterName);
const selectedFilters = ['price', 'availability', 'size'];
removeFilter('price', selectedFilters);
- delete
-. .
, , , . delete-post, CMS deletePost
, removePost
.
const deletePost = (id) => database.find({ id }).delete();
- compose
. , .
const composePageUrl = (pageName, pageId) => `${pageName.toLowerCase()}-${pageId}`;
- handle
. .
const handleLinkClick = () => {
console.log('Clicked a link!');
};
link.addEventListener('click', handleLinkClick);
— , .
— -. , , , .
/* , */
const filter = (list, predicate) => list.filter(predicate);
/* , */
const getRecentPosts = (posts) => filter(posts, (post) => post.date === Date.now());
/*
.
, JavaScript (Array).
filterArray .
*/
, .
1. S-I-D
(Short), (Intuitive) (Descriptive).
/* */
const a = 5; // "a"
const isPaginatable = (postsCount > 10); // "Paginatable"
const shouldPaginatize = (postsCount > 10); // - !
/* */
const postsCount = 5;
const hasPagination = (postsCount > 10);
const shouldDisplayPagination = (postsCount > 10); //
2.
Verwenden Sie keine Abkürzungen. Normalerweise verschlechtern sie nur die Lesbarkeit des Codes. Es kann schwierig sein, einen kurzen, beschreibenden Namen zu finden, aber Abkürzungen können keine Entschuldigung dafür sein. Beispielsweise:
/* */
const onItmClk = () => {};
/* */
const onItemClick = () => {};
3. Vermeiden Sie doppelten Kontext
Entfernen Sie immer den Kontext aus einem Namen, es sei denn, dies beeinträchtigt die Lesbarkeit.
class MenuItem {
/* ( "MenuItem") */
handleMenuItemClick(event) {
...
}
/* MenuItem.handleClick() */
handleClick(event) {
...
}
}
4. Reflektieren Sie das erwartete Ergebnis im Namen
/* */
const isEnabled = (itemsCount > 3);
return <Button disabled={!isEnabled} />
/* */
const isDisabled = (itemsCount <= 3);
return <Button disabled={isDisabled} />
5. Betrachten Sie den Singular / Plural
Wie das Präfix können Variablennamen Singular oder Plural sein, je nachdem, ob sie eine oder mehrere Bedeutungen haben.
/* */
const friends = 'Bob';
const friend = ['Bob', 'Tony', 'Tanya'];
/* */
const friend = 'Bob';
const friends = ['Bob', 'Tony', 'Tanya'];
6. Verwenden Sie aussagekräftige und ausgesprochene Namen
/* */
const yyyymmdstr = moment().format("YYYY/MM/DD");
/* */
const currentDate = moment().format("YYYY/MM/DD");