Blog

ライブラリ/SPAについての研修

  • 教育

ライブラリ/SPAについての研修

少し慣れてはきましたが、まだ緊張が取れない私。
早く打ち解けられるように頑張っていきつつ、勉強もしつつといった日々を過ごしていました。

さて、今回も入社してからの研修の内容をまとめてみました。
こうやってまとめていると、自問自答することになって理解が深まりますね!

ライブラリ

POINT

ある機能を持った汎用性の高いプログラムを他のプログラムから利用できるようにしたプログラムの集合のこと。

ライブラリを使うのと、使わないのでは雲泥の差があります。
じゃんじゃん使っていくことになるでしょう!

では実際使うとなるとどうなるのでしょうか?

ライブラリAを使いたいとなれば、それに伴いライブラリBとライブラリCが必要になります。
さらに、ライブラリBはライブラリD(v1.1)とライブラリEが必要で・・・

library_how_to_01.png

というように、際限なくライブラリが紐づいてきたり、バージョンに指定があったり、ああああああ!!!!!

手動ですべてを管理することは不可能に近い。

パッケージ管理システム

OSというひとつの環境で、各種のソフトウェアの導入と削除、
そしてソフトウェア同士やライブラリとの依存関係を管理するシステム。
管理を自動化し、一括インストールして運用を行うことができる。

これは非常に便利ですね!
これを使えば、無限とも思えるライブラリ地獄から抜け出せます!

このシステム自体は、言語によって異なります。
代表的なものは以下の表の通りです。

言語 システム名
PHP composer
Python pip
java gradle
Node.js npm、yarn

Node.jsの管理システムとして、npmはセット でインストールが行われる。
しかし、特に指定がないのであれば、yarnを使用する方が パフォーマンスが高い ことが多い。

POINT

管理が自動化されるし、ライブラリ地獄から抜け出すためにも使わない手はないね!

でも、自動で管理してくれるとはいえ、何も言わないと思った通りにはならないよね?

自分の思い通りに動作するように、やっぱり設定することで指定しないといけないね。

package.json

一括でインストールしたいパッケージ一覧を設定する。
おおまかなバージョンの指定などは、このファイルで行う。

yarn.lock

一括でインストールが行われた後、
どこからどのバージョンをインストールしてきたかを記載されている。

node_modules

インストールしてきたパッケージがあくまで 仮置場として 格納されているディレクトリ。
膨大なデータであり、Gitの監視下から外すのが定石である。
※その代わりに、yarn.lockを監視することで、把握することができる。

.gitignore

ここに指定することで、指定にパターンマッチングするものをGitの監視下から外すことができる。

.(ドット)で始まるファイルは基本的に 何かの設定ファイル であることが多く、隠しファイルとなっている。

Gitの監視下に置かないディレクトリの例

  • node_modules
  • .DS_Store(Mac)
  • .env(環境設定ファイル) 主に、認証情報などのユーザ情報から、環境による設定など

SPA(Single Page Application)

通常であれば、リクエストの度にすべてのHTMLをレスポンスし、ページ遷移が発生する。
この場合、一部を変化させたいだけであれば、非常に無駄が多くなる

この無駄を減らし、ページ遷移を行わずに変更箇所だけに変化を起こして表示するのが、
SPAであり、最近の主流になってきている。

POINT

無駄を減らすために、変更箇所だけ変更するってすごく人間らしい。
私もSPAで作成できるようになりたいな!

API(Application Programming Interface)

ソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様のこと。

POINT

SPAは、基本APIを利用して作成する。

う~ん、むずかしい!
まだまだ覚えることが多くて意味を1つずつ拾っていくのがやっとですね。

これでも盛りだくさんですが、実はまだ続くんです!
頭の中に用語がぐるぐるしながら、次回で続きの内容をまとめようと思います。

でも、着実に知識が増えてきて成長している実感があります。
どんどん吸収して、少しでも早く戦力になれるようになれたらと思っています。

最後まで読んでいただき、ありがとうございました。

MeisterGuild(マイスター・ギルド)広報

最先端技術のMEISTERを目指し、お互い切磋琢磨するGUILD、になりたい株式会社マイスター・ギルドです。Webシステム/サービス開発、スマホアプリ開発、AR/VR/MR開発など、さまざまな情報を発信します。

Related Entry