新しいフレームワークを構築するための一般的なルールやベストプラクティスはありますか?

オープンソースECMと対話するために、新しいフレームワークの設計と開発を開始する必要があります。これには、Webサイト開発者がこのECMと対話するのに役立つカスタマイズされたデータモデルが含まれているため、ノード操作の詳細やその他の低レベルの詳細を気にする必要はありません。これは、開発するクラスとメソッドの集まりにすぎません。

そのプロジェクトの組織と管理をどのように処理するかについて疑問があります。この種のプロジェクトを開発するために従うべき一般的なルール、ヒント、ベストプラクティス、または留意すべき点はありますか?

フレームワークまたはライブラリの開発とアプリケーションの間には何らかの違いがあると確信しています。

コメント

  • ECMはエンタープライズコンテンツ管理[システム]を意味すると想定しますか?
  • はい、'はAlfrescoと連携しています

回答

最初に、フレームワーク廃棄物症候群を回避するための2つのルールを示します。

  • 既存のルールがないため、私のニーズと最後の20%に一致するように拡張可能
  • 別のアプリケーションで再び使用することを確認してください

合格したら、次の点を確認してください:

コメント

  • 80/20のルールを満たすフレームワークが見つからない場合は、'作業中です。非常にユニークなドメインであるか、'ドメインを十分に理解していない。

回答

1)機能は、機能するコードから抽出された場合にのみフレームワークに追加する必要があります。言い換えれば、クールな新しいアイデアをクールな新しいフレームワークに追加する前に、それが実際に価値を付加し、実際のアプリケーションでの繰り返しを減らすことを確認してください。

2)ドキュメント、ドキュメント、ドキュメント。

3)ドキュメント、ドキュメント、ドキュメント。

回答

苦痛な経験と多くの無駄な努力このアドバイスにつながる:動作中のソフトウェアからフレームワークを抽出またはリファクタリングします。将来的にフレームワークを抽出したいと思うことを念頭に置いてそのソフトウェアをビルドしますが、最初にフレームワークをビルドしないでください。

回答

この本フレームワーク設計ガイドラインをお勧めします。それは数年前のものですが、原則は真実のままです。たくさんのパターンがあり、フレームワークを構築するときに行う決定の背後にある理由を説明しています。

回答

1)最初から適切な規則に固執し、「非常に具体的な規則を文書化したことを確認してください。最良のフレームワークは、内部的に一貫性のあるものです。

2)すべてが適切なものから高度に文書化されていることを確認してください。コードコメントは、最も重要な関数が何を必要とし、何を生成するかを説明するまでずっと続きます。たとえそれが非常に単純に見えても、誰かが14時間連続でそれを使用する可能性があり、彼らはその1つだけを必要

3)フレームワークで達成したいこと、現実的な目標、および全体的な優先順位を記載した、プロジェクトの概要を自分で設定します。

4)人々が使用できるようになる場合は、何らかの形のサポートプロセス/バグ追跡が実施されていることを確認してください。バグが発生する可能性があります。それは私たち全員に起こりますが、それをオフから管理できれば、作業が楽になります。

全体として、アプリケーションを構築するための同様のアプローチ、しかし、開発者はユーザーよりもさらに煩雑であり、最良のフレームワークは、私たちが理解し、理解できるものであり、戦う必要はありません。

回答

多くの発言に同意できず、さらに多くのことが言及されていないように感じたので、最初から始めます。

アジャイル手法

フレームワーク開発中にアジャイル手法を採用して、変化に適応し、障害に迅速に対応し、機能的で高品質の最終製品を確保できるようにします。アジャイル手法とは、「アジャイルマニフェスト」によると、次のことを優先する手法です。

プロセスやツールよりも 個人と相互作用 br>実用的なソフトウェア over の包括的なドキュメント
顧客とのコラボレーション over 契約交渉
計画に従った変更への対応 over

その通りです。ドキュメントよりも機能が重要だと言いました。「アジャイルマニフェスト」では、右側の優先順位が依然として重要であると述べていることに注意してください。左側のものより。

通信

フレームワークを作成する人は誰でも知る必要があります:

  1. 使用方法:ターゲットアプリケーション
  2. 解決しようとしている問題:ターゲット問題
  3. 使用者:ターゲットオーディエンス

たとえば、企業がASP .NETを使用して最終的なアプリケーションを開発する場合、プログラマーに上記のことを言わずに「このフレームワークを作成する」と言うのはばかげています。プログラマーがターゲットアプリケーションを知らなかった場合、それをWeb指向にしない可能性があります。問題を知らなかった場合、プログラマーは別の目的のフレームワークを作成する可能性があります。対象者がわからない場合は、C ++でフレームワークをプログラミングする可能性があります。これらの状況では、結果のフレームワークが役に立たなくなります。

スタイル

言うまでもなく、プログラミングスタイルを確立します。 / formatとそれに固執します。

E “s

  1. モジュール性:文字通りではなくプログラムでコードを再利用します。
  2. 効率:コードは再利用を目的としています。速度への悪影響は倍増します。
  3. 保守性:フレームワークを次のように編集できるようにします。上記のプログラムを変更せずに、いくつかのプログラムを更新します。
  4. 使いやすさ:アプリケーションは実際にフレームワークを使用できますかフープを飛び越えずに?
  5. 実用性:持っていない場合は、車輪の再発明をしないでくださいそうするために。フレームワークは他のフレームワークに依存する可能性があります。
  6. 冗長性:例外/エラーをキャッチします。どこにでも。それらを処理します。どこにでも。エラーを処理することがわかっている場合でも、ローカルスコープ内のコード以外のコードを信頼しないでください。

コメント

  • ようこそP.SEへ!私は'フレームワークで例外をキャッチすることについて#6に同意しません。私は'フレームワークは絶対的なガキであり、例外をスローし、フレームワークを使用してそれらをキャッチするか、(さらに良いことに)コードの方向を変えるのはプログラマーに任せるべきだと大いに信じています。例外を回避するために-規則への準拠を奨励します。

回答

フレームワークまたはライブラリの開発とアプリケーションの間にいくつかの違いがあると確信しています。

開発プロセスは基本的に同じです。違いはマーケティングと展開の問題に帰着するかもしれませんが、最大の違いは通常、プロジェクトの範囲と定義に関するものです。アプリケーションにはフレームワークまたはライブラリが含まれるか、使用される場合があり、フレームワークはライブラリのコレクションである場合があることに注意してください。

そのプロジェクトの組織と管理をどのように処理するかについて疑問があります。次のような一般的なルールはありますか?この種のプロジェクトを開発する際に留意すべき点、ヒント、ベストプラクティス、または何か?

プロジェクトの編成と管理は、どの開発プロジェクトでも同じです。 。繰り返しますが、それは範囲に帰着します。ただし、フレームワークの作成に関しては、達成しようとしていることについて非常に明確なビジョンを持ち、APIの観点から一貫性を確保するために、フレームワークへのパブリックインターフェイスに厳密な設計ルールを配置することが重要です。プレゼンテーション。すべての開発者に独自のことを許可すると、複雑な混乱と非常に洗練されていないAPI設計になってしまいます。

フレームワーク設計ガイドラインを読むための推奨事項 a>本自体は.NETベースのフレームワークの開発を目的としていますが、一般的なアドバイスは、使用する特定の実装テクノロジに関係なく適用できるためです。

経験から、次のことをお勧めします。最も単純なパブリックインターフェイスを最初に実装し、次に拡張して後でより優れた制御と深さを提供するという古典的なYAGNIの原則ですが、メソッドまたはクラスが拡張される理由を示すために有用な名前を使用するように注意してください。私は、メソッド名に「Ex」や他の同様のサフィックスを追加したり、拡張されたインターフェイス定義に番号を追加したりするのが好きではありませんでした。機能を区別すると、インターフェイス/メソッド名がより明確になり、難読化や混乱が少なくなるはずです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です