10

私は何年もの間 PHP/MySQL 開発者として働いてきましたが、残念ながらこれまで小さなプロジェクトしか扱ったことがありませんでした。現在、非常に複雑な新しい Web サイトを開始していて、ワークフローに混乱し始めています。かなり絡み合っているので、最初にどの部分を処理すればよいかわかりません。

新しい Web サイトのワークフローをどのように管理しているのか知りたいです。私は独立して作業しているので、複数の開発者が関与していない方が説明しやすいでしょう。また、CodeIgniter フレームワークを使用するので、ワークフローに MVC モデルが含まれていれば、実際にワークフローが簡単になるはずです。

いくつか検索した後、次の役立つ図を見つけました。ワークフローチャート

ただし、各カテゴリに何が該当するかはよくわかりません。これまでのところ、私が理解していることの一般的な要約を次に示します。私が間違っている場合や、より良いオプションがある場合は、お気軽に修正してください。

計画

プロジェクトの明確な目標があることを確認してください。何を誰に提供するか? 他の人にとってどのように役立ちますか?等

サイトマップ

サイトに表示されるすべてのページとサブページをリストします。

ワイヤーフレーム

サイトマップ全体に目を通し、すべてのページの大まかなスケッチを作成します。(どの程度詳細に取得する必要がありますか?) 鉛筆と紙、または Axure や Mockingbird などのプログラムを使用できます。

ワークフロー チャートの次の主要なカテゴリはコンテンツですが、これが何を意味するのかはわかりません。それはウェブサイト上のすべてのテキストですか?データベース構造?他の何か?

アートワーク

ウェブサイトの実際のデザイン/テンプレート。しかし、これは本当にこれに適した場所ですか?コーディングや機能性の方が重要だと考えて、その後でデザインを作ります。

コーディング

このステップは包括的であるように思われ、分解する必要があると思います。データベース構造は最初に作成されますか (それともワイヤーフレームの後でコンテンツで作成されましたか?) サイトマップの各ページのすべての機能のアウトラインを作成しますか? 必要なすべてのコントローラーを作成し、どの関数をどこに配置するかについてコメントするだけですか? モデルはコントローラーのアウトラインの後に配置されますか、それともその逆ですか? すべてのコントローラーとモデルの入力を開始するのはいつですか?

コードが正しく機能することを確認するために、一定のテストが必要です。

コンテンツ人口

これには、MVC フレームワークのビュー ファイルが含まれますか? 言い換えれば、コントローラーとモデルが提供したすべてのデータ?

最終テスト

すべてのブラウザですべてが機能することを確認してください。あちらこちらで微調整や変更を行っています。多数の「もしも」ケースに全力を尽くす。

製造

サイトがライブになります。

結論

上記は、複雑な Web サイトを開発する手順の体系的なフローチャートであると理解していますが、私の理解は大幅に改善される可能性があります。何を変更する必要がありますか?可能なすべての提案を使用できます。ありがとうございました。

編集:ここで誰かが「アジャイル開発」について言及しました。これまで読んだことから、実際には構造がありません。私が間違っている場合は修正してください。その回答にコメントしたように、Amazon や Ebay などの複雑なサイトをこのように開発することは本当に可能ですか? 私の無知な意見では、ワークフロープロセスには明確な計画が必要です。そうでなければ、プロジェクトに焦点が当てられません。

最終編集:この質問は終了しましたが、後でこれを見つける可能性がある人のために情報を追加したいと思います。次のワークフローが役立つことがわかりました: http://www.webassist.com/free-downloads/tutorials-and-training/web-dev-workflow.php。一般的なワークフローの PDF: http://assets.webassist.com/how-tos/Short-Dev-Checklist.pdf。もちろん、アジャイル開発も使用できますが、これは、どこから始めればよいかわからない人にとっては良い出発点になる可能性があります。追加のワークフローと例を見つけたら、ここに追加する可能性があります。

4

3 に答える 3

3

R&D の世界はアジャイル開発に移行しています。アジャイル開発では、多くの計画を立てて最初から最後まですべてを書き留めるのではなく、小さな繰り返しを行い、小さな変更を加えて、常に 1 つの明確な目標を目の前に置くようにします。要件の理解が深まるにつれて、方向性を調整できます (ユーザーのフィードバックに基づいた実際の要件であり、顧客が何を望んでいるか、または使用するかを基にした推定作業ではありません)。

アジャイル開発とリーン スタートアップの方法論を研究することをお勧めします。オンライン サービスの構築方法が変わり、効率と生産性が大幅に向上します。

コーディングを開始してから約 2 日後に、オンライン サービスが開始されました。これは、最初から実際のユーザーに公開するという意味ではありませんが、「ライブに移行する準備が整う」まで開発マシンにすべてを保持するのではなく、現実の世界からすぐにフィードバックを得ることができます。

于 2012-12-21T19:28:27.303 に答える
0

アジャイル開発は、Webサイトにとって間違いなく良いアイデアです(通常、コーディングは比較的簡単で独立しているため)。アジャイルの主なポイントは、変更が可能であり、「機能Bの実行に予想よりも時間がかかったため、CとDが別のイテレーションで提供される」ことを調整できることです。ご存知かもしれませんが、大規模なプロジェクトの計画には多大な労力がかかる可能性があり、ほとんどの場合、予想よりも長くなります。アジャイルでは、各ビットを「垂直スライス」として実行します。つまり、フロントページ(またはそれが属する場所)にリングを追加することから、それを処理するコードを追加することまで、実行されたすべてのことが製品に役立つものになるはずです。関連するデータを保存/取得するためのデータベースモデル。

たくさんのページやたくさんのデータベーステーブルなどがある大規模なサイトについては、まだかなりの計画を立てる必要があると確信しています。しかし、一般的なWebサイト/データベースの設計に合理的な根拠がある限り、Agileメソッドを使用すると、「ウォーキングスケルトン」を設計できます(基本的な概念では機能しますが、機能する製品になるには、骨にさらに肉が必要です)。次に、より多くの機能を備えたスケッチを具体化します。各機能はそれ自体が「完全」であり、顧客が必要とするものを追加します。そうすれば、各作業項目が終了した後、常に顧客に提供できるものを手に入れることができます。

また、AmazonやEbayには20〜30以上のテーブルがあると確信しています。私はwww.planetcatfish.comというサイトで作業していますが、AmazonやEbayよりもはるかに小さくてシンプルで、25個のテーブルがあります(サイト固有のユーザー機能にも使用されるフォーラムのphpbbテーブルを除く)。そして、それは何年にもわたって書かれ、主にphp、小さなjavascript、そしてphpコード内のかなりのmysqlを使用しています。

于 2012-12-21T19:49:29.233 に答える
0

TheZuck の回答は適切で非常に役立つので、私自身の経験をいくつか追加します。これは、必ずしも同じことを経験するという意味ではありません。私が欠けているものです. :S).

クライアントにとってコンテンツは常に問題だったので、早めに取り組んでもらいたいと思います。コピーライターと一緒に仕事をしているなら、それは問題ではないと思います。ただし、コンテンツを時間内に配信しない場合は、何らかのペナルティが必要です。

また、クライアントが実際にウェブサイトについて考え始めるのは、コンテンツについて考え始めてからであることに注意してください。彼らがそれに取り組み始めたとき、彼らがいくつかの変更を望んでいるという話を聞くことを期待してください.

クライアントが中小企業の場合、実際に時間がかかる理由を理解していない傾向があります。アジャイル開発は非常に優れていますが、中小企業は作業するための資金があまりなく、最終製品に固定価格が必要になる可能性があるため、これを小規模企業に実装するのは難しいと思います。そして、それが修正されたとしても、完成品を渡さずにすべての時間を使い果たしたり、支払ったものをすべて使い果たしたりすると、彼らは腹を立てるだけです (作業成果物は完成品と同じではありません!)。

クライアントは IT に詳しくない傾向があり、極端な場合もあります。「明白な」ことを彼らに説明するために、いくらか、またはかなりの時間を費やす必要があると考えてください。

自分自身と自分の能力を過大評価しないでください。これはおそらく、実際に妥当な額よりも少ない請求になることを意味するからです。質の高いウェブサイトにはお金がかかるはずですが、少額の料金を請求する場合は、数人のクライアントを獲得するためだけに知っていることは理解できます.

これがあなたの質問に対する答えではないことは承知していますが、少しでも役に立てば幸いです。

于 2012-12-21T19:59:02.510 に答える