シリアライズ

python  programing 

シリアライズ seralize (しりあらいず)

「シリアライズ」とは、「シリアルにする」ということ。
「シリアルである」とは、字義的には、「一本の直線的な状態である」ということ。

つまり、もともとは「一本の直線」とは言えなかったような複雑な構造物を、「一本の直線」として表現すること。

...と書くだけだと、抽象的すぎて分かりにくいが、「シリアライズ」はそもそも何のためにするのかという話をすれば、もう少し話が見えやすくなるかもしれない。

「別の機器やシステムに、手元のオブジェクトについての情報を送信したい」というニーズがしばしば発生する。
そのときに、オブジェクトそのものを送信するのではなく、オブジェクトについての情報の一部のみを、文字情報に変換し、それを転送する。
「シリアライズ」とは、この「文字情報に変換する」のような、「一本の直線」にする作業のことである。

たとえば、この用語集内の「イテレート」という言葉についての解説の情報は、サーバ内のデータベースに格納されている。
それを、Pythonが取り出してクラスのインスタンスとして利用している。

このウェブページでは、「イテレート」という言葉についてデータベースに格納されている一連の情報を表示したい。
ただし、たとえばPythonクラスのインスタンスの情報をそのまま送信したとしても、ウェブページへのデータ送信量が必要以上に多くなる。
また、それでは受け手側がPythonクラスのインスタンスの情報を受け取って解釈する仕組みがなければならず、受け手側に必要な用件が重たくなる。

このような問題を解決すべく、Python側で、以下のようなJSON形式のデータに「シリアライズ」してからウェブページに送信する。

{
     'id': 9,
     'slug': 'iterate',
     'term': 'イテレート iterate',
     'kana': 'いたれーと',
     'text': '要素を順番に処理していく反復作業のこと。関連の言葉として、「イテラブル(iterable)」→「反復可能」などがある。',
     'refer_to': None,
     'created': '2022-02-10T10:11:12+09:00'
}

これにより、ウェブページは、必要な情報だけが含まれた単純な形式のデータを受け取ることができる。
そして、ウェブページは、この情報を元に、このページに表示するコンテンツを生成する。

「シリアライズ」は、オブジェクトに関する情報を別の機器に情報を伝達するニーズがあるこのような状況でされることが多い。

掲載用語一覧:

TOPへ(新着順に表示できます)

i18n 
アセンブリ言語  (assembly language)
アンスコ 
イテラブル  (iterable)
イテレート  (iterate)
イミュータブル  (immutable)
インスタンス  (instance)
WSGI 
ウェルノウンポート  (well known port)
API 
SQL 
m17n 
MTVフレームワーク  (mtv framework)
MVCフレームワーク  (mvc framework)
l10n 
LTS 
演算子  (operator)
オブジェクト指向プログラミング  (object oriented programming)
仮想環境  (virtual environment)
関心の分離  (separation of concerns)
git 
github 
キャメルケース  (Camel Case)
クッキー  (Cookie)
クライアント  (client)
クラス  (class)
クラスの継承  (class inheritance)
CRUD 
ケバブケース  (kebab case)
高階関数  (high order function)
コンパイラ  (compiler)
サーバ  (server)
CMS 
JSON 
識別子  (identifier)
辞書  (dictionary)
車輪の再発明  (reinventing the wheel)
シリアライズ  (seralize)
スネークケース  (snake case)
セッション  (Session)
多重継承  (multiple inheritance)
dunder 
ディストリビューション  (distribution)
デシリアライズ  (deserialize)
DRY 
認可  (authorization)
認証  (certification)
パスカルケース  (Pascal Case)
ハッシュ  (hash)
バッテリーインクル-デッド  (battery included)
バリデーション  (validation)
引数  (argument)
ビルトイン  (built in)
フレームワーク  (framework)
プロトコル  (protocol)
ポート番号  (port number)
メソッド  (method)
メンバー  (member)
UUID 
ライブラリ  (library)
LAMP 
リクエストメソッド  (request method)
RESTful 
レンダリング  (rendering)

この用語集はこんな人が書いています