【勉強に最適・忘録】随時更新!プログラミングで出てくる横文字・用語集
アノテーション
アノテーションは「値:型」という形式をとります。
インスタンス
コンピューティングやプログラミングの分野で使われる用語で、文脈によって意味が異なりますが、基本的には「具体的に作成されたもの」「動作中の個別の実体」を指します。
内容 | 補足、例 | |
---|---|---|
プログラミング | クラスを基に生成された具体的なオブジェクト | クラスは設計図 |
クラウドコンピューティング | 仮想サーバーやVMの実行中の状態 | AWS EC2インスタンス、 Google Cloud Compute Engine インスタンス |
データベース | DBMSの動作中のシステム | MySQL、PostgreSQL、Oracle |
スポンサードサーチ
instanceof
instanceof演算子は、特定のオブジェクトがクラスのインスタンスかをチェックすることができます。
class ClassA {}
class ClassB {}
const a = new ClassA();
console.log(a instanceof ClassA);
true
class Parent {}
class Child extends Parent {}
const child = new Child();
console.log(child instanceof Parent);
true
override
オブジェクト指向プログラミングにおいて用いられるコーディングであり、
親クラスで定義されたメソッドを子クラスで再度定義することで、メソッドを上書きし機能を変更することです。
@override
スポンサードサーチ
DOM
DOMはDocument Object Model の略で、HTMLやXMLを取り扱うためのJavaScriptなどのプログラミング言語から、オブジェクトを扱うためのAPIを提供しています。
仮想DOM
ウェブ開発においてライブラリやフレームワークで使用されるコンセプトの一つです。
Reactでよく出てきます。
Reactにおける仮想DOMとは、情報を受け取ってもすぐにはブラウザの描画を行わず、まずはプログラムで作成されたバーチャルなDOMを構築することを指します。
よくわからない
もう少し詳しく説明しますね。
一般的なプログラムのDOMについて
ウェブアプリケーションはユーザーインターフェース(UI)を表示するためにHTML要素を生成し、ユーザーの操作に応じてこれらの要素を更新する必要があります。
大規模で複雑なUIを持つアプリケーションでは、UIの変更が頻繁に行われると、DOM操作(要素の追加、削除、変更など)が多くなり、これがパフォーマンスの低下や効率の問題を引き起こすことがあります。
Reactなどで使う仮想DOM
- 仮想DOMは、実際のDOMの抽象的な表現であり、JavaScriptオブジェクトとして存在します。
- アプリケーションの状態が変更されると、仮想DOMは新しいUIの状態を表現する新しい仮想DOMツリーを作成します。
- 次に、前回の仮想DOMツリーと新しい仮想DOMツリーを比較し、変更がある部分を特定します。最終的に、実際のDOM操作は変更が必要な部分のみに適用され、余分な操作を最小限に抑えます。
最近のプログラムはコンポーネントを使ったりして細かくプログラムを分けることで、管理、修正、改修などを行いやすくしています。
スポンサードサーチ
DUMP(ダンプ)
ダンプは、システムやデータベースの現在の状態やコンテンツをバイナリ形式でファイルに保存するプロセスを指します。
システムやデータベースのバックアップを作成するために使用されます。
ダンプファイル
ダンプファイルには、ファイルやディレクトリ、データベースのテーブルやレコードなど、さまざまな情報が含まれることがあります。
リスト
リストアは、バックアップからデータやシステムの以前の状態を復元するプロセスを指します。
ダンプファイルから情報を取り出して元の状態に戻すことです。
リストアすることで、データ損失やシステムの障害からの回復が可能となります。
SPA
SPAとはSingle Page Applicationの略です。
- SPAは「シングルページアプリケーション」の略で、ウェブアプリケーションの一種です。
SPAは、1つのHTMLページを初めに読み込み、その後はJavaScriptを使用してページの内容を動的に変更するアプリケーションです。 - SPAでは、ページ遷移時に新しいHTMLをサーバーから取得せず、代わりにクライアント側でルーティングとコンテンツの更新を行います。
これにより、ユーザーエクスペリエンスが向上し、アプリケーションはより迅速に動作します。 - 代表的なSPAフレームワークとしては、React、Angular、Vue.jsなどがあります。
SPAが使われるフレームワーク
- React: Facebookが開発したReactは、コンポーネントベースのライブラリで、柔軟で高性能なSPAを構築するのに使用されます。
- Angular: Googleが開発したAngularは、完全なフレームワークで、大規模なSPAアプリケーションの開発に適しています。
- Vue.js: Vue.jsは軽量なJavaScriptフレームワークで、初心者から上級者まで幅広い開発者に支持されています。
- TypeScript: TypeScriptはJavaScriptのスーパーセットで、型安全性を提供する拡張言語です。ReactやAngularと組み合わせて使用されることがあります。
SPA開発においては、クライアントサイドのプログラムが重要であり、これらの言語やフレームワークは豊富なコミュニティとサポートを提供しています。
SPAアプリケーションは、クライアント側でページの内容を動的に変更するため、JavaScriptを中心に構築されます。選択肢が多いため、プロジェクトの要求事項、開発者のスキル、および好みに合わせて適切なツールを選択することが重要です。
MPA
MPAとはMulti Page Applicationの略です。
- MPAは「マルチページアプリケーション」の略で、伝統的なウェブアプリケーションの形態を指します。
MPAでは、各異なるページごとに異なるHTMLをサーバーから読み込み、ページ間の遷移が新しいHTTPリクエストを伴います。 - MPAは、クライアント側でのページ遷移がサーバーサイドでのリクエストとレスポンスを通じて行われるため、初期読み込み速度が遅くなり、ユーザーエクスペリエンスが向上しづらいことがあります。
- 一方で、MPAは一般的にSEOには優れており、リンクを共有しやすく、サーバーサイドの処理によりセキュリティの強化が行いやすいという利点があります。
xxx
- Django:DjangoはPythonベースのフルスタックWebアプリケーションフレームワークで、MPAの開発に適しています。
Djangoは強力なデータベース操作、セキュリティ機能、認証、テンプレートエンジンなどを提供します。 - Ruby on Rails:Ruby on RailsはRubyベースのWebアプリケーションフレームワークで、MPAの開発に広く使用されています。
Railsはコードの効率化と簡略化に焦点を当てており、アプリケーションの高速な開発を支援します。 - Express.js:Express.jsはNode.jsのWebアプリケーションフレームワークで、MPAの開発に使用されます。Node.jsの非同期性を活用し、柔軟で高速なバックエンドアプリケーションを構築できます。
- ASP.NET:ASP.NETはMicrosoftによって提供されるフレームワークで、MPAアプリケーションの開発に特に適しています。
ASP.NETはC#を使用し、Windowsプラットフォーム向けのアプリケーションを開発できます。 - Laravel:LaravelはPHPベースのWebアプリケーションフレームワークで、MPA開発に広く使用されています。
Laravelはエレガントでシンプルな構文と多くの機能を提供します。
これらのフレームワークは、MPAのバックエンド開発に使用され、データベースの操作、セキュリティ、ルーティング、認証などの機能を提供します。
フロントエンドの開発には、JavaScriptやHTML/CSSを組み合わせた方法を選択することが一般的です。選択肢はプロジェクトの要件と開発者の好みに依存します。
SSG
SSGとはStatic Site Generationの略です。
- SSGは、スタティック サイト ジェネレーションの略で、ウェブサイトを事前に生成されたスタティックなHTMLファイルとして提供する方法を指します。
- SSGでは、ウェブページのコンテンツは事前に生成され、クライアントへの配信時にデータベースやサーバーの負荷を軽減することができます。
- SSGは、高速な読み込み速度とセキュリティを提供し、コンテンツのキャッシュが容易で、CDN (コンテンツデリバリーネットワーク) との統合が容易です。
SSR
SSPとはServer Side Renderingの略です。
- SSRは、サーバーサイド レンダリングの略で、サーバーでウェブページのコンテンツを生成し、クライアントにレンダリングされたHTMLを提供する方法を指します。
- サーバーサイド レンダリングでは、初めにクライアントのリクエストに対してHTMLを生成し、その後にJavaScriptをロードしてクライアント側の動的な操作を可能にすることができます。
- SSRは、SEO (検索エンジン最適化) の向上や初期読み込みパフォーマンスの最適化に役立ちますが、サーバーの負荷が高く、開発にも多くのリソースを必要とすることがあります。
Terraform:テラフォーム
Terraformは、インフラストラクチャ(インフラ構成)をコードとして管理するためのオープンソースツールです。
- インフラのプロビジョニング: クラウドリソース(例: AWS, Azure, GCP)のサーバー、ネットワーク、ストレージなどをコードで定義してデプロイできます。
- 状態管理: Terraformはインフラの状態を追跡するための「ステートファイル」を使用します。これにより、インフラが現在どうなっているかを把握できます。
- プロバイダー対応: AWS、Azure、GCPだけでなく、GitHubやKubernetes、オンプレミス環境のリソースも管理可能。
- コードで管理可能: HCL(HashiCorp Configuration Language)というシンプルな構文を使用してインフラを記述。
Kubernetes(K8s):クバネティス(ケイエイツ)
Kubernetesは、コンテナ化されたアプリケーションを管理・デプロイ・スケーリングするためのオープンソースプラットフォームです。