Как научиться читать чужой код

0
3439
views

Чтение кода

Сегодня как никогда важно развивать свои навыки чтения чужого кода. Это необходимо для командной работы, в частности, с применением Agile-методов, а именно так работают современные крупные компании. Именно поэтому умение читать чужой код значится среди желаемых работодателями навыков в описании вакансий девелоперов.

Приобретение этого навыка — не такое легкое дело, как можно было бы подумать. Большинство разработчиков предпочитают писать собственный код, а не вчитываться в чужой, тем более, что зачастую просто не могут его понять. Ведь у другого разработчика другая логика и свои методы работы, и с первого взгляда в них не вникнуть.

Но если вы все же научитесь читать коды, вы получите много преимуществ. Вы сможете перенимать чужие интересные идеи и подходы, а потом использовать их при написании собственных программ. Главное при этом — читать хороший код, который на самом деле может служить примером. Это как с навыками чтения в широком смысле: вы не станете хорошим писателем, если не умеете читать и если не будете читать достойную литературу.

Какими способами можно приобрести (или усовершенствовать) свои навыки чтения чужого кода? На что обращать внимание?


1. Запуск кода

На этом этапе ознакомьтесь с кодом в целом. Какие библиотеки подключены, какие фреймворки, как этот код компилируется и запускается. Если ваш собственный проект имеет сходство с изучаемым, вы можете прямо сходу почерпнуть какие-то идеи и применить их у себя.

2. Ищите логику

Постарайтесь, не вдаваясь в детали, понять, как в целом работает этот код. Какой метод лежит в его основе. В случае с веб-приложением обратите внимание на организацию структуры: какие модули отвечают за пользовательский интерфейс, где хранятся контроллеры и т.д. Когда вы охватите взором весь проект в целом, вы сможете вычленить наиболее интересные для вас его части и изучить их по отдельности.

3. Познакомьтесь с инструментарием

При исследовании чужого кода вам пригодятся инструменты визуализации. Обратите внимание на IntelliJIdea и Sourcegraph.

  • IntelliJIdea обеспечивает возможности навигации и поиска по отдельным словами, их частям и сокращениям. Горячие клавиши позволят вам перемещаться по коду гораздо быстрее, чем при прокручивании колесика мышки, поэтому с ними просто необходимо познакомиться.
  • Sourcegraph — еще одно полезное приложение. Оно создано выпускниками Стэнфорда, которым приходилось читать чужой (иногда не очень хороший) код в больших количествах.

4. Изучайте языки программирования

Конечно, овладеть ими всеми в совершенстве не получится, но стоит хорошо изучить хотя бы один и ознакомиться с другими. Так вы сможете глаз определять (например, опираясь на то, с заглавных или строчных букв начинаются названия методов), какой язык применен в каком фрагменте. Это позволит вам лучше ориентироваться в коде в целом.

5. Больше читайте, изучайте устоявшиеся практики и шаблоны

Конечно, вы не можете знать все практические приемы и паттерны, использующиеся при разработке, но с ними стоит знакомиться, ведь с их помощью можно оптимизировать написание собственного кода. И, конечно, знание общеизвестных шаблонов поможет увидеть их в чужом коде и таким образом быстрее вникнуть в него.

Приведем в качестве примера Singleton, шаблон с приватным хранением конструктора. Вероятно, вам чаще попадались коды с публичным хранением конструктора (что целесообразно для создания экземпляра класса). А Singleton не позволяет создать больше одного экземпляра класса, вследствие чего у него много пользовательских сценариев.

6. Делайте code-review

Любая крупная программа сегодня скорее всего является результатом командной работы. Каждый участник пишет свой фрагмент. Во многих современных командах принято писать рецензию на код коллеги, озвучивая свое впечатление, перенимая опыт, обращая внимание читателей на особо интересные моменты. Это позволяет улучшать отношения в команде, совершенствовать код и уменьшать количество ошибок.

Для написания code review вам придется читать код товарищей по команде, что благотворно скажется на ваших навыках чтения.

7. Рефракторинг

Чтобы понять, для чего применен длинный метод, попробуйте разбить его на части. Отметьте для себя, какое значение имеет каждая часть, а затем вернитесь к методу в целом. Так вы лучше поймете его конструкцию, а также разовьете навык рефракторинга.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here