ベストアンサー
環境は文字通りマシンにインストールされているすべてのものであり、アプリケーションの開発やテストに影響を与える可能性があります。含める:
- 使用しているエディター/ IDE(コードの効率に影響を与える可能性があります)。
- 使用しているコンパイラー/インタープリターとその正確なバージョン-コードが実行されるかどうか、または実行の効率に影響を与える可能性があります。
- マシンにインストールされているオペレーティングシステム-コードの記述方法に大きな影響を与える可能性があります。
- マシンに設定された環境変数。特に、一部のアプリケーションの特定の機能に劇的な影響を与える可能性があるため、テスト中に関連します。
- マシンにインストールされた追加のライブラリ(他のプログラムによってインストールされたものを含む)。コードが他の人のマシンでどれだけうまく実行されるかに影響を与える可能性があります(ライブラリバージョンが異なる可能性があります)
- 特に負荷とパフォーマンスのテスト中に、マシンで実行されている他のプログラム。
- 利用可能マシンのRAMとディスク容量:特に負荷/ストレステスト条件下でのコードのパフォーマンスに影響を与える可能性があります
- ローカルネットワークの容量と接続性:一部のプログラムの機能に直接影響を与える可能性があります(または実際に機能するかどうか)
理想的には、開発環境はできる限りクリーンである必要があります。コードに必要なライブラリのみをインストールし、使用するコンパイラ/インタプリタのバージョンのみを使用してください。使用する予定です。同様に、機能テストの場合は、アプリケーションが計画しているライブラリのバージョンでのみ実行できるクリーンな環境が必要です。
負荷/ストレステストの場合は、さらに一歩進む必要があります。完全に無菌のマシンです。オペレーティングシステム以外のアプリケーションは実行されておらず、アプリケーションと依存関係のみがインストールされています。一部の組織は、テストプログラムにストレスをかけることを計画しているときに、ディスク全体をワイプして再インストールするところまで行きます。
回答
プログラミングは、アルゴリズムを取得してエンコードするプロセスです。コンピュータで実行できるように、表記法、プログラミング言語。多くのプログラミング言語と多くの異なるタイプのコンピューターが存在しますが、重要な最初のステップはソリューションを用意する必要があることです。アルゴリズムがなければ、プログラムはあり得ません。
コンピュータサイエンスはプログラミングの研究ではありません。ただし、プログラミングは、コンピューター科学者が行うことの重要な部分です。多くの場合、プログラミングは、ソリューションの表現を作成する方法です。したがって、この言語表現とそれを作成するプロセスは、分野の基本的な部分になります。
アルゴリズムは、問題のインスタンスを表すために必要なデータと必要な一連の手順の観点から、問題の解決策を説明します。意図した結果を生み出すため。プログラミング言語は、プロセスとデータの両方を表す表記法を提供する必要があります。この目的のために、言語は制御構造とデータ型を提供します。
制御構造により、アルゴリズムのステップを便利でありながら明確な方法で表すことができます。少なくとも、アルゴリズムには、順次処理、意思決定のための選択、および反復制御のための反復を実行する構成が必要です。言語がこれらの基本的なステートメントを提供する限り、アルゴリズム表現に使用できます。
コンピューター内のすべてのデータ項目は、2進数の文字列として表されます。これらの文字列に意味を与えるには、データ型が必要です。データ型は、このバイナリデータの解釈を提供するため、解決される問題に関して意味のある観点からデータを考えることができます。これらの低レベルの組み込みデータ型(プリミティブデータ型と呼ばれることもあります)は、アルゴリズム開発の構成要素を提供します。
たとえば、ほとんどのプログラミング言語は整数のデータ型を提供します。コンピュータのメモリ内の2進数の文字列は整数として解釈でき、整数に一般的に関連付けられている一般的な意味(23、654、-19など)が与えられます。さらに、データ型は、データ項目が参加できる操作の説明も提供します。整数では、加算、減算、乗算などの操作が一般的です。数値型のデータがこれらの算術演算に参加できることが期待されるようになりました。
私たちにとってしばしば発生する問題は、問題とその解決策が非常に複雑であるという事実です。これらの単純な言語提供の構造とデータ型は、複雑なソリューションを表すには確かに十分ですが、問題解決プロセスを実行するときに、通常は不利になります。この複雑さを制御し、ソリューションの作成を支援する方法が必要です。