Что выделяет продвинутого Android-разработчика?
Как сказал Роберт С. Мартин: «Вы читаете эту статью по двум причинам. Во-первых, вы программист. Во-вторых, вы хотите программировать лучше».
Если вы действительно хотите стать продвинутым Android-разработчиком, вы должны научиться писать чистый код. Но прежде чем его написать, следует понять, как он будет масштабироваться и управляться.
В библиотеке вы быстро найдёте нужную книгу только в том случае, если все они классифицированы и отсортированы. То же самое и с кодом: он должен быть аккуратно организован. Тогда любой посторонний Android-разработчик, увидев имена переменных, классов и пакетов, легко всё поймёт. И не будет ругаться, начиная проект с нуля.
Что же такое «чистый код»?
Его можно назвать таковым, если он понятен всей команде, что позволяет его прочитать и улучшить.
Характеристики: — код элегантен, как хорошо сделанная музыкальная шкатулка; — код прост, читабелен и упорядочен, уделено внимание деталям; — код сфокусирован, то есть каждый класс, модуль или функция выполняют свою конкретную задачу; — в коде отсутствуют дубликаты; — код работает на всех тестах; — код имеет минимально возможное количество объектов: классов, методов, функций и т. п.
Профессионал понимает, что чистота кода — это главное, поэтому он пишет код, понятный другим. Предлагаем вам ознакомиться с рядом советов, которые помогут вам написать качественный код.
Задавайте уместные имена
Да, на выбор хороших имён вы потратите время, но выгода будет очевидна. Рекомендуется, чтобы имя функции, класса либо переменной отвечало на такие важные вопросы, как и зачем это нужно, что это делает, каким образом используется. Если для понимания имени его нужно комментировать — это плохое имя.
К примеру:
// Неудачное название переменных var a = 0 // user ages var w = 0 // user weight var h = 0 // user height // Неудачное название функций fun age() fun weight() fun height() // Неудачное название классов для получения пользовательских данных class UserInfo // Неплохие варианты названия переменных var userAge = 0 var userWeight = 0 var userHeight = 0 // Прекрасные варианты названия функций fun setUserAge() fun setUserWeight() fun setUserHeight() // Прекрасный вариант названия класса для получения пользовательских данных class Users()
Имена классов
При именовании и объектов, и классов нужно использовать существительные либо фразы из существительных, к примеру WikiPage, Account, Customer, AddressParser. Избегайте слов Processor, Data, Manager, Info. Имена класса не должны быть глаголами.
Имена методов
А вот методы лучше называть глаголами или глагольными фразами, например
Для задач используйте доменные названия
Не можете выбрать название задачи? Используйте доменные названия! Не худший вариант, так как разработчик, поддерживающий ваш код, сможет спросить специалиста по домену, что оно означает.
Пишите код с использованием принципов S.O.L.I.D.!
SOLID является термином, описывающим принципы проектирования хорошего кода. Принципы придуманы Робертом К. Мартином. Давайте их перечислим: 1. SRP — принцип единой ответственности. Каждый класс отвечает за что-то одно. 2. OCP — принцип Открытости-Закрытости — объекты программы должны быть открыты для расширения, однако закрыты для модификации. 3. LSP — принцип подстановки Барбары Лисков. Дочерние классы не должны нарушать определения типов родительского класса. 4. ISP — принцип разделения интерфейса. Ни один клиент не должен зависеть от тех методов, которые он не использует. 5. DIP —принцип инверсии зависимостей, который определяется двумя пунктами: — модули высокого уровня не должны зависеть от модулей низкого уровня, при этом оба модуля должны зависеть от абстракций; — абстракции не должны зависеть от деталей, но детали должны зависеть от абстракций.
Значительно повысить свой уровень в написании кода вы сможете на продвинутом курсе «Android-разработчик». Не пропустите!
Статья подготовлена специально для OTUS на основании материала «Understanding Clean Code in Android».