これについては、長い間、最適な答えが得られないまま考えてきました。
まず、私は医師です。プログラミングは大好きですが、家庭での学習と、何年にもわたって自由な時間にコードをいじるということを除いて、プログラミングを実際に勉強したことはありません。
現在、私のクリニックを管理するための小さなプロジェクトを構築しようとしています。そのために、私が実行できるオプションのリストを作成しました。
例:
次に、codeigniter/mysql/php/jqueryを使用してコーディングを開始しました。
開発中の私のステップ:-
まず、必要なテーブルをすべて作成しました。
その後、ビューとコントローラーのコーディングを開始します。最初にビューHTMLを作成してから、このビューを処理するコントローラーを作成し、ビューの相互作用を機能させるための関数のコーディングを開始しました。
アポイントメントビューをコーディングするときの例(controller booking.php):
ユーザーがクリックすると、このレイアウトが作成され、テーブルtdがクリック可能になりました:jquery get(booking/add_patient_form)、それをポップアップします
ユーザーが保存するとき:予約/保存に投稿-予定を保存してから、index()関数を再読み込みします
など。私はビューを作成する同じ手順を続け、そのコントローラ(このビューに必要なすべてのロジックを含む)を続けてプロジェクト全体を達成しました。
最後に、すべてのターゲット関数が正常に機能していましたが、最初からPLANがなかったがあったため、プロジェクト全体がブレインストームとデバッグのパンチであり、これまで計画したことは何もありませんでした。このプロジェクトでは、保守性と柔軟性に悩まされています。それらをリンクすることができません。
ウェブサイトのすべてのページが他のページから完全に分離されているように感じ、各ページがどのように読み込まれ、どの関数が内部にあるのかを覗き見することさえ思い出せません!
とにかくこれを回復してデザインを出すことができますか?
あなたの質問-ソフトウェアを開発するためのプロセスは何ですか-は激しく議論されているトピックです。グーグルの「ソフトウェア方法論」だけで、これができるワームの深さを確認できます...
一般的に受け入れられている答えはありません。実際、5人のプログラマに尋ねると、私の経験では7つの答えが得られます。
Steve McConnellの "Code Complete"を購入して、コードのレイアウト方法、コメント方法、テスト方法など、低レベルのコーディングプラクティスを確認することをお勧めします。アーキテクチャレベルでアプリケーションを構造化する方法の概要については、Eric Evansによる「ドメイン駆動設計」をお勧めします。品質を維持しながらソフトウェアを「成長」させる方法の概要として、ロバートマーティンによる「アジャイルソフトウェア開発:原則、パターン、および実践」をお勧めします。
別の開発者はこれらすべての本を拒否する可能性が高く、UML、Rational Unified Process、およびコード生成を指摘します。正解はありません!
Webサイトワークフローの設計へのステップ/ステージ
詳細なリソース
データベース構造を維持し、会社が作成した新しいPHP(PHP Generator for MySQLを使用したコード)を生成することをお勧めします SQL Maestro 。それは本当に私にとってはうまくいきました。私はそれをたくさん使用し、特にPHPコードを自分のニーズに合わせて微調整する可能性)にとても満足していますさらに、彼らは更新にあなたの要求された新機能を組み込み、コードを微調整する方法のニースチュートリアルを持っています。よりよく理解するために このデモプロジェクト を見てください。
彼らのウェブサイトには、次の製品説明が記載されています。
PHPジェネレーターfor MySQLは、選択したテーブル、ビュー、およびクエリに対して高品質のPHPスクリプトを生成して、Web経由でこれらのオブジェクトをさらに操作するためのMySQL GUIフロントエンドです。主な機能は次のとおりです。 :
- データ管理:レコードの追加、編集、削除、コピー
- HTMLの外観のカスタマイズ
- フィルタリングおよびソート機能
- 多くのセキュリティ設定によるデータ保護
- マスター詳細プレゼンテーション
- イベント駆動型コンテンツ管理
- PDF、XML、CVS、Excel、Wordへのデータのエクスポート
MySQLのPHPジェネレーターは、そのまま使用したり、必要に応じて変更したりできる明確で理解しやすいコードを生成します。
プログラマーの採用、プログラミング言語の学習、または高価なソフトウェアの購入などの莫大なコストを節約できます。すべてのコードが自動的に生成されます。