Как Вы имеете дело со своими прошлыми злодеяниями программирования?

Если я не отсутствую, что-то, ','.join(foo) должно сделать то, что Вы просите.

>>> ','.join([''])
''
>>> ','.join(['s'])
's'
>>> ','.join(['a','b','c'])
'a,b,c'

(редактирование: и поскольку jmanning2k указывает,

','.join([str(x) for x in foo])

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

11
задан Michael Moussa 7 July 2009 в 02:52
поделиться

14 ответов

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

Если серьезно, мой подход всегда заключался в исправлении вещей, которые опасны (например, уязвимости SQL-инъекций ) срочно , а затем рефакторинг другого уродливого кода, если и когда мне случится работать в определенной области, которая требует рефакторинга. При исправлении ошибок или внедрении новых функций я часто веду список фрагментов кода, требующих рефакторинга, а затем реорганизую код после того, как я закончил свою «настоящую» задачу. Обычно это не занимает много времени, и у меня есть модульные тесты, чтобы убедиться, что я ничего не сломал (если ваш код не прошел модульное тестирование, это отличная причина его протестировать!).

19
ответ дан 3 December 2019 в 01:09
поделиться

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

В каждом выпуске наших приложений мы вносим ряд изменений:

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

Итак, постепенно мы работаем над заменой проблемного кода третьим и четвертым элементами.

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

8
ответ дан 3 December 2019 в 01:09
поделиться

Мои первые программы существуют только на кассетах TRS-80, где оксид железа отслоился. Пару распечатывают на семиконтактном 40-столбцовом термографическом матричном принтере, который выжигает буквы на специальной серебристой бумаге с металлическим покрытием. Однажды летом вся эта бумага почернела на чердаке.

Думаю, я в порядке. Мои самые старые зверства благополучно уничтожены.


На самом деле, есть одно злодеяние, которое продолжает грызть меня. Я создал видеорежим для Amiga под названием « Sliced ​​HAM », который некоторое время был популярен. Он изменил базовые цвета для каждой строки, чтобы обеспечить более фотореалистичное изображение с меньшим количеством бахромы.

Я быстро написал конвертер и программу просмотра. В программе просмотра я сидел в цикле занятости, ожидая, пока пользователь закроет изображение. Это было неприемлемо для Amiga - первой многозадачной компьютерной системы массового рынка. Мне следовало дождаться события закрытия окна.

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

Все еще не дает мне покоя.

5
ответ дан 3 December 2019 в 01:09
поделиться

Учитывая, что работа все еще существует, и у вас все еще есть шанс зафиксировать новый материал, исправьте дерьмо и проверьте! Исправить ошибку никогда не поздно. И в этом нечего смущаться. Все делают ошибки.

Я также верю в честность и что хорошее нападение - лучшая защита. Просто громко скажите: «Это мой код, и это чушь», и люди будут смеяться вместе с вами :) Нет необходимости пытаться скрыть свой код. Он есть в вашей VCS, в любом случае с вашим именем.

1
ответ дан 3 December 2019 в 01:09
поделиться

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

0
ответ дан 3 December 2019 в 01:09
поделиться

Это может быть балансирующий акт. Меня укусило «улучшение» некоторого работающего кода, но я подумал, что это некрасиво, и представил новую глупую ошибку.

С другой стороны, несколько раз в моей карьере я боролся с некоторыми из них, спроектированный кусок дерьмового кода (написанный мной или кем-то другим) - иногда на несколько недель - потому что я не думал, что у меня есть время исправить его.

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

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

Это '

0
ответ дан 3 December 2019 в 01:09
поделиться

Лучший способ справиться с этими плохими воспоминаниями - научиться у них, как, я уверен, у вас есть. Также важно, прося прощения у членов вашей команды, чтобы вы продлили им то же самое. Самое главное, когда вы должны помнить эти «плохие примеры», когда вы наставляете младших членов команды.

0
ответ дан 3 December 2019 в 01:09
поделиться

Приношу свои извинения публично. Я хотел бы воспользоваться этой возможностью, чтобы извиниться за INewWindowManager. Извините.

2
ответ дан 3 December 2019 в 01:09
поделиться

Если он не сломан, не чините его.

Мне знакомо ощущение, что что-то можно было бы сделать намного проще и элегантнее, может быть, потому что вы лучше понимаете структуру, сейчас или потому что вы узнали какие-то новые техники. Но это действительно актуально только тогда, когда вы хотите расширить или изменить какой-то код, в противном случае просто дайте ему запуститься, если он работает. Если он не работает (т.е. если он глючит, работает слишком медленно, потребляет ресурсы и т. Д.), Вам все равно следует исправить это с самого начала и, следовательно, пока мало о чем сожалеть. А иначе ну о чем вы беспокоитесь? Красота кода такая мимолетная ...; o)

С другой стороны, если вы приходите работать над чужим кодом или даже над своим старым кодом, вы не должны удивляться, обнаружив неоптимальный код. . Мы все это делаем. Фактически, это ' s возможность почувствовать себя самодовольным и сыграть героя, когда вы успешно реорганизуете старый код.

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

1
ответ дан 3 December 2019 в 01:09
поделиться

Раньше это беспокоило меня больше, чем сейчас. Я пришел к выводу, что это всего лишь часть процесса разработки. Никто не начал (и даже не делает сейчас) писать идеальный код с первого дня. Часто кода, который вы написали, было достаточно с учетом технологий и ресурсов, которые у вас были в то время. Нечестно (для вас или кого-либо еще) сравнивать код, который вы написали 10 лет назад, с крайним сроком в 1 неделю, с тем, что вы могли бы сделать сегодня с текущими технологиями и наборами навыков.

2
ответ дан 3 December 2019 в 01:09
поделиться

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

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

3
ответ дан 3 December 2019 в 01:09
поделиться

Насколько AWT может быть более полезным, чем Swing -

  • вы можете ориентироваться на старую JVM или платформу, которая не поддерживает Swing. Раньше это действительно входило в игру, если вы создавали апплеты - вы хотели нацеливаться на наименьший общий знаменатель, чтобы людям не пришлось устанавливать новый плагин Java. Я не уверен, какая в настоящее время наиболее широко устанавливаемая версия подключаемого модуля Java - сегодня это может быть другим.
  • некоторые люди предпочитают собственный внешний вид AWT над оболочками платформы Swing «не совсем там». (Есть лучшие нативно выглядящие скины сторонних разработчиков, чем реализации Swing, кстати). Многие люди предпочли использовать FileDialog AWT, а не FileChooser Swing, потому что он давал диалоговое окно файла платформы, к которому привыкло большинство людей, а не «странный» пользовательский Swing. Вы также, вероятно, не связаны со своими бывшими работодателями, и они не будут выпускать исходный код.

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

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

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

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

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

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

3
ответ дан 3 December 2019 в 01:09
поделиться

Сначала я удостоверился, что у меня есть резервная копия старого, и «на всякий случай, я не так умен, как я думал» и «Если я такой умен, как думал Я был, я могу это доказать! :)

0
ответ дан 3 December 2019 в 01:09
поделиться

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

1
ответ дан 3 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

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