Какво е чист код?
Чистият код е код, който е лесен за разбиране и лесен за промяна.
Малко насоки за чист код биха били:
- Трябва да бъде четлив и смислен
- Трябва да се избягват неинтуитивни имена, сложно влагане и големи кодови блокове
- Трябва да бъде сбити „до въпроса“
- Трябва да намали когнитивното натоварване
- Трябва да следва често срещаните най-добри практики и модели
- Трябва да бъде забавно да се пише и да се поддържа.
Чистият код изисква време, усилие, вниманиеи грижа, стойности, които не се вземат под внимание от повечето бизнесът. Чистият код попада в критериите за качествона триъгълника на качеството, известен като триъгълник за управление на проекти.
Написването на чист код и фокусирането върху качеството наистина отнема повече време, но ще доведе до по-устойчив продукт в дългосрочен план.
Ключови точки на чистия код
Чистият код е всичко за:
Наименуване— Как да използвате собствените имена
- Променливи
- Функции
- Класове
Структура и коментари
- „Форматиране на кода“
- „Добри и лоши коментари“
Функции
- Дължина
- Параметри
Условни условия и обработка на грешки
- Дълбоко гнездене
- Липсва обработка на грешки
Класове и структури от данни
- Липсващо разграничение
- Раздути класове
Всички те ни отвеждат до:
Решения
- Правила и концепции
- Модели и принципи
- Разработка, управлявана от тестове
В тази статия ще говоря за първата тема, когато става дума за писане на чист код и това е наименуването, как трябва да именуваме нещата, когато пишем код.
Наименуване
Правилното именуване на неща като променливи, свойства, функции, методи, класове и по разбираем начин е важна част от писането на чист код.
Бъдете описателни
Имената имат една проста цел и трябва да описват какво се съхранява в променлива или свойство или какво прави функция или метод. Или какъв вид обект ще бъде създаден при инстанциране на клас.
Използването на добри имена всъщност трябва да е просто, но идването с най-доброто име за дадена променлива/свойство/функция пак ще изисква практикаи често множество итерации. Но това е нормално, чистият код се пише чрез повторение и подобряване на кода с течение на времето.
Правила за именуване
Променливи и свойства
Променливите и свойствата съдържат данни - числа, текст (низове), булеви стойности, обекти, списъци, масиви, карти и др.
Следователно името трябва да подсказва какъв вид данни се съхраняват.
Следователно променливите и свойствата обикновено трябва да получават съществителнокато име.
Например: user, product, customer, database, transaction
Като алтернатива можете да използвате и кратка фраза с прилагателно — обикновено за съхраняване на булеви стойности.
Например: isValid, didAuthenticate, isLoggedIn, emailExists
Обикновено, ако можете да бъдете по-конкретни, трябва да сте по-конкретни.
Например предпочитайте customer
над user
, ако наличният код извършва специфични за клиента операции с тези данни. Това прави вашия код по-лесен за четене и разбиране.
Функции и методи
Функции и методи могат да бъдат извикани, за да изпълнят някакъв код. Това означава, че те
изпълняват задачи и операции.
Следователно функциите и методите обикновено трябва да получават глаголкато име.
Например: login(), createUser(), database.insert(), log()
Като алтернатива, функциите и методите могат да се използват и за основно генериране на стойности — тогава, особено когато създавате булеви стойности, можете също да изберете кратки фрази с прилагателни.
Например: isValid(…), isEmail(…), isEmpty(…)
Трябва да се опитате да избягвате имена като email(), user()
. Тези имена звучат като имоти. Вместо това предпочитайте getEmail()
.
Както при променливите и свойствата, ако можете да бъдете по-конкретни, обикновено има смисъл да използвате такива по-конкретни имена.
Например: createUser()
вместо просто create().
Класове
Класовете се използват за създаване на обекти (освен ако не е статичен клас).
Следователно името на класа трябва да описва вида обект, който ще създаде. Дори и да е статичен клас (т.е. няма да бъде инстанциран), вие пак ще го използвате като някакъв вид контейнер за различни части от данни и/или функционалност — така че трябва да опишете този контейнер.
Добрите имена на класове — също като добрите имена на променливи и свойства — следователно са съществителни имена.
Например: User, Product, RootAdministrator, Transaction, Payment
Избягвайте родовите имена
В повечето ситуации трябва да избягвате родови имена като handle(), process(), data, item
.
Има ситуации, в които има смисъл, но обикновено трябва или да направите тези имена по-конкретни, като processTransaction()
, или да изберете различно царско име, като product
вместо item
.
Да бъда постоянен
Важна част от използването на правилно име е постоянството. Ако сте използвали fetchUsers()
в една част от кода си, трябва също да използвате fetchProducts()
, а не getProducts()
.
Като цяло, няма значение дали предпочитате fetch, get, retrieve
или друг термин, просто бъдете последователни.
Надяваме се, че това ще бъде полезно в пътуването ви като Java програмист и продължавайте с добрия код!
И не забравяйте да проверите моя нов блог JavaCodeBox.