2009-04-24 3 views
2

Я работаю над некоторыми домашними проектами, и обычно я сижу около своего персонального компьютера около 22:30 или 23:00 для кодирования. Но так как я пытаюсь спать около 24:00, я не начинаю кодирование и заканчиваю читать статьи, играя в некоторые игры и т. Д.Как обрабатывать короткие сеансы кодирования?

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

Каков ваш подход к этим вопросам? Вы просто код позже, когда у вас есть достаточно времени или у вас есть другой подход, который позволяет вам код всего за 30 минут и продолжить позже?

ответ

4

Обычно я не пишу много кода, пока у меня не будет времени на это. Причина в том, что для того, чтобы я стал эффективнее, вы фокусируетесь, и это занимает немного времени, чтобы правильно сфокусироваться. Тем не менее эти 30мин слоты велики для

  • не писать больше тестов: ничего подобного, пытаясь добраться до покрытия кода 100%, и это не большая трата, так как вы инвестируете
  • исследования: Я провожу много времени на чтение блоги, ищущие рамки, которые я могу использовать, или инструменты. Тратить 30 минут на поиск рамки, которая делает 80% необходимой вам функции намного лучше, чем тратить часы, пытаясь ее кодировать. Другим фактором для этого является то, что если вы реализуете структуру, и вы обнаружите, что она плохо подходит, вы лучше осведомлены о потребностях, что означает, что ваше развитие будет более плавным.
1

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

Попробуйте сделать как можно меньше тестов и используйте правило «1 assert per unit test» для создания небольших атомных тестов. Вы должны уметь исправлять некоторые из этих небольших тестов на 30-минутной сессии.

+1

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

0

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

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

0

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

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

1

Вот некоторые вещи, которые вы можете попробовать:

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

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

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

Пока вы работаете над небольшой проблемой, большая картинка очищается, а затем вы можете продолжить проектирование.

0

Вот что я делаю со своими личными проектами вне работы:

  • 1) Я пытаюсь дать себе хорошую карту моего проекта, планируя его на бумаге. Я рисую все мои объекты, структуры данных и/или таблицы SQL и определяю, какие основные функции и взаимодействия между этими компонентами необходимы. Я могу написать какой-то фактический код на этом этапе, если решение очевидно, но, как правило, нет.
  • 2) Как только большая картинка на месте, я расставляю приоритеты на самые элементарные и критические элементы. Я также пытаюсь выяснить, какие части будут легче писать, чем другие.
  • 3) После того, как были установлены приоритеты, я сначала начинаю работать с самыми легкими и наиболее важными частями и постепенно работаю над более сложными и менее важными компонентами. Прерывание каждой задачи на более мелкие части имеет тенденцию помогать. Например, я могу сначала создать таблицу базы данных, а на следующий день создать класс интерфейса данных, который контролирует взаимодействие с этой таблицей.
  • 4) Тестирование модулей действительно помогает мне почувствовать чувство выполненного долга, даже если 30 минут усилий приводят лишь к нескольким качественным строкам кода.
  • 5) Сохраните журнал изменений, даже если он не очень подробный. Я обнаружил, что мои журналы изменений неоценимы, если я работаю над большим проектом во многих коротких всплесках в течение длительного периода времени.

Эти шаги прямо помогают мне больше всего. В конце концов, я могу идентифицировать небольшие куски проекта, которые обычно могут быть завершены примерно через 30-60 минут. Конечно, по мере развития проекта мне, как правило, приходится переоценивать что-то и вернуться к началу какое-то время, когда обнаруживаю, что я что-то упустил из фаз планирования. Иногда мне нужно идти немного дальше и давать мне график времени с некоторыми крайними сроками и следить за тем, чтобы я вел вехи с личной наградой. Если у вас есть склонность держаться подальше до утра часов утра, с чем-то я борюсь, я также предлагаю ввести кодовый кодовое кодирование. Я также пытаюсь удостовериться, что мой «компьютер для кодирования» не имеет много отвлекающих факторов, таких как игры.

0

Всегда есть еще одна ошибка. Если нет, есть еще одна опрятная функция, которую вы можете добавить, и THAT добавит больше ошибок. Это одна из причин, почему я считаю, что использование фразы «Все, что вам нужно ...» кем бы то ни было (или использованием) ИТ должно быть висящим преступлением.

Я могу сократить время выполнения моих сеансов кодирования, выполняя тривиальные вещи, размышляя над вещами, находясь вдали от клавиатуры (душ лучше - или в постели в 4 часа ночи), и используя легкие среды, такие как сценарий языки, но «быстрые» сеансы кодирования - это то, о чем я давно надеялся.

Простое перемещение умственных передач в режим кодирования требует времени, для сбора тем, где я был раньше, требуется время, обнаружив, что мое «быстрое и простое решение» не было ни одним из вышеперечисленных, требует времени. Исправление «Быстрое и простое решение требует времени, отладки - больше времени и т. Д.

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