フリーランスプロジェクト(webアプリ)のコードを配信するのはこれが初めてです。また、コードの配布の経験があまりないため、プログラムを展開する準備ができているかどうかを判断するのに苦労しています。
私の理解では、本番レベルのコードには次の特性が必要です。
- フォールトトレランス:キャッチされない例外を乗り切る能力
- データの冗長性:ユーザーデータを失うことはありません
- スケーラビリティ:追加の負荷を処理するためにアプリを書き直す必要はありません
- テストカバレッジ:テストされた「まともな」量のコード
これらの特性には、プログラム自体に固有のものもあれば、環境に関連するものもあります(複数のクラスターを使用しているかどうか)。ただし、環境に依存する特性でさえ、プログラムの設計方法に影響を与えます。
私の質問は次のとおりです。本番用コードを本番用ではないコードと大きく異なる他の特徴は何ですか?
質問の範囲を減らすために、ウェブアプリのみに焦点を当ててください。
編集:私は自分の状況に固有の特性を尋ねることで、範囲を絞り込もうとします。私はフリーランサーとして、VPSの購入から構成、コードの記述、デプロイまで、すべてを担当していました。プロジェクトとそのセットアップは十分に文書化されていますが、お客様はそれを維持することができません。アプリは複雑ではありませんが、多くの外部コンポーネントに依存しているため、これらのコンポーネントが変更/消失した場合、実際に壊れる傾向があります。目標は、顧客の介入なしで可能な限り長く続くことができるサービスをセットアップすることです。