Как подготовить проект django для будущих изменений

Что такое PI? Окружность круга, разделенная на его диаметр.

В компьютерной графике вы можете нарисовать / нарисовать окружность с центром в 0,0 от начальной точки x, y, следующую точку x ', y' можно найти по простой формуле: x '= x + y / h: y '= y - x' / h

h обычно является степенью 2, так что деление может быть легко выполнено со сдвигом (или вычитанием из показателя степени в два раза). h также хочет быть радиусом r вашего круга. Легкой начальной точкой будет x = r, y = 0, а затем посчитать c количество шагов до x < = 0, чтобы построить четверть круга. PI 4 * c / r или PI 4 * c / h петля. Иногда рекурсивные алгоритмы поиска могут быть реализованы с использованием очереди, а не стека процесса, при поиске необходимо вернуться из тупика и выбрать другой путь - эти точки возврата могут быть помещены в очередь, а несколько процессов могут снять их с очереди и попробовать другие пути.

8
задан 4 revs, 2 users 100% 22 October 2010 в 19:52
поделиться

5 ответов

  • Развертывание в чистой среде с использованием virtualenv .
  • Документирование требований с использованием файла требований pip .

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

8
ответ дан 5 December 2019 в 07:35
поделиться

Послушайте Джеймса Беннета: прочтите практические проекты Django, следуйте http://b-list.org/ . Поищите на YouTube его доклад о многоразовых приложениях на djangocon. Прочтите его код (на bitbucket).

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

def user_login_view(request):
    context = {
        'login_form': forms.LoginForm
    }
    return render_to_response('accounts/login.html', context)

с помощью этого общего представления:

def user_login_view(request, form=models.LoginForm, template_name='accounts/login.html'):
    context = {
        'login_form': form,
    }
    return render_to_response(template_name, context)

Еще лучше, дайте вашему представлению общее имя, например, «form_view», переименуйте форму в «form» вместо «login_form» и передайте в ваших параметрах явность. Но эти изменения изменяют функциональность и не являются чистым рефакторингом. После проведения рефакторинга вы можете постепенно менять другие вещи.

4
ответ дан 5 December 2019 в 07:35
поделиться

Не уверен, насколько это актуально за пределами чудесного мира Webfaction.

Используйте Django, извлеченный из репозитория svn Django, а не то, что ваш хост установил для вас при создании Django app, поэтому вы можете обновить Django, чтобы получить исправления безопасности, запустив svn up .

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

5
ответ дан 5 December 2019 в 07:35
поделиться

«Что-то появится, и мне жаль, что я не реализовал это раньше»

Это определение хорошего сайта. Тот, который развивается и изменяется.

«Готовность к будущему, насколько это возможно?»

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

Всегда будут изменения. Это всегда будет иметь разрушительные последствия для ранее сделанных вами технологических выборов.

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

-2
ответ дан 5 December 2019 в 07:35
поделиться

Изучите и используйте Юг с самого начала, поэтому когда вы вносите серьезные изменения в схему БД, у вас уже будет инструмент миграции. В противном случае вы обнаружите, что в конечном итоге запускаете две версии бок о бок, пытаясь выяснить, как переносить данные, и это становится ОЧЕНЬ беспорядочным.

http: //south.aeracode. org /

7
ответ дан 5 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

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