問題タブ [production-environment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - サイト全体で javascript と css ファイルを処理するには?
私は最近、Web アプリケーション全体で共有された JavaScript および CSS ファイルを処理する方法についていくつか考えました。
私が取り組んでいる現在のWebアプリケーションでは、サーバー上のフォルダーに配置された非常に多数の異なるjavascriptとcssファイルを取得しました。一部のファイルは再利用されますが、他のファイルは再利用されません。
実稼働サイトでは、多数の HTTP リクエストがあり、何キロバイトもの不要な JavaScript や冗長な CSS が読み込まれているのは非常にばかげています。もちろん、これに対する解決策は、必要な情報のみを含む大きなバンドル ファイルをページごとに 1 つ作成し、それを最小化して圧縮 (GZIP) してクライアントに送信することです。
JavaScriptファイルのバンドルを作成し、それらを手動で最小化することを一度行う場合は心配ありませんが、アプリは継続的に維持され、物事は変化し、発展するため、これをプッシュしながら手動で行うことはすぐに頭痛の種になります. javascript および/または css ファイルを本番環境に変更する新しい更新。
これを処理するための良いアプローチは何ですか? アプリケーションでこれをどのように処理しますか?
debugging - プロダクションのみのエラーをデバッグする手順は?
私はこのトピックについて無知なので、この質問に客観的な答えがあるかどうかさえわかりません。「ない」という結果になった場合は、投稿を削除するか、投稿を閉じるために投票します。
シナリオは次のとおりです。ちょっとした Web サービスを書きました。それは私のマシンで動作します。私のチームリーダーのマシンで動作します。私の知る限り、運用サーバーを除くすべてのマシンで動作します。運用サーバーが障害時に吐き出す例外は、サードパーティの JAR ファイルに由来し、情報が不足しています。Web を何時間も検索しますが、役立つ情報が見つかりません。
では、本番マシンでのみ発生する問題を追跡する手順は何ですか? このための標準的な方法論、またはおそらくツールのカテゴリ/ファミリーはありますか?
この質問に影響を与えたエラーは既に修正されていますが、それはデバッグへの堅実なアプローチよりもむしろ幸運によるものでした。今後の参考のためにこの質問をしています。
編集:これまでのところ、これに対する答えは、 logging
という 1 つの単語に要約されているようです。ロギングに関する 1 つの問題は、事前の考慮が必要なことです。ロギングが不十分な既存のシステムで状況が発生した場合、またはクライアントが機密データについて心配していて、そもそもシステムに広範なロギングシステムを望んでいない場合はどうなりますか?
.net - Replay Director に相当する .NET
Replay Director に相当する .NET 用のサードパーティ製ツールがあるかどうかを知りたいです。
ruby-on-rails - 本番環境でサブドメイン Fu をセットアップしますか?
Rails アプリのサブドメイン機能として、人気のある subdomain-fu を使用しています。Railscast を見て、Google で見つけたものはすべて読みました。
開発環境では、利用可能なサブドメインを /etc/hosts ファイルに手動で追加する必要があります。わかりました。しかし、これは本番環境ではどのように機能するのでしょうか? これは非常に明白であると考えられているため、誰も言及していません。しかし、私はそれを理解していないと思います。
明らかに、本番環境で動的ソリューションをセットアップすることは可能でなければなりません。そうしないと、サブドメインをまったく拡張できませんでしたが、何をする必要があるのか 正確にはわかりません. UbuntuボックスでApache + Passengerを実行しています。次のように、vhost ファイルにワイルドカード ServerAlias を設定しました。
しかし、サブドメインを正しく解決するために他に何をする必要があるのか わかりません. これに対する標準的なアプローチに関するガイダンスは大歓迎です。
erlang - ポータブルアーラン
Erlangディストリビューションを「ブートストラップ」するための推奨される方法はありますか? ルートの昇格も開発ツールセットも持っていない (コンパイラなどもありません...) たくさんのマシンで erlang を実行したいと思います。私の考えは、以前にできる限り (同じアーキテクチャのマシン上で) 事前にパッケージ化することでした。使用可能な Erlang 環境の最小要件は何ですか?
iphone - iPhone の生産/リリースの例外処理
事前に、iPhone/Objective-C のベスト プラクティスに対する私の理解不足をお許しください。私は .NET/C# のバックグラウンドを持っています。
iPhone の例外処理に関する多くの投稿を読みましたが、ほとんどの人が製品コードに対して何を行っているかについては、まだ正確にはわかりません。また、通常期待するようなエラー処理を備えたオープン ソース アプリを見つけることができませんでした。ここに私の質問があります:
1) アプリケーションが最終的に失敗する原因となる予期しない結果が発生した場合、例外をスローしますか、それとも後で失敗するのを待ちますか? 例えば、
2) パラメータを検証していますか? たとえば、C# では、通常は null をチェックし、必要に応じて ArgumentNullException をスローします。
3) アプリがクラッシュした場合、クラッシュ情報は自動的にログに記録されますか? それとも未処理の例外ハンドラーを設定する必要がありますか? このメソッド内で UIAlertView を表示して、アプリが消えるだけでなく、何か問題が発生したことをユーザーに通知できますか? (もしそうなら、私はそれを機能させることができませんでした。)
4) そして最後に、実際に @try/@catch/@finally を使っている人を見ないのはなぜですか? C# で広く使用されていますが、それを使用するオープン ソース アプリは見つかりませんでした。(たぶん、私は間違ったアプリを見ているだけです。)
ruby-on-rails - マルチサーバーRubyonRailsプロダクションロギング
現在、インスタンスごとに独立したログを持つ4つのアプリケーションサーバーにまたがるRoRアプリが本番環境にあります。syslogを使用せずに、ログを共通の場所に集約するための最良の方法は何ですか?
java - デバッグ出力のための HttpServletRequest への効率的なアクセス
失敗したリクエストをデバッグするために、HttpServletRequest からのすべての情報を出力したいと思います。
ここで、リクエストが部分的に失敗する可能性があります (たとえば、いくつかの一致は成功しましたが、1 つが失敗しました)。その場合、失敗した内部メソッドで例外をキャッチし、エラー + ServletUtil.toStringHttpServletRequest( )、サービスの提供を継続します(機能は低下していますが、依然として有用である vs. 完全なリクエストの失敗)。
私たちの現在の実装は、例外をキャッチして愚かな情報を出力するか (「getRules failed」)、doGet() までずっと例外をスローします (ユーザーのサービスを効果的にキャンセルします)。関連するデバッグ情報 (ヘッダー、パラメーターなど) を出力します。
失敗する可能性のあるリクエスト中に呼び出されたすべての関数に HttpServletRequest を渡すのは少し見苦しく思えます。他に洗練されたソリューションが表示されない場合はそうします。
before head ServletUtil.toStringHttpServletRequest() を作成して ThreadLocal マップに格納すると、メモリと CPU 時間の両方で無駄になります。何らかの理由で、HttpServletRequest オブジェクトを ThreadLocal に格納するのは間違っていると感じます (間違っている場合は修正してください)。
デバッグ情報はローカル マシンのログに書き込まれ、開発者に直接電子メールで送信されます (すばらしい作業 log4j TLSSMTPAppender )。そのため、いくつかの場所にログインすることは実用的ではありません (何が起こっているのかを理解するには、いくつかの電子メールをまとめる必要があります)。サーバーは古いです:)(ここではすべて曇っています...エラーを確認するまでにサーバーが存在しない可能性があります)
したがって、私の解決策は「PrintErrorUtility」(TODO: より適切な名前) にアクセスすることです。それは (String errorMsg, Throwable t, HttpServletRequest) を受け取り、エラーを一緒に出力します...これは内部の try {} catch ブロックから呼び出され、エラーについて通知しますが、リクエストはキャンセルされません。それの。
明らかに、私は本番環境で実行されているサーバーについて取り上げています。
コメント? お知らせ下さい。
ありがとう、マキシム。
git - GITリポジトリでもある場合、Webサーバーからディレクトリを提供します
正しいセキュリティ上の懸念が導入されている場合、本番コードの GIT リポジトリを含むディレクトリを提供しない理由はありますか。ディレクトリはアプリケーションの webroot ですが、たとえば Apache を使用して .git ファイルへのアクセスを拒否する場合、このようにしない理由はありますか?
sql - 本番SQLデータベースのスキーマを変更するための推奨されるアプローチは?
100以上のテーブルを含むデータベースがあり、主要な機能が追加されたとします。これには、既存のテーブルのうち20を変更し、さらに30を追加する必要があります。変更は、開発データベースの複数の開発者によって長期間(6か月)にわたって行われました。変更によって既存の本番データが無効にならないことを前提とします(たとえば、追加された列で許可されるデフォルト値/ nullがあり、満たすことができなかった新しい関係や制約はありません)。
これらの変更をスキーマで本番データベースに公開する最も簡単な方法は何ですか?できれば、データベースを長時間シャットダウンせずに。