![見出し画像](https://assets.st-note.com/production/uploads/images/120184342/rectangle_large_type_2_786a22de7fc982c117319095d3a407ce.png?width=1200)
テクノロジー用語5選
こんにちは! 本村です。
さて、今回は「テクノロジー用語5選」というテーマでお話しできればと思います。
ざっくりとした概要は、インターネット業界で頻繁に出てくるワードについてです。
早速ですが、本題に入っていこうと思います。
Chapter1:オブジェクト指向
オブジェクト指向とは、ソフトウェアの開発手法の1つです。関連する”プロパティ(データ)”と”メソッド(処理手順)”を1つのオブジェクトとしてまとめていきます。
さらに、複数のオブジェクトを組み合わせてソフトウェア全体を構築します。特徴としては、独立したオブジェクトが連携してソフトウェアを構成するので、開発工程の効率化や仕様変更への容易な対応が実現します。
オブジェクト指向には、”クラス”というひな形をもとにオブジェクトを生成していきます。クラスには、プロパティとメソッドが含まれており、このクラスを実体化したオブジェクトを”インスタンス”とよびます。
要するに、オブジェクト指向とは、関連するプロパティとそれらメソッドをオブジェクトとよばれる1つの部品として定義し、以上を組み合わせてソフトウェア全体を構築するということです。
Chapter2:アルゴリズム
アルゴリズムとは、何か物事を行うときのやり方や手順である。言い換えると、問題を解決するための手順や計算方法などを指す言葉である。
算法ともよばれていて、四則演算や比較、条件分岐、繰り返しなど、曖昧でない単純で明確な手順の組み合わせとして記述されます。要するに、アルゴリズムの定義に従っていれば、性質上(アルゴリズム=手順)誰でも問題の解答を得られることになります。
条件の一つとして、コンピューターのプログラムでは、曖昧さのない、最適な順序にする必要があります。良いプログラムを作るには、良いアルゴリズムが必要だということ。
また、プログラム作成などを行う上での基礎となるアルゴリズムは、1つの問題に対して複数存在することがあります。同時に手順を少し変えるだけで処理時間が大幅に短縮できる場合もあれば、扱うデータ量によって適用の可否が分かれる場合もあります。
そのため、下記の特性を明らかにして、目的に応じて使い分けることが必要となります。
問題解決にかかる時間
計算量
記憶領域の大きさ
手順の簡潔さ
解答の精度
汎用性
要するに、とあるアルゴリズムでは膨大な回数の計算を行わないと答えが出ないが、別のアルゴリズムでは数回の計算で答えが出ることがある。プログラムはアルゴリズムをベースにして作成するため、確実にスマートにゴールに行けるアルゴリズムが優れたアルゴリズムであるとされている。
Chapter3:バグとデバッグ
この章では、”バグ”と”デバッグ”についてお話しできればと思います。
まず、バグというのは、プログラムに含まれる間違い箇所のことです。一方のデバッグは、バグ(間違い箇所)を見つけることです。
まとめると、以上のことをデバッグ作業といいます。また、プログラム開発の中でもデバッグ作業は最も難しいとされています。正常に動作するプログラムを作成する上でこの作業は欠かせないものとなっています。
バグとデバッグについて、少し掘り下げてみようと思います。
通常、バグはプログラム実行中に何らかのエラーが発生するといった分かりやすいものもある一方で、表面化せずに分かりにくいものもあります。さらに、影響範囲も広く、画面表示が微妙にズレるという軽微なものもあれば、セキュリティの脆弱性のようにシステムの根本に関わるバグもあります。
因みにバグの発生原因は、下記のようなものが上げられます。
プログラミング時の入力時のようなもの
開発者の仕様の理解不足
アルゴリズムの選定や実装のミス
続いて、デバッグについてです。デバッグとは、バグフィックスともよびます。テストなどによって発見されたプログラムの誤作動や不具合などについて、原因を探索・特定し、意図した通り動作するように修正する作業です。
デバッグ作業では、上述したようにバグがどこに潜んでいるか探索しなければいけません。また、ここで重要な要素としてバグはエラーが発生した箇所自体にあるとは限らないとされています。別の場所で間違ったデータが生成され、そのデータを使用して処理した結果、エラーが発生することもあります。
つまり、表沙汰の部分だけではなく、根本的な部分を詰めて修正しなければいけないということです。
以上がバグとデバッグについてでした。
Chapter4:ライブラリ
ライブラリとは、ざっくりいうと様々なコンピュータープログラムを複数集めて1つのファイルにしたものです。
通常は、オブジェクトコードとして記述されますが、ライブラリ単体では動くことができず、他のプログラムの一部としてリンクすることで動作します。
また、ライブラリには下記のように2種類の形態があります。
静的ライブラリ
動的ライブラリ
一つ目の静的ライブラリとは、実行可能ファイルを作成する時点で、その内部に結合されるライブラリのことです。リンク時にライブラリから必要な機能がすべて結合されるので、実行可能ファイルのみでプログラムを実行できます。
さらに、静的ライブラリは、プログラムのパフォーマンスを向上させることができます。理由は、実行ファイルにライブラリが組み込まれているため、プログラムがわざわざ外部のライブラリを読み込む必要がありません。よって、起動させた際の速度が向上し、メモリの使用量も減少するからです。
二つ目の動的ライブラリは、実行可能ファイルとライブラリを切り離しています。そして、実行可能ファイルの実行時にライブラリが結合されます。動的ライブラリを使用する実行可能ファイルは、単体では実行できず、あるべき場所にライブラリが存在しないと、プログラムを実行できないようになっています。
Chapter5:システム設計の手順
アプリの開発には時間とコストがかかるため、可能な限り無駄な作業を行わないで済むように、最初に設計図を作成しておく必要がある。
システムの開発においては、プログラミングが大きなウエイトを占めているが、ただプログラムを書くということはせず、開発プロセスに沿って進められる。
開発プロセスは、下記事項のように要求や要件を確かめる。
何のためにシステムを使うのか
どのように使うのか
いつまでに必要か
以上のような基本的な事柄を確かめて、開発の計画を立てるのがセオリーである。次に、システム設計に入り、システム全体の設計書を作成する。ここで作成した設計書を元にして、プログラム設計を行う。プログラム設計では、下記事項を決めていく。
どのプログラミング言語を使用するか
どのようにプログラミングを進めていくか
この後にようやくプログラミングの工程に入る。そして、あらゆるテストを経て実際に運用されるようになる。
今回は、インターネット業界で頻繁に飛び交う必須ワードについてお話ししました。