Skip to Content
アイソモーフィックJavaScript
book

アイソモーフィックJavaScript

by Jason Strimpel, Maxime Najim, 牧野 聡
July 2017
Beginner to intermediate
256 pages
2h 50m
Japanese
O'Reilly Japan, Inc.
Content preview from アイソモーフィックJavaScript

9章よく使われる抽象化

Jason Strimpel

 

この章では、アイソモーフィックJavaScriptのアプリケーションで頻繁に使われる2つの機能を抽象化します。

  • cookieの読み書き
  • リクエストのリダイレクト

抽象化によって環境に固有の実装がカプセル化され、クライアントとサーバーのどちらでも利用可能な一貫したAPIが提供されます。本書の第II部全体を通じて、抽象化の危険性を繰り返し述べてきました。抽象化は悪だというCoplienの発言も紹介しました。この章のすべてが抽象化に費やされることを踏まえて、まずは抽象化を行うべき根拠やそのタイミングについて考えたいと思います。

9.1 抽象化する理由とタイミング

実際には、抽象化は悪ではありません。問題なのは、抽象化が誤って使われることが多いという点です。コードに意味を与えてくれる重要な事柄が、不必要に隠されてしまうことがよくあります。しかも、間違った抽象化の主な原因は世界をよりよくしようという善意の努力です。例えば、プロジェクトのScaffold(ひな型)を作ってくれるモジュールは便利です。しかし、詳細が内部のモジュールに隠され、中身を調べたり拡張や設定あるいは修正したりといったことが容易にはできなくなってしまったとしたら、それは望ましいことではありません。このような誤った抽象化こそが悪なのであり、そこからすべての抽象化が悪だというイメージが広がっています。正しく適用するなら、直感的なインタフェースを作成するための不可欠なツールとして抽象化は役立つでしょう。

筆者はこれまで、実装の詳細がユーザーに不必要な重荷を与えてしまうという場合にだけ抽象化を行ってAPIを共通化し、環境の違いを吸収するようにしてきました。『スタートレック』でのセリフを借りるなら、「多数にとっての利益が、少数あるいは1人にとっての利益を上回る」場合に抽象化を行っています。この原則は宇宙船の運営には役立つかもしれませんが、これだけでは抽象化するべきかどうかの判断を誤ることもあります。どの時点で抽象化するべきかを適切に判断するのは、とても難しいことです。筆者は次のように自問することにしています。 ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ

並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ

高野 祐輝
SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, Sky株式会社 玉川 竜司

Publisher Resources

ISBN: 9784873118079Other