Всем привет, 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. Также есть интересный русскоязычный ресурс Quizful. Получите почетное звание “Junior Java Developer”, и я гарантирую, что навыки будут намного лучше. Более того, можно пройти курс CS50, перевод которого нам предоставил “сами знаете кто” :D 10 способов улучшить код, проверенных на личном опыте - 12

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

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

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

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