titov_andrei
@titov_andrei
All my life I learn - and die a fool!

Что даёт навык написания кода по памяти?

Вроде бы даже опытные музыканты играют по нотам.

Что плохого в написании программ через копирование кода?
  • Вопрос задан
  • 300 просмотров
Решения вопроса 2
@Hedy
Больше уделяешь времени решению задачи, а не поиску куска кода, который нужно скопипастить.
Ответ написан
Комментировать
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Неважно какое сравнение, хотя очевидно в нём музыкант это компьютер, а программист - скорее композитор.

По большому счёту копипаста не является чем-то плохим самим по себе. Те же сниппеты по сути та же копипаста, только в профиль. Беда кроется не в копипасте как таковой, а в китайско-индусском коде. Современные языки программирования оперируют такой важной концепцией, как общий код с туевой хучей инструментов для этого: функции, классы, шаблоны/дженерики, интерфейсы, циклы, etc. Очевидно, что если вы используете копипасту, то код общий. Если он общий, то возможно стоит вынести этот код в общие функцию или класс. Другими словами, сам язык программирования предоставляет собственные инструменты переиспользования кода. А тупой и брутальный ctrl+c, ctrl+v приведёт лишь к тому, что со временем, при изменении интерфейса, потребуется перелопатить не пару функций/классов, а тысячи строк копипасты. Причём, если изменение ambiguous, то вполне возможно код даже соберётся (если речь идёт про компилируемый язык программирования) и будет работать. Просто не правильно. А в тысячах строках однотипного кода поди найди это изменение.

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

Хотя опять же. Ситуации разные бывают. Если всё горит и надо вот прямо сейчас быстро морфировать простой интерфейс, оставив прежний, то копипаста может быть оправданной мерой. Так же, не смотря на все возможности по обобщённому программирования, паттерны в принципе схожи друг с другом, да и сам код имеет далеко не самую высокую энтропию, посему хорошие программисты активно используют сниппеты, позволяющие быстро вставлять часто используемые фрагменты кода. Кроме сниппетов есть другие инструменты, вроде Resharper или IntelliSense: они добавляют собственные инструменты сниппенга и подобные, позволяя анфолдить некоторые "макросы" в целые блоки кода. Да и реализуют автодополнение, позволяющее освободить от необходимости точно знать интерфесы всего проекта и всех используемых библиотек (что в принципе не очень реально). Наконец, можно просто научится быстро печатать, что значительно ускорит ввод, а в некоторых случаях быстрее будет даже просто набрать похожий текст, чем копировать его.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
longclaps
@longclaps
Ничего плохого, одно лишь хорошее.
Всегда пишите это первой строкой в резюме.
Ответ написан
Комментировать
Vlad_IT
@Vlad_IT
Front-end разработчик
Нельзя копировать код, надо копировать смысл. Иначе с копипастой не будет понимания работы кода, и он превратится в кошмар.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Программист - это не музыкант, а композитор. Представьте себе композитора, который пишет музыку копипастой из других произведений.
Ответ написан
al_gon
@al_gon
Вопрос: Что даёт навык написания кода по памяти?
Ответ: написание кода по памяти
Ответ написан
Комментировать
@stratosmi
Вроде бы даже опытные музыканты играют по нотам.
Что плохого в написании программ через копирование кода?


Это разные вещи.
Музыкант повторяет (со своими вариациями) то, что придумал композитор.

Программист решает уникальную задачу.
Если он её решил - зачем ему платить еще и еще раз за то же самое, просто за повтор?

Музыканты тоже, кстати, не только концертами зарабатывают.
А и записи продают.

Что плохого в написании программ через копирование кода?

То, что ты не понимаешь, что делаешь.

Типичная ошибка, например:

Берем какую-нибудь статью с некими примерами кода.

И тупо копируем код.

Но! Автор статьи, ради упрощения чтения, ради фокусировки читателя на главном - выкинул из кода все проверки на ошибки!

А ты код скопировал, не понимая, что использовать его в виде, приведенном автором статьи - нельзя.
Ответ написан
Комментировать
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Плохое сравнение, музыкант по нотам играет определенную мелодию. Если Вам надо написать туже программу, один в один, тогда копирование выглядит разумным вариантом. Заново писать гугл не стоит. Но если композитор собирает мелодию из других мелодий - тогда это говномелодия. Или в случае с программой говнокод.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы