pigmeich: (Default)
[personal profile] pigmeich
Мда, тема преследовала меня уже давно, но сегодня, похоже, дошёл до очередного уровня дзен.

Вы все видели как происходит Это. Каокй-нибудь человек со специальностью программист (обычно студент) нажимает два заветных сочетания клавиш ctrl+C и ctrl+V. Наука ещё не выснила, что он при этом испытывает, но ему хочется нажимать эти комбинации снова и снова. Снова и снова.

...Встретился со старым знакомым. Он перешёл на 4-ый курс программисткого факультета престижного ВУЗа нашей страны. Вдруг разговор зашёл о стиле. Я произнёс дежурную фразу: "стиль не в конкретных правилах для себя, а в том что ты можешь под чужие правила подстроиться и писать удобочитаемый код", ну и отметил, что копи-пастить код, вообще-то, нельзя. В ответ мне сказали, что я - дурак, а без копипаста невозможно писать курсовые.
Вот я сейчас думаю: а ведь без копипаста, действительно, курсовые писать невозможно. Им...

...Друзья кинули ссылку: http://skazka.spbu.ru/dtfiles/ctrlcctrlv/index.php. Голосов уже много. Жаль там не ведётся статистика сколько из них были программистами...

...Другой студент, другая курсовая. Тема - базы данных, программа - клиент на Java для какой-то xSQL. Ость основная форма, на ней куча кнопочек. При нажатии на кнопочку выскакивает дочерняя форма и вводятся параметры для запроса. Далее запрос наконец-то выполняется. Весь код запроса, взятия параметров и обработки информации хранится в дочерней форме. Угадаете, как делались все формы после первой? Правильно, копи-пастом примерно пяти экранов текста и правки пяти строчек. Потом ещё минут 10 тратилось на выведение багов возникщих из-за исправления 5 строчек. На вопрос: "А почему так", был получен ответ: "А завтра сдавать". Предупреждать, что минимум половину кода форм можно было б снести в общий модуль, я как-то не стал. Неприятно когда тебя дураком называют...

...И опять студенты. Прохожу по компьютерному классу, как всегда заглядываю что пишут сидящие за монитором. Замечаю знакомые комментарии. Вроде я обычно так пишу: на английском, краткими фразами. А вот код не мой. Хотя, если присмотреться, возможно раньше он был моим. Спрашиваю, так и есть: код прошёл то ли трех, то ли четырех человек после меня. И функция каждый раз изменялась. Почему сами написать не могут? А у них постоянно под укзателями то память теряется, то системная область попадается. Согласен, разумное оправдание для копи-паста...

...В среде не-студентов получше. Курсовые прошли, фокусы с подгонкой программы под тесты проходят уже нет хорошо. Хотя и тут свои пёрлы встречаются. Небольшой калабмур, потому что речь пойдёт про скрипты. Требовалось по номеру месяца выдать его название. Видим ровную линеечку If/Else уходящею за край экрана. Почему нельзя было завести массив с именами месяцев? Ну как же, прокопипастить If/Else быстрее. Ну а о том, что бы вынести подобную функцию в общий модуль никто не задумался. В результате, я, писавший позже, написал в общий модуль очередной велосипед, а только потом добрался до этих "ифов"...

...В таблице есть поле явялющеся ссылкой на другую таблицу. Требется по каждому значению ссылки посчитать количество вхождений в таблицу. Конечно, достаём всё таблицу и обходим её в цикле. А в цикле конструкция "Если занчение равно тому-то, то прибавить к счётчику того-то единицу". Размножается всё копи-пастом. Ну так писать, конечно, проще, да и сразу видно что ты много кода написал...

...Мы растём, мы приобретаем опыт. Мы узнаём что значат умные слова вроде STL и code review. И в какой-то момент начинаем думать перед каждым нажатием на ctrl+V. Или не начинаем...

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

Поэтому предлагаю перебиндить сочетания ctrl+C и ctrl+V на сочетание ctrl+F1. Пользы точно больше будет.

Date: 2007-07-21 04:15 pm (UTC)
From: [identity profile] clbq.livejournal.com
ну я сама не программист не разу, но как-то дошло дело, чтобы написать одну штуку для своих нужд
открыла референс стала тупо считать описание всех функций и т.д.)) вообщем всё понятно но как использовать на практике хз)))
ну вообщем да, я пользовалась чужим кодом из разных источников чтобы сделать _это_ )))))
с миру по нитке, но зато сделала что хотела
думаю копипаст эт для тех кто ещё ничо не умеет вроде меня)) дальше - надо расти))

Date: 2007-07-21 05:17 pm (UTC)
From: [identity profile] pigmeich.livejournal.com
Нет, это как раз нормально, когда берёшь чужой работающий код и:
1) не трогаешь его и пользуешься как "чёрным ящиком",
Или
2) начинаешь править, но разбираешься как он работает.

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

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

Profile

pigmeich: (Default)
pigmeich

June 2017

S M T W T F S
    1 23
4 5678910
11121314151617
18192021222324
252627282930 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 19th, 2026 12:04 pm
Powered by Dreamwidth Studios