40 php laravel interview questions
このチュートリアルを読んで、今後の面接の準備をし、よくあるLaravel面接の質問への回答を学びます。
の中に LaravelコレクションとLaravelForge のチュートリアル Laravelチュートリアルシリーズ 、Laravelコレクションとその方法について例を挙げて学び、LaravelForgeについて利点と価格について学びました。
これはLaravelシリーズの最後のチュートリアルであり、Laravelのインタビューで尋ねられた重要な質問への回答を提供しました。
このチュートリアルが、より自信を持って面接に向き合うのに役立つことを願っています。私たちは両方に焦点を当ててきました Laravel 7 そして Laravel 8 このチュートリアルのバージョン。
さぁ、始めよう!
よくあるLaravelインタビューの質問
Q#1)Laravelとは何ですか?
cssセレクターによるセレン検索要素
回答 :Laravelは 無料のオープンソースPHPフレームワーク あれは 複雑なWebアプリケーションの開発に使用 。それはサポートします Model-View-Controller(MVC) デザインパターン。
Laravelフレームワークは 最も人気のあるPHPフレームワーク 2020年のWeb開発者の間で。
Q#2)Laravelの最新バージョンは何ですか?
回答 : Laravel 8 最新バージョンです。
Q#3)Laravel 7および8用のPHPの最小互換バージョンは何ですか?
回答 :互換性のある最小のPHPバージョン Laravel 7 です PHP 7.2.5 とのために Laravel 8 です PHP 7.3.0
Q#4)Laravelの人気のある機能は何ですか?
回答 :Laravelにはいくつかの人気のある機能があります。これらは以下に参加しています。
- 雄弁なORM
- クエリビルダー
- リバースルーティング
- クラスの自動読み込み
- Restfulコントローラー
- ブレードテンプレートエンジン
- 怠惰なコレクション
- ユニットテスト
- データベースシード
- 移行
Q#5)Laravel 8の新機能は何ですか?
回答 :Laravel 8は2020年9月8日にリリースされ、新しい追加機能と既存の機能へのいくつかの変更が加えられています。
次のリストは、Laravel8の新機能を示しています。
- Laravel Jetstream
- モデルディレクトリ
- モデルファクトリクラス
- 移行の押しつぶし
- タイムテストヘルパー
- ダイナミックブレードコンポーネント
- レート制限の改善
Q#6)LaravelはBootstrapをサポートしていますか?
回答 : はい 、LaravelはBootstrapCSSフレームワークをサポートしています。
Q#7)Laravelフレームワークを使用して複雑なWebアプリケーションを構築する利点は何ですか?
回答 :Laravelフレームワークを使用することには多くの利点があり、それらのいくつかを以下に示します。
- Laravelは無料で使用できます。
- アプリケーションの構成はシンプルで簡単です。
- フレームワークは、Model-View-Controller(MVC)アーキテクチャーをサポートします。
- Laravelの組み込みモジュールとライブラリは、開発プロセスのスピードアップに役立ちます。
- Laravelアプリケーションのパフォーマンスは高いです。
- ルーティングは簡単です。
- これには、データベース操作を処理するために使用されるEloquentORMと呼ばれる機能があります。
- Bladeと呼ばれるテンプレートエンジンがあります。
- Laravelには、ユニットテストをサポートするための機能が組み込まれています。
- コミュニティのサポートは高いです。
Q#8)Laravelの競合他社をいくつか挙げてください。
回答 :次のリストは、上位の競合他社を示しています。これらはすべて、2020年のPHPフレームワークのトップ10に入っています。
- Codeigniter
- symfony
- この
- CakePHP
- Zend Framework
- ファルコン
- FuelPHP
Q#9)LaravelフレームワークとCodeIgniterフレームワークの違いは何ですか?
回答 :LaravelフレームワークとCodeIgniterフレームワークにはいくつかの違いがあり、いくつかの主な違いを以下の表に示します。
Laravelフレームワーク | CodeIgniterフレームワーク |
---|---|
RESTAPIの開発が簡単 | RESTAPIの開発は簡単ではありません |
リレーショナルオブジェクト指向 | オブジェクト指向 |
カスタムHTTPSルートをサポート | HTTPSルートを完全にはサポートしていません |
認証クラス機能を備えています | 組み込みの認証機能はありません |
ユニットテスト機能が組み込まれています | 組み込みのユニットテスト機能はありません |
ブレードテンプレートを使用する | ブレードテンプレートを使用しません |
初心者にとって学ぶのは簡単ではありません | 初心者のために学びやすい |
ORMをサポート | ORMをサポートしていません |
Q#10)MVCアーキテクチャとは何ですか?
回答 :MVCアーキテクチャは デザインパターン これは、Webアプリケーションの開発に使用されます。それはで構成されています 3つのコンポーネント 名前付き モデル 、 見る そして コントローラ 。 MVCデザインパターンも 開発をスピードアップ Webアプリケーションの。
- モデル: MVCアーキテクチャでは、文字 M を意味する モデル 。モデルは、MVCデザインパターンの中心的なコンポーネントです。それ データを管理します アプリケーションで。
- 見る: MVCアーキテクチャでは、文字 V を意味する ビュー 。ビュー ユーザーにデータを表示します 。
- コントローラ: MVCアーキテクチャでは、文字 C を意味する コントローラー 。コントローラーは ユーザーリクエストを処理する 。
次の図は、MVCデザインパターン内の相互作用を示しています。
Q#11)コンピューターにコンポーザーがインストールされているかどうかを確認するために使用できるコマンドは何ですか?
回答 :コマンドプロンプトで次のコマンドを実行して、コンピューターにコンポーザーが正常にインストールされているかどうかを確認できます。
composer
Q#12)Laravelバージョン8をインストールするためのサーバー要件は何ですか?
回答 :インストール Laravel Homestead Laravel8をインストールするためのサーバー要件を完全に満たします。
Laravel Homesteadを使用していない場合、サーバーは次の要件を満たしている必要があります。
- PHPバージョン 7.3 以上のバージョン
- PHP拡張機能
- BCMathPHP拡張機能
- CtypePHP拡張機能
- FileinfoPHP拡張
- JSONPHP拡張機能
- MbstringPHP拡張機能
- OpenSSLPHP拡張機能
- PDOPHP拡張機能
- TokenizerPHP拡張機能
- XMLPHP拡張機能
Q#13)マシンにLaravel 8をすでにインストールしていて、マシンからLaravel8をアンインストールせずにLaravel7プロジェクトをインストールしたい場合を考えてみてください。では、Laravel 7プロジェクトをどのようにインストールしますか?
回答 : それは単純だ。コマンドプロンプトで次のコマンドを実行して、Laravel7プロジェクトをインストールできます。
composer create-project --prefer-dist laravel/laravel name_of_the_project '7.*'
注意 :上記のように、インストールする必要のあるLaravelのバージョンを指定する必要があります。
Q#14)インストールされているLaravelバージョンのプロジェクトをどのように確認できますか?
回答 :コマンドプロンプトでプロジェクトディレクトリに移動し、次のコマンドを実行します。
php artisan --version
または、次のコマンドを実行することもできます。
php artisan -v
Q#15)使用可能なコマンドのリストを取得するために使用される職人コマンドは何ですか?
回答 :コマンドプロンプトで次のコマンドを実行して、使用可能なコマンドのリストを取得します。
php artisan list
Q#16)典型的なLaravelプロジェクトのプロジェクト構造を簡単に説明してください。
回答 :次のリストは、典型的なLaravelプロジェクトのプロジェクト構造を示しています。
- アプリフォルダー: アプリフォルダは、 アプリケーションのソースコードが存在します 。名前の付いた5つのサブフォルダが含まれています コンソール フォルダ、 例外 フォルダ、 Http フォルダ、 モデル フォルダと プロバイダー フォルダ。これらのサブフォルダには次のものが含まれます 例外ハンドラ 、 コントローラ、ミドルウェア、サービスプロバイダー そして モデル。
注意 :Laravel 7には、Modelsという特定のフォルダーはなく、すべてのモデルファイルは アプリ app / Modelsフォルダーの代わりにフォルダー。
- ブートストラップフォルダー: ブートストラップフォルダには ブートストラップファイル 。
- 構成フォルダー: 設定フォルダには 構成ファイル 。
- データベース フォルダ: データベースフォルダには データベースファイル 。名前の付いた3つのサブフォルダが含まれています 工場 フォルダ、 移行 フォルダと シーダー フォルダー、および .gitignore ファイル。これらのサブフォルダには、 大量のデータ、データベースの移行、シード 。
- 公衆 フォルダ: パブリックフォルダには、 アプリケーションを初期化する 。
- リソースフォルダ: リソースフォルダには HTML、CSS そして JavaScriptファイル 。名前の付いた4つのサブフォルダーが含まれています css フォルダ、 js フォルダ、 lang フォルダと ビュー フォルダ。
- ルートフォルダ: ルートフォルダには ルート定義 。
- ストレージフォルダ: ストレージフォルダには キャッシュファイル、セッションファイルなど 。
- テスト フォルダ: テストフォルダには テストファイル ユニットテストファイルのように。
- ベンダー フォルダ: ベンダーフォルダには、 Composer依存関係パッケージ 。
- .env ファイル: .envファイルには 環境変数 。
- composer.jsonファイル: composer.jsonファイルには 依存関係 。
- package.json ファイル: package.jsonファイルは フロントエンド 、そしてそれは composer.jsonファイルに似ています 。
- そしてさらにいくつかのファイル
Q#17)Laravelのバンドルとは何ですか?
回答 :バンドルは Laravelの機能を向上させる 。 Laravelでは、バンドルは一般的に次のように知られています パッケージ 。を含む 構成、ルート、移行、ビューなど 。
Q#18)ルーティングとは何ですか?
回答 :ルーティングは、要求を受け入れて、コントローラーの関連する機能に送信するプロセスです。
Q#19)Laravelにある2つの主要なルーティングファイルは何ですか?
回答 :2つの主要なルーティングファイルは、
- web.php ルートフォルダ内のファイル。
- api.php ルートフォルダ内のファイル。
Q#20)Laravelで利用可能なルーターメソッドは何ですか?
回答 : 次のリストは、Laravelで利用可能なルーターメソッドを示しています。
- Route :: get($ uri、$ callback);
- Route :: post($ uri、$ callback);
- Route :: put($ uri、$ callback);
- Route :: patch($ uri、$ callback);
- ルート::削除($ uri、$コールバック);
- Route :: options($ uri、$ callback);
Q#21)ルートの作成方法は?例を挙げて簡単に説明します。
回答 :ルートは次の方法で作成できます コントローラの使用 またはによって ルートに直接コードを追加する 。
次の例は、コードをルートに直接追加してルートを作成する方法を示しています。
例: のコードを置き換えます ルート/web.php 次のコードセグメントを追加してファイルを作成します。
次に、ブラウザでプロジェクトを実行します。あなたが見るでしょう ようこそ! 出力として。
Q#22)LaravelにはRESTfulリソースコントローラーがいくつありますか?また、RESTfulリソースコントローラーによって処理されるアクションは何ですか?
回答 : がある セブン LaravelのRESTfulリソースコントローラー。
次の表は、LaravelアプリケーションでRESTfulリソースコントローラーによって処理されるアクションを示しています。
動詞 道 アクション ルート名 使用する 削除 / users / {user} 破壊 users.destroy ユーザーを削除する 取得する / users インデックス users.index すべてのユーザーを取得 取得する / users / create 作成する users.create 新しいユーザーを作成する 役職 / users お店 users.store ユーザーの詳細を保存する 取得する / users / {user} 公演 users.show ユーザーの詳細を取得する 取得する / users / {user} / edit 編集 users.edit ユーザーの編集 PUT / PATCH / users / {user} 更新 users.update ユーザーの更新
Q#23)ミドルウェアとは何ですか?
回答 :ミドルウェア 要求と応答の間のブリッジおよびフィルタリングメカニズムのように動作します 。
Q#24)ブレードテンプレートファイルを識別する方法は?
トレントファイルウィンドウを開く方法
回答 :通常、すべてのブレードテンプレートファイルは リソース/ビュー フォルダ。ブレードファイルには .blade.php 拡張。
Q#25)典型的なLaravelアプリケーションでモデルファイルが存在する場所を教えてください。
回答 :Laravel7アプリケーションとLaravel8アプリケーションでモデルファイルが保存される場所に違いがあります。
Laravel 7アプリケーションでは、通常、すべてのモデルファイルは アプリ フォルダ。
Laravel 8アプリケーションでは通常、すべてのモデルファイルは アプリ/モデル フォルダ。
Q#26)シーディングとは何ですか?
回答 :開発者は、アプリケーションを開発するときにテストデータが必要です。シードとは、テスト目的でデータベースにデータを挿入することです。
Q#27)Laravelフレームワークでサポートされているデータベースは何ですか?
回答 :以下のリストは、サポートされているデータベースを示しています。
- MySQL 5.6+
- PostgreSQL(Postgres)9.4+
- SQLite 3.8.8+
- SQL Server 2017+
Q#28)Laravelのクエリビルダーによって提供される集計メソッドは何ですか?
回答 :次のリストは、クエリビルダーによって提供される集計メソッドを示しています。
- カウント()
- max()
- 分()
- avg()
- 和()
Q#29)Laravelで使用される一般的な職人コマンドをいくつか挙げてください。また、各コマンドの機能を説明します。
回答 :次のリストは、Laravelで使用される重要な職人コマンドの一部を示しています。
- php職人route:list: この職人コマンドは、登録されているすべてのルートを一覧表示するために使用されます。
- php職人make:controller Controller_Name : この職人のコマンドは、コントローラーを作成するために使用されます。
- php職人make:ミドルウェア Middleware_Name : この職人のコマンドは、ミドルウェアを作成するために使用されます。
- php職人make:migration create_ テーブル名 _テーブル: この職人のコマンドは、移行を作成するために使用されます。
- php職人の移行: この職人のコマンドは、データベースの移行を実行するために使用されます。
- php職人いじくり回し: この職人のコマンドは、アプリケーションと対話するために使用されます。
- php職人make:seeder Seeder_Name: この職人のコマンドは、シーダーを作成するために使用されます。
- php職人make:model Model_Name: この職人のコマンドは、モデルを作成するために使用されます。
- php職人make:mail Mail_Class_Name: この職人のコマンドは、メールクラスを作成するために使用されます。
Q#30)Rahulは、ファイルアップロードフィールドに対して次の検証ルールを作成しました。
$ request-> validate((‘file’ => ‘required | mimes:doc、pdf | max:2048’));
上記の検証ルールについて簡単に説明してください。
回答 :上記の検証では、Rahulは3つの検証ルールを使用しました。彼らです、
- 必須: ザ・ 必須 検証ルール ユーザーがファイルをアップロードせずにフォームを送信できないようにします 。言い換えれば、 ファイルフィールドは必須です 。
- mimes:doc、pdf: ザ・ mimes:doc、pdf 検証ルール ユーザーがアップロードできるのは、 .doc 拡張または .pdf 拡張。
- 最大:2048: ザ・ 最大:2048 検証ルールでは、ユーザーがファイルをアップロードできるのは 2048バイトの最大サイズ 。
Q#31)Laravelでのセッションの目的は何ですか?
回答 :セッションは、データを保存し、ユーザーを追跡するために使用されます。
Q#32)Laravel認証とは何ですか?
回答 :Laravel認証はのプロセスです アプリケーションユーザーの確認 。それはによって達成することができます ユーザーのユーザー名とパスワードを特定する 。他のいくつかのパラメータも認証に使用できます。ユーザー資格情報が有効な場合、ユーザーは 認証済み 。
Laravelは 警備員 そして プロバイダー 認証プロセス用。 警備員 定義する リクエストごとにユーザーが認証される方法 一方 プロバイダー 定義する 永続ストレージからユーザーを取得する方法 。
Q#33)CSRFトークンとは何ですか?
回答 :CSRFはの略語です クロスサイトリクエストフォージェリ 。 CSRFトークンは に アプリケーションのサーバー側で生成され、クライアントに送信される一意の値 。
CSRFトークンは ユーザーに不要なアクションを強制する攻撃(一般にCSRF攻撃として知られている)からWebアプリケーションを保護します 。
次のコードセグメントは、Laravelでフォームを作成するときにCSRFトークンを使用する方法を示しています。
@csrf ...
Q#34)GETメソッドとPOSTメソッドを比較しますか?
回答 :GETメソッドとPOSTメソッドにはいくつかの違いがあり、重要な違いのいくつかを以下の表に示します。
GETメソッド POSTメソッド リクエストはブックマークすることが可能です リクエストをブックマークすることはできません 特定のリソースからデータを要求する サーバーにデータを送信する パラメータはURLに含まれています パラメータは本文に含まれています データはURLに表示されます URLにデータが表示されない 許可される文字はASCII文字のみです ASCII文字とバイナリデータの両方が許可されます データ長には制限があります データ長に制限はありません リクエストはブラウザの履歴に残ります リクエストはブラウザの履歴に残りません キャッシュできます キャッシュできません POST方式に比べてセキュリティが低い GET方式に比べてセキュリティが高い パスワードなどの機密データの送信には使用できません パスワードなどの機密データの送信に使用できます
Q#35)承認とは何ですか?
回答 :承認はのプロセスです 認証されたユーザーが要求されたリソースにアクセスするために必要な権限を持っているかどうかを確認する 。 Laravelは ゲート 承認プロセス用。
Q#36)いくつかのHTTP応答ステータスコードに名前を付けますか?
回答 :HTTPステータスコードは、特定のHTTPリクエストが完了したかどうかを確認するのに役立ちます。
HTTPリクエストは、5つの異なるグループに分類されます。 彼らです:
- 情報提供(1XX)
- 成功した応答(2XX)
- リダイレクト(3XX)
- クライアントエラー(4XX)
- サーバーエラー(5XX)
a)情報提供: このカテゴリのステータスコードは、リクエストが受信され、理解されたかどうかを示します。
以下のリストは、情報提供の回答を示しています。
- 100: 継続する
- 101: スイッチングプロトコル
- 102: 処理
- 103: 初期のヒント
b)成功した応答: このカテゴリのステータスコードは、リクエストが正常に受信され、理解され、受け入れられたかどうかを示します。
以下のリストは、成功した応答を示しています。
- 200: OK
- 201: 作成した
- 202: 承認済み
- 203: 信頼できない情報
- 204: コンテンツなし
- 205: コンテンツをリセット
- 206: 部分的なコンテンツ
- 207: マルチステータス
- 208: すでに報告されています
- 226: 使用されるIM
c)リダイレクト: このカテゴリのステータスコードは、リクエストを完了するためにさらにアクションを実行する必要があることを示しています。
以下のリストは、リダイレクトを示しています。
- 300: 複数の選択肢
- 301: 恒久的に移動
- 302: 見つかりました
- 303: その他を見る
- 304: 変更なし
- 305: プロキシを使う
- 306: スイッチプロキシ
- 307: 一時的なリダイレクト
- 308: 永続的なリダイレクト
d)クライアントエラー: このカテゴリのステータスコードは、クライアントが原因で発生したエラーを示します。
以下のリストは、クライアントエラーを示しています。
- 400: 要求の形式が正しくありません
- 401: 許可されていない
- 402: 支払いが必要
- 403: 禁止
- 404: 見つかりません
- 405: 方法は許可されていません
- 406: 受け付けできません
- 410: なくなった
e)サーバーエラー: このカテゴリのステータスコードは、サーバーが原因のエラーを示します。
以下のリストは、サーバーエラーを示しています。
- 500: 内部サーバーエラー
- 501: 実装されていません
- 502: 悪いゲートウェイ
- 503: サービスは利用できません
- 504: ゲートウェイタイムアウト
注意 :クリック ここに HTTP応答ステータスコードの完全なセットを表示します。
Q#37)Laravelでメールを送信するために使用される一般的なツールは何ですか?
回答 :以下のリストは、Laravelでメールを送信するために使用できるいくつかの一般的なツールを示しています。
- メールトラップ
- メールガン
- Mailchimp
- マンドリル
- Amazon Simple Email Service(SES)
- Swiftmailer
- 消印
Q#38)Laravelの一般的な収集方法を簡単に説明してください。
回答 :次のリストは、いくつかの一般的な収集方法を示しています。
a)first() –このメソッドは、コレクションの最初の要素を返します。
例:
collect((1, 2, 3))->first(); // It returns 1 as the output.
b)unique(): このメソッドは、コレクション内のすべての一意のアイテムを返します。
例:
$collection = collect((1, 3, 2, 2, 4, 4, 1, 2, 5)); $unique = $collection->unique(); $unique->values()->all(); // It returns (1, 2, 3, 4, 5) as the output.
c)contains(): このメソッドは、コレクションに特定のアイテムが含まれているかどうかを確認します。
例:
$collection = collect(('student' => 'Sachin', 'id' => 320)); $collection->contains('Sachin'); // It returns true as the output. $collection->contains('Rahul'); // It returns false as the output.
d)get(): このメソッドは、指定されたキーでアイテムを返します。
例:
$collection = collect(('car' => 'BMW', 'colour' => 'black')); $value = $collection->get('car'); // It returns 'BMW' as the output.
e)toJson(): このメソッドは、コレクションをJSONシリアル化された文字列に変換します。
例:
Android用の最高の音楽ダウンローダーアプリは何ですか
$collection = collect(('student' => 'Sachin', 'id' => 320)); $collection->toJson(); // It returns '{'student':'Sachin','id':320}' as the output.
f)toArray(): このメソッドは、コレクションをプレーンなPHP配列に変換します。
例:
$collection = collect(('student' => 'Sachin', 'id' => 320)); $collection->toArray(); // It returns ('student' => 'Sachin','id' => 320,) as the output.
g)join(): このメソッドは、コレクションの値を文字列で結合します。
例:
collect(('x', 'y', 'z'))->join(', '); // It returns 'x, y, z' as the output. collect(('x', 'y', 'z'))->join(', ', ', and '); // It returns 'x, y, and z' as the output. collect(('x', 'y'))->join(', ', ' and '); // It returns 'x and y' as the output. collect(('x'))->join(', ', ' and '); // It returns 'x' as the output. collect(())->join(', ', ' and '); // It returns '' as the output.
h)isNotEmpty(): コレクションが空でない場合、このメソッドはtrueを返します。それ以外の場合は、falseを返します。
例:
collect(())->isNotEmpty(); // It returns false as the output.
i)Implode(): このメソッドは、コレクション内のアイテムを結合します。
例:
$collection = collect(( ('student_id' => 1, 'name' => 'Bob'), ('student_id' => 2, 'name' => 'David'), ('student_id' => 3, 'name' => 'Peter'), )); $collection->implode('name', ', '); // It returns 'Bob, David, Peter' as the output.
j)last(): このメソッドは、コレクションの最後の要素を返します。
例:
Ex: collect((1, 2, 3))->last(); // It returns 3 as the output.
Q#39)Laravelの公式パッケージとは何ですか?
回答 : 以下のリストは、の公式パッケージを示しています Laravel 8:
- キャッシャー(ストライプ)
- キャッシャー(パドル)
- キャッシャー(モリー)
- 夕暮れ
- 使節
- 地平線
- ジェット気流
- パスポート
- サンクタム
- スカウト
- ソーシャライト
- 望遠鏡
以下のリストは、Laravel7の公式パッケージを示しています。
- キャッシャー(ストライプ)
- キャッシャー(パドル)
- キャッシャー(モリー)
- 夕暮れ
- 使節
- 地平線
- パスポート
- サンクタム
- スカウト
- ソーシャライト
- 望遠鏡
Q#40)Laravel Forgeとは何ですか?
回答 : それは サーバー管理ツール PHPアプリケーション用。独自のサーバーを管理する予定がない場合は、これは優れた代替手段です。
注意 :クリック ここに (Laravel Forgeの公式ページ)LaravelForgeの詳細については。
Q#41)Laravel Vaporとは何ですか?
回答 :完全に サーバーレス展開プラットフォーム 。それはによって供給されています アマゾンウェブサービス (AWS)。
注意 :クリック ここに (Laravel Vaporの公式ページ)LaravelVaporの詳細については。
結論
Laravelは、Web開発者の間で最も人気のあるWebフレームワークの1つです。 Laravelバージョン7からLaravelバージョン8にいくつかの重要な変更がありますが、ほとんどの機能は同じです。
Laravelは、開発者がルーティング、コントローラー、ミドルウェア、ビュー、ブレードテンプレート、雄弁なモデル、移行、シード、職人、いじくり回し、ファイルのアクセス許可、セッション、認証、承認、コレクションなどの機能を使用して、創造的で信頼性の高いWebアプリケーションを効率的に構築するのに役立ちます。もっとたくさん。
私たちはこれの終わりに来ました 初心者のためのLaravelチュートリアル シリーズ。このチュートリアルシリーズでの学習を楽しんで、優れた知識を得たと思います。別のチュートリアルシリーズでまたお会いしましょう。
今後のインタビューにご期待ください!
<< PREV Tutorial | 最初のチュートリアル
推奨読書