Вы не можете скопировать код из Интернета, сказал он перед классом. Это опасно, и вы, вероятно, этого не поймете.

Мой взгляд переместился к ноутбуку, где я увидел сообщение от моего друга, который нашел репозиторий Github со всем выполненным заданием.

Мой профессор пытался сохранить справедливость и убедиться, что студенты научились профессионально программировать. Но, по иронии судьбы, опытные программисты являются мастерами эффективного копирования кода.

Почему?

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

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

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

Чтобы эффективно копировать код, вы должны критически мыслить, эффективно искать и бегло читать. Проще говоря, вы должны понимать, что вы копируете и почему вы это копируете.

Вот шесть стратегий, которые помогут вам копировать как профессионалу.

1. Читать код

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

Понимание кода — самая важная часть эффективного копирования. Если вы понимаете код, вы будете правильно его использовать и адаптировать под свои нужды. И в процессе вы станете лучшим программистом.

Так как же улучшить чтение кода?

Лучший способ улучшить чтение кода прост: читайте больше кода. Не пробегайтесь по коду, когда смотрите на решение проблемы переполнения стека. Попытайтесь понять это. Если это не имеет смысла, проведите дополнительные исследования. Если вы не понимаете метод, посмотрите его документацию или найдите его объявление. Поэкспериментируйте с кодом и посмотрите, как определенные изменения влияют на поведение.

2. Узнайте, как искать

Разработчиков программного обеспечения иногда называют профессиональными гуглерами. Это потому, что Google предоставляет доступ к коллективным знаниям миллионов программистов по всему миру, так что научитесь правильно их использовать!

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

После того, как вы нашли соответствующий учебник, вопрос о переполнении стека или страницу документации, используйте Ctrl-F, чтобы найти конкретный раздел, который вы ищете. Не тратьте свою умственную энергию на ручной поиск по веб-странице, если это возможно.

Также стоит изучить расширенные модификаторы Google, такие как кавычки, модификаторы исключения и т. д. Вот отличный fireship.io по ним, но я редко использую их, если только не ищу конкретное сообщение об ошибке.

3. Возьмите на себя ответственность за скопированный код

То, что вы этого не писали, не означает, что его нельзя рефакторить, тестировать и документировать. Если вы работаете над проектом вместе с другими, ваша работа заключается в обеспечении того, чтобы скопированный вами код был удобочитаемым и повторно используемым в контексте вашей системы. Часто переполнение стека или учебные пособия используют синтаксис, соглашения об именах, которые могут ввести в заблуждение при введении в кодовую базу. Без этой статьи вашим коллегам или соавторам может быть сложно поддерживать или обновлять код. Поэтому убедитесь, что это написано с учетом ваших товарищей по команде (и себя в будущем)!

4. Не бойтесь Github

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

Просто проверьте лицензию, чтобы убедиться, что копирование кода не связано с дополнительными обязательствами! Вот руководство о том, как определить, что означают разные лицензии. И не забудьте указать авторов оригинала, если можете!

5. Если сомневаетесь, прочитайте документы

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

6. Используйте лучшие инструменты

Существуют различные незаменимые инструменты, которые помогут вам копировать эффективно и результативно. Вот список некоторых из моих любимых:

  1. Github Co-pilot хорош. Так хорошо, что это немного причудливо. Co-pilot делает выводы о том, что вы собираетесь написать, предлагает целые фрагменты кода и интегрирует их с шаблонами, которые он находит в вашем коде. Такие инструменты — будущее программирования. Но они далеки от совершенства и часто делают плохие предложения или предоставляют плохо написанный код (см. эту статью). Если вы не знаете, как читать и рефакторить код, мощь такого инструмента может быстро стать проклятием, поэтому убедитесь, что вы понимаете код, который он предлагает, и правильно рефакторите его.
  2. Grepper:Grepper — это простой способ поиска простого синтаксиса и фрагментов кода. Это значительное улучшение поиска по нерелевантным статьям о переполнении стека.
  3. Библиотеки компонентов. Если вы являетесь фронтенд-разработчиком, вы знаете, сколько времени может занять создание хорошо продуманного, красивого и функционального пользовательского интерфейса. К счастью, некоторые библиотеки предоставляют компоненты пользовательского интерфейса для большинства фреймворков и языков пользовательского интерфейса. Например, FlutterBricks имеет сотни виджетов и экранов, которые обеспечивают прекрасную основу для Flutter, нашей любимой кроссплатформенной среды разработки.

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

Интернет дает вам доступ к объединенным знаниям человечества, так что используйте его!. Не тратьте свое ограниченное время на изобретение велосипеда — просто скопируйте этот фрагмент :)