私はいつも動的コードのためのものを持っていました。多くの作業を行わなくても、クールな新機能を簡単に追加できるコード。そのため、私は多くの動的フレームワークを構築し、それらをプロジェクトで使用しています。小さいものもあれば大きいものもあります。
例として、今日でもほとんどすべてのプロジェクトで使用している小さなカスタムエラーレポートフレームワークを構築しました。
これがどのように機能するかの簡単な例です:
error_reportLibrary.php-これはすべての魔法が起こる場所です。クラスとすべてのメソッドはここにあります。これは、フレームワークが必要なときに含まれるファイルです。
error_reportConfig.php-これは私の構成が行くところです(エラータイプなど)。このファイルの例を次に示します。これにより、小さなフレームワークがどのように機能するかをかなりよく説明できます。
(コード内のコメントは、各要素が設定として何をするかを説明する必要があります)
# ------ Main Settings ---------
$error_handlingSettings['errorStat']=true;//set this to false, and I wont display any errors. I don't care what the other errorTypes have to say.
$error_handlingSettings['default_highlight_color']="red";//this is the default highlight color that will be used if no color is defined for a specific errorType
# ------ Open API -------
$error_handlingSettings['open_api']['status']=true;//set this to true and I'll show errors for the Open API
$error_handlingSettings['open_api']['highlight_color']="#0ff";//shall I highlight any errors that occur for this specific type? if so, set this to a color.
$error_handlingSettings['open_api']['onRemoteAddr']=true;//shall I display errors to specific IP addresses?
$error_handlingSettings['open_api']['remote_addr'][]="86.8.168.228";//so I will show to this IP
$error_handlingSettings['open_api']['remote_addr'][]="127.0.0.1";//and this IP
# ------ SQL Core -------
$error_handlingSettings['sql_core']['status']=true;//set this to true and I'll show errors for the SQL Core
$error_handlingSettings['sql_core']['highlight_color']="orange";//shall I highlight any errors that occur for this specific type? if so, set this to a color.
$error_handlingSettings['sql_core']['onRemoteAddr']=true;//shall I display errors to specific IP addresses?
$error_handlingSettings['sql_core']['remote_addr'][]="86.8.168.228";//so I will show to this IP
$error_handlingSettings['sql_core']['remote_addr'][]="127.0.0.1";//and this IP
したがって、おそらくおわかりのように、各エラータイプは、フレームワークを使用しているプロジェクトの異なる部分にすぎません(たとえば、SQL Coreは、使用しているデータベースフレームワークです。したがって、dbクエリの問題が発生した場合、このerrorTypeは次のようになります。エラーを印刷するときに調べました)。
したがって、印刷エラーの場合、これは構文です。
errorModule::doError("errorType","error messege");
ご覧のとおり、私にできることがいくつかあります。特定のIPアドレスに表示し、エラーテキストを強調表示するように、私は自信を持って言うことができます。フレームワークのスケーラビリティには影響しません。
上記は、プロジェクトで作成/使用する動的フレームワークのほんの一例であることを忘れないでください。
さて、質問に対して(ほぼ):私の大学のいくつかから、スケーラビリティに関しては、上記のような動的なフレームワークはひどいものだと言われました。それらが非常に保守可能であるという事実に関係なく。したがって、1日に100万以上のリクエストを受け取るWebアプリで上記のフレームワークを使用すると、完全に失敗します...
今、私は彼らの意見に反対していません(実際には....)が、これがなぜであるか知りたいですか?上記のような動的フレームワークがスケーラビリティに悪いと見なされるのはなぜですか?