2012-05-08 4 views
6

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

Обычно я просто оставляю код на месте, закомментирован и не связан с VCS, в течение некоторого времени. Однако это становится болью, поскольку он загромождает код и должен быть уклонен от коммитов VCS. Я использую git, который имеет функцию «stash» для временного хранения, но я не уверен, что это подходящее использование.

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

+0

Какая ценность сохранение сломленного/мертвый кода предоставить вам, учитывая накладные расходы не только хранить его где-нибудь, но и помнить о том, что она существует в первую очередь? Собираетесь ли вы проверить этот каталог ужасов перед каждой проверкой? Как долго этот плохой код останется актуальным? Думаю, вы пытаетесь решить ложную проблему. –

+0

Лохматая лягушка: Даже если вам не удалось достичь своей цели, вам, вероятно, удалось решить ряд тангенциальных проблем. Необходимость повторного использования некоторых из этих частей позже не просто теоретична; вашей следующей попытке, вероятно, придется решить хотя бы некоторые из тех же проблем. – tripleee

+0

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

ответ

9

Отделы!

  1. Используйте ветви свободно (jQuery_slider_nivo, jQuery_slider_zurb и т.д.)
  2. Вы правы, что тайник не место, чтобы быть хранить этот код для отрезка времени
  3. Если вы хотите проверить код просто перейти к этой ветви
  4. Если вы хотите вернуть его в просто объединить ветви

Также вы можете выполнять операции архивирования ($ = консоль):

  1. Архив это: $ мерзавец контроль -b архив/<branchname> <branchname>
  2. Удалить это: $ мерзавец филиал -d <branchname>
  3. Восстановление его: $ GIT проверку -b <branchname> архив/<branchname>

< где branchname > == TotallyAwesomeBranchName

... или как вы называете ветки =]

5

Каждый раз, когда вы начинаете «задание», создавайте ветку. Впоследствии вы можете сохранить все вещи, которые вы пробовали в этой ветке, и зафиксировать рабочий код для освоения.

1

Вы, вероятно, создали отдельную ветвь для функции, как feature/doSomethingCool. Теперь вы можете перемещать (не так круто) ветвь из вашего пути, как

git branch -m feature/doSomethingCool archive/doSomethingCool-try1 

и создать новую ветку feature/doSomethingCool от develop. С archive/doSomethingCool-try1 -branch вы можете делать то, что хотите, даже игнорируя или удаляя.

+0

(для других читателей) опция '-m' является опцией переименования филиалов, поэтому через некоторое время у вас будут' -try1', '-try2' и т. Д. Если такие исследования являются общими, начните с '-try1' и т. д., пока это не так, и просто переименуйте его. –

+1

На самом деле (и потому, что это легче запомнить), это означает «двигаться», но эффект остается тем же, правильным. Я скоро свяжусь с man-страницей. Суффикс '-try1' был символическим здесь. Я бы рекомендовал что-то более понятное, например 'myFeature-eventDispatcherApproach' – KingCrunch

+0

+1 для« переместить ». Я часто думаю об этом как о «модификации» - любой способ запоминания - это хороший способ ;-). Именование этого подхода тоже хорошо, хотя я уверен, что многие в конечном итоге получают -luke1, -luke2 (нет попытки), - luke3 ... –

Смежные вопросы