章8 データとの取り組み
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
データは貴重なものであり、システムそのものよりも長く存続する。
ティム・バーナーズ=リー(コンピュータ科学者)
ソフトウェアエンジニアとしてのキャリアをスタートさせる際、プログラミング言語やフレームワーク、ツールの学習に没頭しがちだ。しかし現実には、キャリアの大半を様々な形態のデータと向き合うことに費やすことになる。データはあらゆる業務の基盤であり、アプリケーションはデータを中心にモデルされる。データを収集し、保存し、変換し、最終的にはユーザにとって意味のある形で変換して返す最善の方法を模索するのだ。
データと聞くと、まずデータベースに保存するデータを思い浮かべるかもしれない。しかしデータの本質はそれだけではない。様々なデータ型の理解、適切なストレージ解決策の選択、効率的なデータモデルの設計、クエリの最適化、データ整合性の確保、時間の経過に伴うデータ進化の管理など、はるかに多岐にわたる。これらのスキルは、基本的なコーディング能力と同様に、開発者としての成功に不可欠だ。
データをうまく扱う方法を学ぶのは難しい場合がある。開発環境で機能したものが本番環境では失敗するケースも珍しくない。顧客データベースの遅延、複雑な移行作業、非効率なクエリなどがその例だ。こうした実世界的な課題はソフトウェア開発では一般的であり、事前に備えておくことが重要である。
本章では、データを効果的に扱うための基礎を築き、データに精通した開発者になるための指針を示す。様々なデータタイプの識別、適切なツールの選択、効率的なストレージ解決策の検討、クエリの最適化、スムーズな移行の管理を学ぶ。データベース管理やデータエンジニアリングの深部に踏み込むことはないが、アプリケーション内のデータについて情報に基づいた判断を下し、多くの開発者を悩ませる一般的な落とし穴を回避するために、あらゆる開発者が必要とする必須スキルを習得できる。
データ型と形式の理解
ソフトウェアを構築する際、データ処理・トランスフォーマー・提示を行うシステムを作成することが多い。小規模アプリケーションであれエンタープライズアプリケーションであれ、プロジェクトの成功はデータと、その構造化・検証・プロセス方法に左右される。
データ型と形式を扱う際には、以下の要素を考慮する必要がある:
- 対象読者
- このデータの読み取りやプロセスは誰が行うのか?人間か、マシンか?
- 性能要件
- サイズやプロセススピードは重要か?
- 互換性
- どのシステムがこのデータを利用するコンシューマ?
- 複雑さ
- データ構造はどの程度ネストされているか、あるいは変数があるか?
- 検証の必要性
- スキーマ検証が必要か?
このセクションでは、アプリケーション内で様々なデータタイプを効果的に扱うための概念を学ぶ。構造化データと非構造化データの基本的な違いを探り、それぞれの特性、利点、限界を理解する。
構造化データと非構造化データ
データには主に二つの種類がある:構造化データと非構造化データだ。構造化データはスプレッドシートのように整理されており、明確なカテゴリと関連性があるため、データベースへの保存や検索が容易だ。非構造化データには通常のテキスト、画像、文書などが含まれ、これらを扱うには特別なツールが必要となる。構造化データと非構造化データの区別を理解することは、アプリケーションの設計において効果的な判断を下す上で重要だ。これらの基本概念を探ってみよう。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access