私はDjangoプロではありません。私はDjangoモデル(セッションやユーザープロファイルなどの基本的なミドルウェアを除く)を使用していないため、Djangoをたくさんハックします。それ以外は、私はDjangoデータベースモデルをまったく使用しません。 私の経験は本当に異なっています。
私の見解では、あなたのチームの仕事の習慣によって決まります。私はそれがアジャイル開発か、まっすぐな1日のハックかどうか本当に気にしません。
私はいくつかの仕様を考え出すと思います。何を提供したいのですか?
初期仕様を準備したら、コーディングを開始できます。私にとって最も簡単なのは、いくつかのモデルを書いてから、いくつかのビューを書いて、私が取り組んでいるものに対応するテンプレートを書くことだと思います。実際には、始めるために、いくつかの基本テンプレートファイルと、すべての必要なコンポーネントを表示するダミービューを作成して、ベースHTMLをブラウザで適切に表示できるようにしなければなりません。
その後、私は最初に自分のモデルを書いています。なぜなら、通常は扱うのが最も難しいからです。リレーション(モデルとモデルのクラス)の関係は、最も込み入ったものではありません。
私は何か準備ができていると思うと、ブラウズしてコードをテストします。私はまだテストコードを書いていない。私は私が十分にテストするように感じるまでそれらを書く。
真剣に。それは習慣のことです。
時間がかかりすぎるため、この時点ではテスト駆動できません。
私はそれを言い換えてください。私のプロジェクトの環境と私の経験に基づいて、私は通常、移動する前にいくつかのビューがあるまで待ちます。それは私だけです。一部の人は追加/修正しようとするたびにテストを行います。それは習慣です。これまでは、同じ機能を書き直すだけの時間を費やすことになりました。しかし、時間が限られているため、私の機能が機能していることが確かな場合(タイプミスなど)、私はいくつかのビューを書いた直後にテストを書きます。
科学的な計算プログラムをテストするように頼まれたら、テスト駆動が簡単です。私はまだDjango(モック、Django unittest)でテストするのはかなり新しいので、私にとっては難しいです。
あなたとあなたのチームが正しく感じている限り、あなたが正しいと感じるようにしてください。時間の経過とともに開発が改善されます。
常にテストを書くようにして、できるだけコードを文書化してください。
the right development approach
にあまり集中しないでください。熟練した開発者がテスト駆動開発を嫌う。あなたの仕様は常に変化します。ある日、私は10のビューと10のフォームを書いていました。翌日、私はRESTfulスタイルで自分のURLを書く必要があるので、それらを破壊しなければなりませんでした。私のビューのパラメータを変更する必要があります。
この質問はより適切かもしれませんし、より良い答えをhttp://programmers.stackexchange.comで受け取ることができます。 – agf
FWIW、私はテストドリブンアプローチ(TDD)に変換しています。私はDjangoのTDDに関するチュートリアルを書いています:http://www.tdd-django-tutorial.com/ – hwjp