0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Прежде чем вы начнете работать над собственным кодом, надо сначала понять, как вы будете его масштабировать и им управлять. В этой статье мы поговорим о том, что такое чистый код и как повысить качество своей работы, начав программировать лучше.</p>
1
<p>Прежде чем вы начнете работать над собственным кодом, надо сначала понять, как вы будете его масштабировать и им управлять. В этой статье мы поговорим о том, что такое чистый код и как повысить качество своей работы, начав программировать лучше.</p>
2
<p>Давайте представим себе огромную библиотеку с книгами. Когда книги классифицированы и отсортированы, найти нужное издание не составит труда и займет мало времени. Не говоря уже о том, что красивый дизайн интерьера позволит читателю чувствовать себя комфортно.</p>
2
<p>Давайте представим себе огромную библиотеку с книгами. Когда книги классифицированы и отсортированы, найти нужное издание не составит труда и займет мало времени. Не говоря уже о том, что красивый дизайн интерьера позволит читателю чувствовать себя комфортно.</p>
3
<p>Совсем по-другому обстоят дела, когда все книги свалены в общую кучу или расставлены абы как.</p>
3
<p>Совсем по-другому обстоят дела, когда все книги свалены в общую кучу или расставлены абы как.</p>
4
<p>Ситуацию можно спроецировать и на программирование. Если речь идет о создании чего-то действительно стоящего, стоит позаботиться не только о написании кода, но и о том, чтобы код был аккуратно организован. В результате любой читатель (например, ваш коллега программист), придя в вашу "библиотеку", увидит в ней аккуратное расположение имен переменных, пакетов и классов, что позволит ему быстро все понять.</p>
4
<p>Ситуацию можно спроецировать и на программирование. Если речь идет о создании чего-то действительно стоящего, стоит позаботиться не только о написании кода, но и о том, чтобы код был аккуратно организован. В результате любой читатель (например, ваш коллега программист), придя в вашу "библиотеку", увидит в ней аккуратное расположение имен переменных, пакетов и классов, что позволит ему быстро все понять.</p>
5
<h2>Так что же такое "чистый код"?</h2>
5
<h2>Так что же такое "чистый код"?</h2>
6
<p>Код называют "чистым", если в нем без проблем разбирается вся команда. В результате любой разработчик способен не только прочитать его, но и улучшить. Если код понятен, он читаем, изменяем, расширяем и легок в сопровождении.</p>
6
<p>Код называют "чистым", если в нем без проблем разбирается вся команда. В результате любой разработчик способен не только прочитать его, но и улучшить. Если код понятен, он читаем, изменяем, расширяем и легок в сопровождении.</p>
7
<p>Другая сторона медали - наспех законченный проект и код, который не может полностью понять никто, кроме вас. И Бога, как на картинке выше))) Это не что иное, как ваша недоработка. Такой код "чистым", разумеется, не будет.</p>
7
<p>Другая сторона медали - наспех законченный проект и код, который не может полностью понять никто, кроме вас. И Бога, как на картинке выше))) Это не что иное, как ваша недоработка. Такой код "чистым", разумеется, не будет.</p>
8
<h2>Качества чистого кода</h2>
8
<h2>Качества чистого кода</h2>
9
<p>Заботиться о "чистоте" кода нужно всегда, думая о том, как сделать его более читабельным и простым.</p>
9
<p>Заботиться о "чистоте" кода нужно всегда, думая о том, как сделать его более читабельным и простым.</p>
10
<h4>Основные характеристики чистого кода:</h4>
10
<h4>Основные характеристики чистого кода:</h4>
11
<p>•<strong>элегантность</strong>: готовый код радует вашу сущность, как радует любителя прекрасного красиво сделанная музыкальная шкатулка или другое произведение искусства; •<strong>простота</strong>: код не изобилует сложными конструкциями, он прост и упорядочен, количество объектов минимально, отдельное внимание уделено деталям; •<strong>сфокусированность</strong>: любая функция, класс и модуль выполняют одну определенную задачу, лишние фичи и дубликаты отсутствуют; •<strong>универсальность, эффективность, тестопригодность</strong>. Код успешно работает на всех тестах.</p>
11
<p>•<strong>элегантность</strong>: готовый код радует вашу сущность, как радует любителя прекрасного красиво сделанная музыкальная шкатулка или другое произведение искусства; •<strong>простота</strong>: код не изобилует сложными конструкциями, он прост и упорядочен, количество объектов минимально, отдельное внимание уделено деталям; •<strong>сфокусированность</strong>: любая функция, класс и модуль выполняют одну определенную задачу, лишние фичи и дубликаты отсутствуют; •<strong>универсальность, эффективность, тестопригодность</strong>. Код успешно работает на всех тестах.</p>
12
<p>И никогда не забывайте о том, что писать код, понятный другим, -- это один из главных признаков профессионала.</p>
12
<p>И никогда не забывайте о том, что писать код, понятный другим, -- это один из главных признаков профессионала.</p>
13
<h2>Задавайте уместные имена</h2>
13
<h2>Задавайте уместные имена</h2>
14
<p>Да, на выбор хорошего имени вы потратите дополнительное время, однако по итогу вы<strong>сэкономите намного больше</strong>. Функция, класс, переменная - имена должны отвечать на самые главные вопросы: зачем, что делает, как применяется. Скажем так, имя хорошее, если его не надо комментировать.</p>
14
<p>Да, на выбор хорошего имени вы потратите дополнительное время, однако по итогу вы<strong>сэкономите намного больше</strong>. Функция, класс, переменная - имена должны отвечать на самые главные вопросы: зачем, что делает, как применяется. Скажем так, имя хорошее, если его не надо комментировать.</p>
15
<p>Пример:</p>
15
<p>Пример:</p>
16
<h4>Имена классов</h4>
16
<h4>Имена классов</h4>
17
<p>Объекты и классы принято называть существительными либо фразами из них: Customer, WikiPage, Account, AddressParser. А вот следующих слов в названиях класса лучше избегать: Manager, Processor, Data, Info. Кроме того, имя класса не должно быть глаголом.</p>
17
<p>Объекты и классы принято называть существительными либо фразами из них: Customer, WikiPage, Account, AddressParser. А вот следующих слов в названиях класса лучше избегать: Manager, Processor, Data, Info. Кроме того, имя класса не должно быть глаголом.</p>
18
<h4>Имена методов</h4>
18
<h4>Имена методов</h4>
19
<p>Методы нужно называть глаголами либо фразами из них: postPayment(), deletePage(), save(). Мутаторы, аксессоры и предикаты следует называть по их значению, применяя префикс get, set и учитывая стандарт JavaBean.</p>
19
<p>Методы нужно называть глаголами либо фразами из них: postPayment(), deletePage(), save(). Мутаторы, аксессоры и предикаты следует называть по их значению, применяя префикс get, set и учитывая стандарт JavaBean.</p>
20
<h4>Применяйте доменные названия для задач</h4>
20
<h4>Применяйте доменные названия для задач</h4>
21
<p>Если возникла проблема с подбором названия, используйте доменные названия для задач. При возникновении затруднений с пониманием, разработчик, поддерживающий ваш код, просто спросит эксперта по домену, что означает это название.</p>
21
<p>Если возникла проблема с подбором названия, используйте доменные названия для задач. При возникновении затруднений с пониманием, разработчик, поддерживающий ваш код, просто спросит эксперта по домену, что означает это название.</p>
22
<p>Что же, в следующий раз поговорим о том, как писать код с использованием принципов S.O.L.I.D. А пока можете отдохнуть))</p>
22
<p>Что же, в следующий раз поговорим о том, как писать код с использованием принципов S.O.L.I.D. А пока можете отдохнуть))</p>
23
<p><em>По материалам статьи "<a>Understanding Clean Code in Android</a>".</em></p>
23
<p><em>По материалам статьи "<a>Understanding Clean Code in Android</a>".</em></p>
24
24