JavaRush/Java блог/Random/10 способов улучшить код, проверенных на личном опыте
Roman Beekeeper
35 уровень

10 способов улучшить код, проверенных на личном опыте

Статья из группы Random
участников
Всем привет, JavaRush сообщество! 10 способов улучшить код, проверенных на личном опыте - 1 Сегодня поговорим о качестве кода. Да-да, дорогие друзья. Никто не совершенен. Ко всем когда-нибудь приходит понимание, что код мог бы быть лучше… Но что же делать в этой ситуации? Как минимум, начать исследовать этот вопрос. Раз уж вы здесь, значит тема вам интересна, так что поехали. Сегодня опишем способы, при помощи которых можно сделать свой код лучше и чище. Так, чтобы не было в будущем стыдно за свой нынешний код!..)) Все эти методы помогут программисту стать хорошим программистом.

1. Хочешь улучшить свой код — читай чужой

10 способов улучшить код, проверенных на личном опыте - 2Если хотите резко повысить умение программировать, необходимо… читать код, написанный другими программистами. Можно верить в это, можно не верить. Но если рискнуть, обещаю: будет вознаграждение за потраченное время. Например, не читать на Хабре, как работает HashMap, ArrayList, LinkedList и так далее, а почитать их код и разобраться самостоятельно. Привожу список классов для прочтения:
  1. HashMap — самые частые вопросы на собеседованиях по нему. Можно убить сразу нескольких зайцев: и код понять, и знания нужные получить.

  2. ArrayList — тот же случай, что и с HashMap. Там нет каких-то сложных вещей, но почитать и разобраться действительно стоит.

  3. String — отличный пример. Понять, почему же он immutable.

  4. AtomicInteger — прикольный класс: там описан процесс, как атомарно выполнять операции над Integer объектами.

  5. А далее — хоть все классы подряд…)

Если говорить о чем-то более серьёзном, конечно, стоит почитать код от компании Pivotal. Эти ребята написали самую востребованную экосистему в Java-мире. Их код точно стоит того, чтобы почитать. Поэтому советую начать со Spring Core. Чтение незнакомого исходного кода — это сложная, но очень полезная работа.)

2. Следуй Code Conventions — соглашениям по написанию кода

10 способов улучшить код, проверенных на личном опыте - 3Соглашения по написанию кода — это набор рекомендаций, которые разрабатываются командами девелоперов и включают рекомендации по стилю программирования и методам для каждого аспекта кода, который написан внутри компании или определенного проекта. Эти соглашения как правило специфичны для каждого языка программирования и охватывают организацию файлов, отступы, комментарии, объявления, операторы, пробелы, соглашения об именах, методы и принципы программирования, правила программирования, передовые методы архитектуры и т. д. Основное преимущество определенных стандартов заключается в том, что код выглядит одинаково и написан в одном стиле. Это делает его более читаемым и помогает программистам понимать код, написанный другим программистом. Если стандартам кодирования будут следовать и последовательно применять их в процессе разработки, в будущем будет проще поддерживать и расширять код, реорганизовывать его и разрешать конфликты интеграции. Соглашения о коде важны для программистов по ряду причин:
  • 40%-80% стоимости программного обеспечения уходит на его обслуживание;
  • вряд ли какое-либо программное обеспечение поддерживается автором в течение всей его жизни;
  • соглашения о коде улучшают читаемость программного обеспечения, позволяя программистам быстрее понять новый код.
Честно говоря, я большой поклонник стандартов кодирования. Для меня имеет смысл проводить время, обсуждая и споря о них, так как это ценное занятие, которое сэкономит ваше время и усилия в будущем. Code Conventions должны часто пересматриваться. Правила можно перевести с «обязательного» на «необязательные» и наоборот. Если некоторые из них не работают должным образом, их необходимо переработать или удалить из руководящих принципов.

3. Используй Code Review — проверку кода другими

Code review — один из самых мощных инструментов по улучшению кода. 10 способов улучшить код, проверенных на личном опыте - 4Почему? Потому что код посмотрят те специалисты, которые его не писали. А свежий взгляд очень полезен. И зачастую именно Code Review помогает не допустить написание откровенно ужасного кода. Я знаю, что это не всегда возможно, потому что нужно найти еще одного человека, который бы захотел заниматься этим. Но это не значит, что этим инструментом не стоит пользоваться. Скорее наоборот: это повод найти единомышленников, которым также важно улучшить качество кода. К слову, кто запрещает найти их здесь на JavaRush? В месте, где все хотят стать программистами.

4. Пиши Unit Tests — модульные тесты

10 способов улучшить код, проверенных на личном опыте - 5Определенно, мой любимейший из методов по улучшению кода — это написание модульных тестов. Причем чем больше их писать, тем лучше. В компьютерном программировании модульное тестирование — это процесс разработки программного обеспечения, в котором самая маленькая тестируемая часть исходного кода, называемая модульной, тестируется индивидуально и независимо, чтобы проверить, работают ли они так, как ожидалось. Это поможет вам выявить сбои в алгоритмах и / или логике до выпуска кода. Поскольку модульное тестирование требует соответствующей структуры вашего кода, это означает, что код должен быть разделен на более мелкие и более сфокусированные функции. Каждый из которых отвечает за одну операцию над набором данных, а не за большие функции, выполняющие ряд различных операций.(как говорится, привет от Single Responsibility Principle…) Второе преимущество написания хорошо протестированного кода заключается в том, что можно предотвратить будущие сбои при небольших изменениях в существующей функциональности разрыва кода. Когда произойдет сбой, модульные тесты скажут, что было написано что-то не так. На первый взгляд, затраты времени на написание модульных тестов во время разработки выглядят как дополнительные расходы. Однако это сэкономит время в будущем, которое придется потратить на отладку. Это должен быть пошаговый процесс. Поэтому вперед и с песней — пишем тесты на все методы и классы :D

5. Используй инструменты для улучшения качества кода

10 способов улучшить код, проверенных на личном опыте - 6Нет разработчика, который бы никогда не ошибался. Обычно компилятор улавливает синтаксические и арифметические проблемы и выводит трассировку стека. Но все еще могут всплыть некоторые проблемы, которые компилятор не улавливает. Например, ненадлежащим образом реализованные требования, неправильные алгоритмы, неправильная структура кода или какие-то потенциальные проблемы, известные сообществу из опыта. Единственный способ уловить такие ошибки — попросить какого-нибудь старшего разработчика проверить ваш код. Такой подход не является панацеей и мало что меняет. С каждым новым разработчиком в команде у вас должна быть дополнительная пара глаз, которые будут смотреть на его / ее код. Но, к счастью, есть много инструментов, которые могут помочь вам контролировать качество кода. Я использовал в работе над разными проектами Checkstyle, PMD, FindBugs, SonarQube. Есть и другие. Все они обычно используются для анализа качества и создания некоторых полезных отчетов. Очень часто эти отчеты публикуются серверами непрерывной интеграции, такими как Jenkins.

6. Пишите простой и понятный код

10 способов улучшить код, проверенных на личном опыте - 7Всегда пишите простой, понятный и логичный код. Люди склонны писать сложный код, чтобы доказать свою способность делать это. Простой, но логичный код всегда работает хорошо, приводит к меньшему количеству проблем и является более расширяемым. Хороший код — лучшая документация. Если появилась мысль добавить комментарий, спросите себя: «Как я могу улучшить код, чтобы этот комментарий не понадобился?» ~ Стив Макконнелл.

7. Читайте документацию

10 способов улучшить код, проверенных на личном опыте - 8Одна из важных привычек хороших программистов — читать много документации. Пусть это будут спецификации, JSR, документы API, учебные пособия и т. Д. Чтение документов помогает вам создать ту крепкую основу, на которой вы наилучшим образом программируете. Последнее, но не менее важное: не сравнивайте себя с другими Ваше сравнение себя с другими приведет только к негативным чувствам и нездоровой конкуренции. У каждого свои сильные и слабые стороны. Поэтому важно знать их и работать с ними. Проанализируйте себя, перечислите свои сильные стороны и работайте над ними. Программирование —это настоящее удовольствие: наслаждайтесь им.

“Постоянная одного человека — переменная другого человека.”

Алан Дж. Перлис

8. Следи за интересными блогерами

10 способов улучшить код, проверенных на личном опыте - 9По всему миру тысячи энтузиастов работают над одними и теми же технологиями и пишут о них. Блоги часто пишутся самими программистами, и большинство из них делится личным мнением и опытом. Можно увидеть различные перспективы одной и той же технологии в блогах. Можно видеть как хорошие, так и плохие технологии в блогах. Как минимум читайте статьи на Хабре JavaRush :D, мои в том числе. Следите за хорошими блогами и комментируйте посты, делитесь своим мнением.

9. Читайте профильные книги

10 способов улучшить код, проверенных на личном опыте - 10Ничто не может заменить хорошую книгу. Хорошая книга научит базовым понятиям в гораздо более простой форме и применимо к объектам реального мира. Их авторы и сами великие программисты. Читая книги, можно научиться на чужом опыте. Предлагаю прочитать «Java. Эффективное программирование» Джошуа Блоха. В этой книге представлены семьдесят восемь незаменимых практических правил программиста: рабочие, лучшие решения для задач программирования, с которыми вы сталкиваетесь каждый день. В ней содержатся наиболее практичные, авторитетные руководства, которые стоит использовать для написания эффективных, хорошо разработанных программ. Если вы только начинаете работать с Java, не имея опыта программирования, вы можете прочесть книгу «Sams Teach Yourself Java 2 in 24 Hours». А чтобы писать чистый код, есть отличная книга “Чистый код Роберта Мартина”. После нее появится “чувство прекрасного” по отношению к коду.

10. Кодить! Кодить! Кодить!

Нельзя стать хорошим программистом, просто зазубрив книгу. 10 способов улучшить код, проверенных на личном опыте - 11Легко говорить о теоретических концепциях. Но узнать языковые ограничения или разработать лучшие практики можно только тогда, когда пишешь код. Поэтому, чтобы стать хорошим программистом, нужно писать много кода. Если вы новичок, начните с написания программ для простых задач, таких как ряды Фибоначчи, палиндром, треугольник Паскаля и т. д., А затем переходите к более крупным задачам, таким как дерево двоичного поиска и т. д. Если вы ищете онлайн-платформу для практики Java-программ, взгляните на Coding Ground. Более того, можно пройти курс CS50, перевод которого нам предоставил “сами знаете кто” :D

Подведем итоги

Не ошибается тот, кто ничего не делает. Поэтому набираемся терпения и как трудолюбивый японец оттачиваем свои навыки кодирования. Для этого не забываем:
  • читать чужой код;
  • проводить и просить, чтоб провели Code Reivew;
  • писать модульные тесты;
  • использовать инструменты для улучшения кода;
  • писать простой и понятный код;
  • читать документацию тех, кто смог;
  • следить за интересными программистами;
  • читать профильные книги;
  • Кодить! Кодить! Кодить!
  • подписаться на Романа на GitHub’e.

Полезные ссылки

Еще мои статьи

Комментарии (39)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
mr silver QA в Сбер
12 февраля, 10:46
вода водой
Виктор Крамаренко
Уровень 10
Expert
12 марта, 15:48
Для кого вода, а для кого полезная инфа. Но, субъективное мнение на то и субъективное...
{Java_Shark}
Уровень 17
31 января, 17:25
👍👍👍
Mark Rayder
Уровень 8
18 октября 2023, 16:34
Годная статья, но обезьяна учится у другой обезьяны - это самый эффективный способ обучения
Dankoyskaya
Уровень 6
29 сентября 2023, 20:14
Спасибо за статью :з
kseniaalisa
Уровень 12
29 сентября 2023, 15:15
ребята, посоветуйте интересных блогеров-программистов
САН САНЫЧ
Уровень 13
14 июня 2023, 09:27
+
Ilya Saratov
Уровень 25
22 мая 2023, 11:37
не Code Reivew, а Code Review..
anadery
Уровень 6
4 мая 2023, 19:30
спасибо автору, очень приятная подача и информаьивно, много чего подчеркнул и взял на будующий план действий, еще раз спасибо
Anatoly Enterprise Java Developer
20 апреля 2023, 09:10
Очень полезные ресурсы перечислены в этой лекции ^-^
Francesca
Уровень 27
Expert
12 апреля 2023, 04:40
Действительно, явно интересная статья, мое уважение🖖