プリンキピア

第11章Webアプリケーション開発

Chapter Review章の復習

Key Terms重要用語

Android Studio
Android Studio
official IDE for Android development
Android開発用の公式IDE。
Asynchronous JavaScript and XML (AJAX)
Asynchronous JavaScript and XML(AJAX)
exchanges small amounts of data between a client and server
クライアントとサーバーの間で、少量のデータをやり取りする技術。
cascading style sheets (CSS)
カスケーディングスタイルシート(CSS)
standard style sheet language used to alter the presentation style of the web data content found in HTML
HTMLに含まれるWebデータの内容の表示形式を変えるために使う、標準的なスタイルシート言語。
decentralized Apps (DApps)
分散型アプリ(DApp)
applications that execute smart contracts and run over distributed ledger technology
スマートコントラクトを実行し、分散台帳技術上で動作するアプリケーション。
Django project
Djangoプロジェクト
high-level directory used to contain the directories and files necessary to run a Django web application
Django Webアプリケーションの実行に必要なディレクトリやファイルを収める、上位のディレクトリ。
Ethereum blockchain
Ethereumブロックチェーン
creates a secure peer-to-peer network through the use of smart contracts
スマートコントラクトを使って、安全なピアツーピアネットワークを作るもの。
Firebase
Firebase
app development platform and a collection of services for authenticating users, integrating ads, running A/B tests, and more
アプリ開発のプラットフォームと、利用者認証、広告の組み込み、A/Bテストの実行などを行うサービス群。
full node
フルノード
computer that maintains a copy of the blockchain and runs blockchain software
ブロックチェーンの複製を保持し、ブロックチェーンのソフトウェアを動かすコンピューター。
gas price
ガス価格
cost of validating transactions and updating ledgers
取引を検証し、台帳を更新するための費用。
GraphQL
GraphQL
open-source query and manipulation language
オープンソースのクエリおよび操作言語。
hypertext markup language (HTML)
ハイパーテキストマークアップ言語(HTML)
standard markup language used to describe the structure and content of web data
Webデータの構造と内容を記述するために使う、標準的なマークアップ言語。
JavaScript (JS)
JavaScript(JS)
scripting language that adds interactivity to web content and server-side functionality
Webコンテンツへ対話性を加え、サーバー側の機能も提供するスクリプト言語。
JavaScript Object Notation (JSON)
JavaScript Object Notation(JSON)
file format that represents data as text-based attribute-value information
データを、テキストによる属性と値の情報として表すファイル形式。
Jetpack Compose
Jetpack Compose
toolkit for building native user interfaces
ネイティブの利用者インターフェースを構築するためのツールキット。
loose coupling
疎結合
component in a software system that has a weak association with the other components
ソフトウェアシステム内のコンポーネントが、ほかのコンポーネントと弱い結び付きを持つこと。
Metro bundler
Metroバンドラー
bundles the JavaScript code that is deployed on the mobile device or emulator when the React Native front-end application is successfully created
React Nativeのフロントエンドアプリケーションが正常に作成されたときに、モバイル端末やエミュレーターへ配置するJavaScriptコードをまとめるもの。
Moore’s law
ムーアの法則
states that the number of transistors on an integrated circuit doubles roughly every two years
集積回路上のトランジスターの数は、およそ2年ごとに倍になるという法則。
Node
Node
JavaScript runtime environment that provides users with the tools to develop web applications, as well as servers, scripts, and command-line tools
Webアプリケーション、サーバー、スクリプト、コマンドラインツールを開発するための道具を提供する、JavaScriptのランタイム環境。
non-fungible token (NFT)
非代替性トークン(NFT)
unique digital identifier on a blockchain
ブロックチェーン上の一意なデジタル識別子。
optimistic rollup
オプティミスティック・ロールアップ
protocol that increases transaction output by bundling multiple transactions into batches, which are processed off-chain
複数の取引をバッチにまとめ、オフチェーンで処理することで、取引の処理量を増やすプロトコル。
peer-to-peer (P2P) network
ピアツーピア(P2P)ネットワーク
one in which devices connect and can share data and processing without needing a centralized server
中央サーバーを必要とせず、端末同士が接続してデータや処理を共有できるネットワーク。
Postman
Postman
API platform testing tool that can be used as a client
クライアントとして使える、APIプラットフォームのテストツール。
React
React
JavaScript library popular to build user interfaces
利用者インターフェースの構築によく使われるJavaScriptライブラリ。
React Native
React Native
open-source JavaScript framework used to build native applications for mobile devices
モバイル端末用のネイティブアプリケーションの構築に使う、オープンソースのJavaScriptフレームワーク。
Semantic Web
セマンティックWeb
system of autonomous agents, which are software programs that respond to events
出来事に応答するソフトウェアプログラムである、自律的なエージェントのシステム。
serializer
シリアライザー
tool to control response outputs and convert complex data into content, such as JSON
応答の出力を制御し、複雑なデータをJSONなどの内容へ変換するツール。
sidechain
サイドチェーン
secondary blockchain that aggregates blocks back to the main blockchain
ブロックをまとめて、主なブロックチェーンへ戻す、副次的なブロックチェーン。
Solidity
Solidity
high-level, object-oriented language focused on the implementation of smart contracts
スマートコントラクトの実装を中心とする、高水準のオブジェクト指向言語。
stateful application
ステートフルなアプリケーション
software and system that maintains the state of an application over time
時間がたっても、アプリケーションの状態を維持するソフトウェアとシステム。
stateless application
ステートレスなアプリケーション
state is not maintained by the system and previous actions do not impact future ones
システムが状態を維持せず、以前の操作が以後の操作に影響しないもの。
Truffle Framework
Truffle Framework
popular suite of tools used to develop smart contracts
スマートコントラクトの開発によく使われるツール一式。
View
View
presentation layer that handles the user interface
利用者インターフェースを扱う表示の層。
Web 1.0
Web 1.0
phase of the Web where the user’s interaction was limited primarily to reading and selecting web pages
利用者の操作が、主にWebページの閲覧と選択に限られていた、Webの段階。
web page
Webページ
document commonly written in HTML and viewed in a browser
通常HTMLで書かれ、ブラウザーで閲覧する文書。
web publishing
Web出版
also called online publishing; is for publishing content on the Web
オンライン出版とも呼ばれ、Web上でコンテンツを公開すること。
web server
Webサーバー
software application that runs at a known URL and responds to HTTP requests
既知のURLで動作し、HTTPリクエストに応答するソフトウェアアプリケーション。
World Wide Web (the Web)
World Wide Web(Web)
started as a way to link content (primarily text and images) stored on different servers or machines
異なるサーバーや機械に保存されたコンテンツ、主に文章と画像を結び付ける方法として始まったもの。
Xcode
Xcode
Apple’s IDE that enables application development for Apple’s platforms
Appleのプラットフォーム向けのアプリケーション開発を可能にする、AppleのIDE。
zero-knowledge rollup (zk-rollup)
ゼロ知識ロールアップ(zk-rollup)
protocol that bundles transactions into batches that are executed off the mainnet
メインネットの外で実行するバッチへ、取引をまとめるプロトコル。

Summaryまとめ

11.1 Modern Web Applications Architectures11.1 現代のWebアプリケーションのアーキテクチャ

• The Web is defined by phases, each denoted by its principal usage—Web 1.0 for reading content, Web 2.0 regarding social interaction, and Web 3.0 as an open, decentralized, and trusted web.
英語のヒント
• Webは、その主要な用途によって示される段階に分けられる。Web 1.0は内容を読むこと、Web 2.0は社会的な交流、Web 3.0は開かれた、分散した、信頼できるWebを特徴とする。
• Traditional web architectures rendered web pages on the server, with each client request resulting in a new HTML page being sent from the server to the browser. The Model-View-Controller (MVC) pattern was often used for server-side development.
• 従来のWebアーキテクチャでは、サーバーでWebページを描画し、クライアントから要求が来るたびに、新しいHTMLページをサーバーからブラウザーへ送っていた。サーバー側の開発には、Model-View-Controller(MVC)パターンがよく使われた。
• Responsive web applications render effectively in a browser regardless of the user’s device screen or orientation.
英語のヒント
• レスポンシブWebアプリケーションは、利用者の端末の画面や向きにかかわらず、ブラウザー内で適切に表示される。
• Single-page applications (SPAs) load one web page in the browser, manipulating the UI and fetching data through APIs. This is often done with JavaScript making AJAX calls to REST APIs.
• シングルページアプリケーション(SPA)は、1枚のWebページをブラウザーに読み込み、APIを通じてUIの操作とデータの取得を行う。多くの場合、JavaScriptからREST APIへのAJAX呼び出しによって実現する。
• Native mobile applications are designed to run on a specific device. They have the advantage of performance and access to data and functionality on the device but suffer from a lack of cross-platform support.
英語のヒント
• ネイティブモバイルアプリケーションは、特定の端末上で動作するよう設計される。性能と、端末上のデータや機能へのアクセスという利点があるが、複数のプラットフォームへの対応が不足するという問題を抱える。
• Web 3.0 is the next phase of the Web. Technologies that will be needed to support it will likely include distributed ledger technologies and AI.
• Web 3.0は、Webの次の段階である。それを支えるために必要な技術には、分散台帳技術とAIが含まれる可能性が高い。
• Future web architectures will likely see a combination of Web 2.0 and 3.0 architectural models to support decentralization, openness, trust, cost, and performance effectively. This hybrid approach solves some problems while not fully addressing the goals of Web 3.0.
• 将来のWebアーキテクチャでは、分散性、開放性、信頼性、費用、性能に効果的に対応するため、Web 2.0と3.0のアーキテクチャモデルを組み合わせることになる可能性が高い。このハイブリッドな手法は、いくつかの問題を解決するが、Web 3.0の目標を完全に満たすわけではない。