Являюсь ли я программистом copy/paste?

Являюсь ли я программистом copy/paste?
Являюсь ли я программистом copy/paste? - irzvn_ @ Unsplash

Когда у меня возникает какая-то проблема, я ищу решение в Google.

Затем я пытаюсь понять код и переделать его в соответствии с моими требованиями.

Например, недавно я задал вопрос Чтение xml документа в firefox в stack overflow.

Soufiane Hassou дал мне ссылку на w3schools, где я нашел пример по разбору xml документа, я понял как работает пример, но я скопировал код и подправил его в соответствии с моими требованиями, так как я не люблю много печатать.

Значит ли это, что я программист "копировать/вставить"?

Как вы можете сказать, является ли человек программистом copy/paste?

Спасибо.

Похоже, я буду здесь единственным несогласным.

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

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

Ясно, что вы не копипаст-программист, если вы этим не занимаетесь. Но из вашего описания вашей деятельности очевидно, что это не тот вопрос, который вы задаете.

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

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

Если вы обнаружите, что делаете это часто, то это должно быть для вас красным флажком. И вы сделали это очень неубедительное утверждение:

[...] затем я пытаюсь понять код и настроить его в соответствии со своими требованиями.

Может быть, это правда. Может быть. Проблема в том, что это скажет каждый программист карго-культа. Вопрос в том, действительно ли вы это понимаете? Действительно?

Понимаете ли вы его в достаточной степени, чтобы написать его с нуля, если потребуется, имея достаточно времени? Будет ли результат достаточно свободен от ошибок?

Или вы просто вносите случайные изменения в скопированный код, пока не найдете волшебную комбинацию, которая делает то, что вы хотите?

Я не выдвигаю обвинений; Я никогда не встречался с тобой, я ничего о тебе не знаю. Но это то, о чем вам нужно подумать.

Вот простой тест: замечаете ли вы, что часто редактируете и перекомпилируете код, когда находитесь в процессе «настройки» кода? Или вы читаете код, может быть, раз или два, и сразу понимаете, что нужно изменить и как?

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

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


LetsCodeIt, 6 июня 2023 г., 00:50