From 0e8b840e5f53651db1aa6da9c27cf3d835145a25 Mon Sep 17 00:00:00 2001 From: Artem Zakharchenko Date: Sun, 27 Aug 2017 21:02:53 +0200 Subject: [PATCH] Add russian README --- README.ru_RU.md | 202 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 README.ru_RU.md diff --git a/README.ru_RU.md b/README.ru_RU.md new file mode 100644 index 0000000..1446900 --- /dev/null +++ b/README.ru_RU.md @@ -0,0 +1,202 @@ +

+ + Naming cheatsheet + +

+ +# Шпаргалка наименования +Давать имена вещам сложно. Давайте сделаем этот процес легче. + +## Рекомендации +* Выберите **одну** конвенцию наименований и придерживайтесь ее. Будь-то `likeThis`, или `like_this`, или как-либо еще, это не столь важно. Что важно, так это консистентность в вашей работе. +```js +/* Плохо */ +const pages_count = 5; +const shouldUpdate = true; + +/* Хорошо */ +const pagesCount = 5; +const shouldUpdate = true; + +/* И это хорошо */ +const pages_count = 5; +const should_update = true; +``` +* Имя, будь-то переменная, метод, или что-то еще, должно быть *кратким*, *наглядным* и *интуитивно понятным*: + * **Краткое**. Имя переменной должно быстро печататься, и, следовательно, запоминаться, + * **Наглядное**. Имя переменной должно отражать суть данной переменной в наиболее эффективной и рациональной форме, + * **Интуитивно понятное**. Имя переменной должно читаться естественно, как можно ближе к повседневной речи +```js +/* Плохо */ +const a = 5; // "a" может означать что угодно +const isPaginatable = (postsCount > 10); // "Paginatable" читается ужасно неестественно +const shouldPaginatize = (postsCount > 10); // Выдуманые глаголы это так весело! + +/* Хорошо */ +const postsCount = 5; +const shouldDisplayPagination = (postsCount > 10); +``` + +* Имя не должно дублировать контекст переменной, в котором она была оглашена, а также если убрав контекст из имени переменной ее читабельность не ухудшается: +```js +class MenuItem { + /* Название метода дублирует контекст в котором он объявлен - "...MenuItem..." */ + handleMenuItemClick = (event) => { ... } + + /* А таким образом метод читается как MenuItem.handleClick() */ + handleClick = (event) => { ... } +} +``` +* Имя должно отражать *ожидаемый* результат: +```js +/* Плохо */ +const isEnabled = (itemsCount > 3); +return (