From 30390ca5adb59295d8fc6c59ab8bb6ae85a28bc9 Mon Sep 17 00:00:00 2001 From: Hirofumi Tamori Date: Sat, 30 Aug 2014 23:01:48 +0900 Subject: [PATCH] =?UTF-8?q?=E6=A6=82=E8=A6=81=20->=20=E3=81=BE=E3=81=A8?= =?UTF-8?q?=E3=82=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit forgot changing items in links, subtitles. --- ja/ebook/01.4.md | 2 +- ja/ebook/02.0.md | 2 +- ja/ebook/02.7.md | 2 +- ja/ebook/03.0.md | 2 +- ja/ebook/03.4.md | 2 +- ja/ebook/04.0.md | 2 +- ja/ebook/04.5.md | 2 +- ja/ebook/05.0.md | 2 +- ja/ebook/05.6.md | 2 +- ja/ebook/06.0.md | 2 +- ja/ebook/06.1.md | 2 +- ja/ebook/06.2.md | 2 +- ja/ebook/06.4.md | 2 +- ja/ebook/07.0.md | 4 ++-- ja/ebook/07.4.md | 2 +- ja/ebook/07.6.md | 2 +- ja/ebook/08.0.md | 2 +- ja/ebook/08.1.md | 2 +- ja/ebook/08.3.md | 2 +- ja/ebook/08.4.md | 4 ++-- ja/ebook/09.0.md | 2 +- ja/ebook/09.1.md | 2 +- ja/ebook/09.2.md | 2 +- ja/ebook/09.3.md | 2 +- ja/ebook/09.4.md | 2 +- ja/ebook/09.5.md | 2 +- ja/ebook/09.6.md | 4 ++-- ja/ebook/10.0.md | 2 +- ja/ebook/10.1.md | 2 +- ja/ebook/10.2.md | 2 +- ja/ebook/10.3.md | 4 ++-- ja/ebook/11.0.md | 2 +- ja/ebook/11.1.md | 2 +- ja/ebook/11.2.md | 2 +- ja/ebook/11.3.md | 4 ++-- ja/ebook/12.0.md | 2 +- ja/ebook/12.1.md | 2 +- ja/ebook/12.2.md | 2 +- ja/ebook/12.3.md | 2 +- ja/ebook/12.4.md | 4 ++-- ja/ebook/13.0.md | 2 +- ja/ebook/13.1.md | 2 +- ja/ebook/13.5.md | 2 +- ja/ebook/14.0.md | 2 +- ja/ebook/14.6.md | 2 +- ja/ebook/preface.md | 28 ++++++++++++++-------------- 46 files changed, 65 insertions(+), 65 deletions(-) diff --git a/ja/ebook/01.4.md b/ja/ebook/01.4.md index a6fd7f8f..1b8d2ba8 100644 --- a/ja/ebook/01.4.md +++ b/ja/ebook/01.4.md @@ -457,4 +457,4 @@ Javaに親しい読者はideaには不慣れだと思います、ideaはプラ ## links * [目次]() * 前へ: [Goのコマンド](<01.3.md>) - * 次へ: [概要](<01.5.md>) + * 次へ: [まとめ](<01.5.md>) diff --git a/ja/ebook/02.0.md b/ja/ebook/02.0.md index 0a101f13..a2877e37 100644 --- a/ja/ebook/02.0.md +++ b/ja/ebook/02.0.md @@ -15,5 +15,5 @@ GoはCに似たコンパイラ型言語です。ですが、このコンパイ ## links * [目次]() - * 前へ: [第一章概要](<01.5.md>) + * 前へ: [第一章まとめ](<01.5.md>) * 次へ: [こんにちは、Go](<02.1.md>) diff --git a/ja/ebook/02.7.md b/ja/ebook/02.7.md index eb972463..ff40386c 100644 --- a/ja/ebook/02.7.md +++ b/ja/ebook/02.7.md @@ -236,4 +236,4 @@ runtimeパッケージにはgoroutineを処理するいくつかの関数が含 ## links * [目次]() * 前へ: [interface](<02.6.md>) - * 次へ: [概要](<02.8.md>) + * 次へ: [まとめ](<02.8.md>) diff --git a/ja/ebook/03.0.md b/ja/ebook/03.0.md index bf0afd5b..1274c009 100644 --- a/ja/ebook/03.0.md +++ b/ja/ebook/03.0.md @@ -7,5 +7,5 @@ Webのプログラミングの基礎を勉強することはあなたにとっ ## links * [目次]() - * 前へ: [第二章概要](<02.8.md>) + * 前へ: [第二章まとめ](<02.8.md>) * 次へ: [webでの作業方法](<03.1.md>) diff --git a/ja/ebook/03.4.md b/ja/ebook/03.4.md index 06da10c8..94372227 100644 --- a/ja/ebook/03.4.md +++ b/ja/ebook/03.4.md @@ -178,4 +178,4 @@ httpパッケージへの分析を通して、全体のコードの実行プロ ## links * [目次]() * 前へ: [Goはどのようにしてweb作業を行うか](<03.3.md>) - * 次へ: [概要](<03.5.md>) + * 次へ: [まとめ](<03.5.md>) diff --git a/ja/ebook/04.0.md b/ja/ebook/04.0.md index 9a887076..328d854f 100644 --- a/ja/ebook/04.0.md +++ b/ja/ebook/04.0.md @@ -21,5 +21,5 @@ HTTPプロトコルはステートレスなプロトコルです。ではどの ## links * [目次]() - * 前へ: [第三章概要](<03.5.md>) + * 前へ: [第三章まとめ](<03.5.md>) * 次へ: [フォームの入力を処理する](<04.1.md>) diff --git a/ja/ebook/04.5.md b/ja/ebook/04.5.md index 9e109411..b1cd5dec 100644 --- a/ja/ebook/04.5.md +++ b/ja/ebook/04.5.md @@ -152,4 +152,4 @@ ## links * [目次]() * 前へ: [フォームの多重送信の防止](<04.4.md>) - * 次へ: [概要](<04.6.md>) + * 次へ: [まとめ](<04.6.md>) diff --git a/ja/ebook/05.0.md b/ja/ebook/05.0.md index cf8108e8..33cf964c 100644 --- a/ja/ebook/05.0.md +++ b/ja/ebook/05.0.md @@ -10,5 +10,5 @@ Goはどのようなデータベースの使用もbuiltinではサポートさ ## links * [目次]() - * 前へ: [第四章概要](<04.6.md>) + * 前へ: [第四章まとめ](<04.6.md>) * 次へ: [database/sqlインターフェース](<05.1.md>) diff --git a/ja/ebook/05.6.md b/ja/ebook/05.6.md index fc6aac61..36c80693 100644 --- a/ja/ebook/05.6.md +++ b/ja/ebook/05.6.md @@ -111,4 +111,4 @@ mgoの操作方法とbeedbの操作方法はほとんど似ていることがわ ## links * [目次]() * 前へ: [beedbライブラリを使用してORM開発を行う](<05.5.md>) - * 次へ: [概要](<05.7.md>) + * 次へ: [まとめ](<05.7.md>) diff --git a/ja/ebook/06.0.md b/ja/ebook/06.0.md index 30b415a2..136d067e 100644 --- a/ja/ebook/06.0.md +++ b/ja/ebook/06.0.md @@ -8,5 +8,5 @@ Web開発ではどのようにしてユーザの閲覧過程のすべてをコ ## links * [目次]() - * 前へ: [第五章概要](<05.7.md>) + * 前へ: [第五章まとめ](<05.7.md>) * 次へ: [sessionとcookie](<06.1.md>) diff --git a/ja/ebook/06.1.md b/ja/ebook/06.1.md index 4367300b..0303c67d 100644 --- a/ja/ebook/06.1.md +++ b/ja/ebook/06.1.md @@ -92,7 +92,7 @@ sessionメカニズムはサーバサイドのメカニズムです。サーバ sessionメカニズム自身は特に複雑ではありませんが、その実装と設定の柔軟性は複雑を極めます。これは一回の経験やひとつのブラウザ、サーバのみの経験でもって普遍的に通用するものではありません。 -## 概要 +## まとめ 上述の通り、sessionとcookieの目的は同じです。どちらもhttpプロトコルのステートレスであるという欠点を克服するためにあります。しかしその方法は異なります。sessionはcookieを通じてクライアントにsession idを保存します。またユーザの他のセッション情報はサーバのsessionオブジェクトに保存されます。これとは対照的に、cookieはすべての情報をクライアントに持たせる必要があります。そのためcookieにはある程度潜在的な脅威が存在します。例えばローカルのcookieに保存されたユーザ名とパスワードが解読されたり、cookieが他のホームページに収集されます(例えば:1.appAが主導的にゾーンBのcookieを設定し、ゾーンBにcookieを取得させます;2.XSS、appAでjavascriptを通じてdocument.cookieを取得し、自分のappBに送信します)。 diff --git a/ja/ebook/06.2.md b/ja/ebook/06.2.md index 1ed609fa..d295d71b 100644 --- a/ja/ebook/06.2.md +++ b/ja/ebook/06.2.md @@ -206,7 +206,7 @@ Webアプリケーションにはユーザのログアウト操作がありま GCが十分にtimeパッケージのタイマー機能を利用していることがおわかりいただけるかと思います。時間が`maxLifeTime`を超えた後GC関数をコールした際、これによって`maxLiefTime`時間内でsessionが利用できることを保証できます。このような方法はまたオンラインユーザの数といった統計に用いることもできます。 -## 概要 +## まとめ これまでに、WebアプリケーションにおけるグローバルなSession管理に用いられるSessionManagerを実装してまいりました。Sessionを提供するために用いられるストレージを定義し、Providerのインターフェースを実装しました。次の節では、インターフェースの定義を通してProviderを実装します。ぜひご参考ください。 ## links diff --git a/ja/ebook/06.4.md b/ja/ebook/06.4.md index e5876b83..312bbae8 100644 --- a/ja/ebook/06.4.md +++ b/ja/ebook/06.4.md @@ -86,4 +86,4 @@ sessionが始まると、生成されたsessionIDの時間を記録する一つ ## links * [目次]() * 前へ: [sessionストレージ](<06.3.md>) - * 次へ: [概要](<06.5.md>) + * 次へ: [まとめ](<06.5.md>) diff --git a/ja/ebook/07.0.md b/ja/ebook/07.0.md index 88daddd0..78bb7af9 100644 --- a/ja/ebook/07.0.md +++ b/ja/ebook/07.0.md @@ -1,12 +1,12 @@ # 7 テキスト処理 Web開発においてテキスト処理は非常に重要な要素です。往々にして出力または入力する内容に対して処理を行う必要があります。ここでのテキストには文字列、数字、Json、XML等々が含まれます。高性能な一言語としてのGo言語では、これらのテキストの処理はすべてオフィシャルの標準パッケージにサポートされています。また利用中にGo標準ライブラリが巧みに設計されていることに気がつくでしょう。またユーザからすれば非常に簡単にこれらのテキストを処理することができます。本章では4つの節を通してユーザにGo言語のテキスト処理のよい知識をご紹介したいきたいと思います。 -XMLは現在多くの標準インターフェースの対話型言語となっています。多くの場合Javaで書かれたwebserverとのやりとりはどれもXML標準にもとづいて行われます。7.1節ではどのようにXMLテキストを処理するかご紹介します。XMLを使用した後あまりに複雑だと気づきます。現在多くのインターネット企業の対外的なAPIでは多くがJSON形式を採用しています。この形式は描写が簡単ですが、意味をよく表現することができます。7.2節ではどのようにこういったJSON形式のデータを処理するかご説明します。正規表現は人に愛され、また恨まれる道具です。このテキスト処理能力は非常に協力です。我々は前のフォームの検証でその強力さをすでに味わっています。7.3節ではどのようにGoの正規表現を利用するのがよいかより詳しく解説していきます。Web開発において非常に重要な部分としてMVCの分離があります。Go言語ではWeb開発中Vにおいて`template`という専門的にサポートするパッケージがあります。7.4節ではテンプレートをつかってコンテンツをどのように出力するのか詳細に解説していきます。7.5節ではどのようにしてファイルとディレクトリを操作するのか詳しくご紹介します。7.6節の概要では文字列に関する操作についてご紹介します。 +XMLは現在多くの標準インターフェースの対話型言語となっています。多くの場合Javaで書かれたwebserverとのやりとりはどれもXML標準にもとづいて行われます。7.1節ではどのようにXMLテキストを処理するかご紹介します。XMLを使用した後あまりに複雑だと気づきます。現在多くのインターネット企業の対外的なAPIでは多くがJSON形式を採用しています。この形式は描写が簡単ですが、意味をよく表現することができます。7.2節ではどのようにこういったJSON形式のデータを処理するかご説明します。正規表現は人に愛され、また恨まれる道具です。このテキスト処理能力は非常に協力です。我々は前のフォームの検証でその強力さをすでに味わっています。7.3節ではどのようにGoの正規表現を利用するのがよいかより詳しく解説していきます。Web開発において非常に重要な部分としてMVCの分離があります。Go言語ではWeb開発中Vにおいて`template`という専門的にサポートするパッケージがあります。7.4節ではテンプレートをつかってコンテンツをどのように出力するのか詳細に解説していきます。7.5節ではどのようにしてファイルとディレクトリを操作するのか詳しくご紹介します。7.6節のまとめでは文字列に関する操作についてご紹介します。 ## 目次 ![](images/navi7.png?raw=true) ## links * [目次]() - * 前へ: [第六章概要](<06.5.md>) + * 前へ: [第六章まとめ](<06.5.md>) * 次へ: [XMLの処理](<07.1.md>) diff --git a/ja/ebook/07.4.md b/ja/ebook/07.4.md index f8df1f45..4ad39ce7 100644 --- a/ja/ebook/07.4.md +++ b/ja/ebook/07.4.md @@ -341,7 +341,7 @@ Webアプリケーションを作る時はテンプレートの一部が固定 >単一の集合のようなテンプレートは互いを知っています。もしあるテンプレートが複数の集合によって使用された場合、複数の集合の中で別々にパースされる必要があります。 -## 概要 +## まとめ テンプレートに対する上記の詳細な紹介で、どのようにして動的なデータとテンプレートを融合させるかご理解いただけたかと思います:ループしたデータの出力、関数を定義、テンプレートのネスト等々。テンプレートの技術を応用することで、MVCパターンのVの処理を完成させることができます。以降の章ではどのようにMとCを処理するかご紹介します。 ## links diff --git a/ja/ebook/07.6.md b/ja/ebook/07.6.md index 862a8609..381f5575 100644 --- a/ja/ebook/07.6.md +++ b/ja/ebook/07.6.md @@ -149,4 +149,4 @@ ## links * [目次]() * 前へ: [ファイルの操作](<07.5.md>) - * 次へ: [概要](<07.7.md>) + * 次へ: [まとめ](<07.7.md>) diff --git a/ja/ebook/08.0.md b/ja/ebook/08.0.md index 05794c38..45ec9c10 100644 --- a/ja/ebook/08.0.md +++ b/ja/ebook/08.0.md @@ -16,5 +16,5 @@ Go言語は21世紀のC言語です。性能と簡単さを追求するため、 ## links * [目次]() - * 次へ: [第七章概要](<07.7.md>) + * 次へ: [第七章まとめ](<07.7.md>) * 前へ: [Socketプログラミング](<08.1.md>) diff --git a/ja/ebook/08.1.md b/ja/ebook/08.1.md index 059d6c3a..5bc48fe6 100644 --- a/ja/ebook/08.1.md +++ b/ja/ebook/08.1.md @@ -386,7 +386,7 @@ UDPサーバがどのように処理するか見てみましょう; } } -## 概要 +## まとめ TCPとUDP Socketプログラミングの描写と実装を通して、GoはすでにSocketプログラミングを完全にサポートしていることがお分かりいただけたかと思います。使用に際してもとても便利です。Goはたくさんの関数を提供しています。これらの関数を使って簡単に高性能なSocketアプリケーションを書くことができます。 diff --git a/ja/ebook/08.3.md b/ja/ebook/08.3.md index abef201b..c904b3f5 100644 --- a/ja/ebook/08.3.md +++ b/ja/ebook/08.3.md @@ -106,7 +106,7 @@ GoにはRESTに対する直接のサポートはありません。しかし、RE 上のコードではどのようにRESTなアプリケーションを書くかご覧いただきました。我々がアクセスするリソースはユーザです。異なるmethodによって異なる関数にアクセスしました。ここではサードパーティライブラリ`github.com/drone/routes`を使用しています。前の章でどのように自分で定義したルータを実現するかご紹介しました。このライブラリは自分で定義したルートと便利なルートのルールを反映させます。これを使って簡単にRESTのフレームワークを実装することができます。 -## 概要 +## まとめ RESTはフレームワークスタイルの一種です。WWWの成功経験を汲み取っています:ステートレス、リソースを中心とし、HTTPプロトコルとURIプロトコルを十分利用しています。統一したインターフェース定義を提供し、Webサービスを設計する方法の一つとして流行しました。ある意味で、URIとHTTPといった黎明期のInternet標準を強調することで、RESTは大型のアプリケーションプログラムサーバ時代の前のWeb方式に回帰しています。現在GoはRESTに対するサポートはやはり簡単です。自分dね定義したルーティングを通して、異なるmethodに異なるhandleを実装することができます。このようにRESTのフレームワークは実現されています。 ## links diff --git a/ja/ebook/08.4.md b/ja/ebook/08.4.md index c81d9d59..a23e44a9 100644 --- a/ja/ebook/08.4.md +++ b/ja/ebook/08.4.md @@ -381,7 +381,7 @@ json-rpcはTCPプロトコルにもとづいて実装されていることがお } -## 概要 +## まとめ GoはすでにRPCに対して良いサポートを提供しています。上のHTTP、TCP、JSON RPCの実装を通して、多くの分散型のWebアプリケーションの開発を簡単に行うことができます。読者であるあなたはすでにここまでマスターしたものと思われます。ただ残念なことに現在GoはまだSOAP RPCのサポートを提供していません。幸い現在すでにサードパーティのオープンソースで実現されています。 @@ -389,4 +389,4 @@ GoはすでにRPCに対して良いサポートを提供しています。上の ## links * [目次]() * 前へ: [REST](<08.3.md>) - * 次へ: [概要](<08.5.md>) + * 次へ: [まとめ](<08.5.md>) diff --git a/ja/ebook/09.0.md b/ja/ebook/09.0.md index 378906e7..9a1a7e14 100644 --- a/ja/ebook/09.0.md +++ b/ja/ebook/09.0.md @@ -16,5 +16,5 @@ Webアプリケーションプログラムのセキュリティ問題の理由 ## links * [目次]() - * 前へ: [第八章概要](<08.5.md>) + * 前へ: [第八章まとめ](<08.5.md>) * 次へ: [CSRF攻撃の予防](<09.1.md>) diff --git a/ja/ebook/09.1.md b/ja/ebook/09.1.md index f037ff02..25ef0df6 100644 --- a/ja/ebook/09.1.md +++ b/ja/ebook/09.1.md @@ -84,7 +84,7 @@ tokenを検証 このように基本的には安全なPOSTを実現しました。しかしもしtokenのアルゴリズムが暴かれてしまったらと思われるかもしれません。しかし理論上は破られることは基本的に不可能です。ある人が計算したところ、この文字列を無理に破るにはだいたい2の11乗の時間が必要です。 -## 概要 +## まとめ クロスサイトリクエストフォージェリ、すなわちCSRFは非常に危険なWebセキュリティ問題です。Webセキュリティ界隈では"眠れる巨人"と呼ばれています。リスクレベルはこの"肩書き"を見ればお分かりでしょう。この節ではクロスサイトリクエストフォージェリの紹介にとどまらず、このようなセキュリティホールを生み出す原因の所在についても詳しくご説明しました。これでもって攻撃への防御を促し、読者に安全なWebアプリケーションを書いていただけますよう望んでいます。 ## links diff --git a/ja/ebook/09.2.md b/ja/ebook/09.2.md index b622a120..10f09127 100644 --- a/ja/ebook/09.2.md +++ b/ja/ebook/09.2.md @@ -63,7 +63,7 @@ CleanMap["username"] = username } -## 概要 +## まとめ データのフィルタリングはWebセキュリティにおいて基礎となる作用です。多くのセキュリティ問題はデータのフィルタリングと検証を行わなかったことによるものです。例えば前の節のCSRF攻撃と以降に説明するXSS攻撃、SQLインジェクション等はどれも真面目にデータをフィルタリングしなかった事によって引き起こされます。そのため、この部分の内容は特に重視する必要があります。 ## links diff --git a/ja/ebook/09.3.md b/ja/ebook/09.3.md index d7a45358..76a58de9 100644 --- a/ja/ebook/09.3.md +++ b/ja/ebook/09.3.md @@ -43,7 +43,7 @@ XSSに関するより詳しい分析は"[新浪微博XSS事件分析](http://www このようにすることでブラウザにhtmlを出力させずjavascriptコードを解釈させることができます。 -## 概要 +## まとめ XSSセキュリティホールはとても危険なものです。Webアプリケーションを開発している時、必ずデータをフィルタリングするよう肝に銘じておいてください。特にクライアントに出力する前に。これは現在のところXSSを防止する手段として有効です。 ## links diff --git a/ja/ebook/09.4.md b/ja/ebook/09.4.md index ebef3511..531dafb8 100644 --- a/ja/ebook/09.4.md +++ b/ja/ebook/09.4.md @@ -60,7 +60,7 @@ SQLインジェクション攻撃の被害はこれだけ大きく、どのよ 5. アプリケーションをデプロイする前になるべく専門のSQLインジェクション検査ツールを使って検査を行い、発見されたSQLインジェクションセキュリティホールにはすぐにパッチをあてる。ネット上ではこの方面のオープンソースツールがたくさんあります。例えばsqlmap、SQLninja等です。 6. ページがSQLのエラー情報を出力するのを避ける。例えば型のエラー、フィールドのミスマッチ等です。コードのSQLクエリが暴露されることで攻撃者がこれらのエラー情報を利用してSQLインジェクションを行うのを防ぎます。 -## 概要 +## まとめ 上の例によってSQLインジェクションは被害が相当大きいセキュリティホールであるとわかりました。そのため我々が通常書くWebアプリケーションに対してはどのような小さな事でも非常に重視する必要があります。小さな事が命運を分けます。生活も同じ、Webアプリケーションを書くことも同じです。 ## links diff --git a/ja/ebook/09.5.md b/ja/ebook/09.5.md index 2e76ad96..4e1c5019 100644 --- a/ja/ebook/09.5.md +++ b/ja/ebook/09.5.md @@ -77,7 +77,7 @@ Go言語のこの三種類の暗号化アルゴリズムの実装は以下の通 上の方法によってユニークな対応するパスワードの値を取得することができます。これは現在までもっともクラックが難しいものです。 -## 概要 +## まとめ ここまででもしあなたに危機感が芽生えたのだとすれば、行動すべきです: - 1)もし普通のユーザであれば、LastPassによってパスワードを保存/生成するのをおすすめします。異なるサイトで異なるパスワードを使用します。 diff --git a/ja/ebook/09.6.md b/ja/ebook/09.6.md index 4211fd0a..43a93b9d 100644 --- a/ja/ebook/09.6.md +++ b/ja/ebook/09.6.md @@ -112,11 +112,11 @@ Go言語の`crypto`では双方向暗号の高度な暗号化/復元パッケー この3つの関数は暗号化/復元操作を実現します。詳細な操作は上の例をご覧ください。 -## 概要 +## まとめ この節ではいくつかの暗号化/復元アルゴリズムをご紹介しました。Webアプリケーションを開発している時は要求に合わせて異なる方法によって暗号化/複合を行うことができます。一般的なアプリケーションではbase64アルゴリズムを採用することができます。より高度な場合はaesやdesアルゴリズムを採用することができます。 ## links * [目次]() * 前へ: [パスワードの保存](<09.5.md>) - * 次へ: [概要](<09.7.md>) + * 次へ: [まとめ](<09.7.md>) diff --git a/ja/ebook/10.0.md b/ja/ebook/10.0.md index f0f34cb0..ef45e46f 100644 --- a/ja/ebook/10.0.md +++ b/ja/ebook/10.0.md @@ -21,5 +21,5 @@ ## links * [目次]() - * 前へ: [第九章概要](<09.7.md>) + * 前へ: [第九章まとめ](<09.7.md>) * 次へ: [デフォルトロケールの設定](<10.1.md>) diff --git a/ja/ebook/10.1.md b/ja/ebook/10.1.md index 2d773311..67321228 100644 --- a/ja/ebook/10.1.md +++ b/ja/ebook/10.1.md @@ -76,7 +76,7 @@ URLアドレスをもっとRESTfulな見た目にしたいと思うかもしれ 当然ユーザにあなたが提供するセレクトボックスや他の何らかの方法で対応するlocaleを設定させることもできます。ユーザの入力した情報を、このアカウントに関連するprofileに保存し、ユーザが再度ログインした時にこの設定をlocale設定にコピーします。これによってこのユーザの毎回のアクセスで自分が以前に設定したlocaleをもとにページを取得するよう保証することができます。 -## 概要 +## まとめ 上のご紹介から、Localeの設定にはいくつもの方法があるとわかりました。要求の違いによって異なるLocaleの設定方法を選択する必要があります。ユーザが最もよく知る方法で我々が提供するサービスを得る事で、アプリケーションのユーザビリティを高めます。 ## links diff --git a/ja/ebook/10.2.md b/ja/ebook/10.2.md index f302f9d6..e693acb2 100644 --- a/ja/ebook/10.2.md +++ b/ja/ebook/10.2.md @@ -125,7 +125,7 @@ Localeの違いによってビューを表示させる場合もあるかもし このような方法を採用することでビューとリソースをローカライズすると、用意に拡張を行うことができます。 -## 概要 +## まとめ この節ではどのようにしてローカライズリソースを使用し、保存するかご紹介しました。ある時は置換関数によって実装する必要があり、またある時はlangによって設定する必要があります。しかし最終的にはどれもkey-valueの方法によってLocaleに対応したデータを保存することになります。必要な時に対応するLocaleの情報を取り出して、もしそれがてkしうと情報であれば直接出力し、もし時間や日時または通過であった場合は`fmtPrintf`を使ったりその他のフォーマッタ関数によって処理する必要があります。異なるLocaleのビューとリソースに対しては最も簡単で、パスにlangを追加するだけで実装することができます。 ## links diff --git a/ja/ebook/10.3.md b/ja/ebook/10.3.md index d2cb6cb5..dea1ecda 100644 --- a/ja/ebook/10.3.md +++ b/ja/ebook/10.3.md @@ -171,10 +171,10 @@ {{.V.Money | M}} -## 概要 +## まとめ この節を通して多言語パッケージのWebアプリケーションをどのようにして実現するかわかりました。カスタム言語パッケージでは便利に多言語を実装することができます。また、設定ファイルによって非常に簡単に複数の言語を拡張することもできます。デフォルトではgo-i18nはパブリックな設定ファイルをロードします。例えば時間、通貨等です。非常に簡単に使用することができ、同時にテンプレートにおいてこれらの関数をサポートするため、対応するテンプレート関数も実装しました。このようにしてWebアプリケーションを開発する際直接テンプレートにおいてpipelineの方法で多言語パッケージを操作することができます。 ## links * [目次]() * 前へ: [ローカライズリソース](<10.2.md>) - * 次へ: [概要](<10.4.md>) + * 次へ: [まとめ](<10.4.md>) diff --git a/ja/ebook/11.0.md b/ja/ebook/11.0.md index 517fb213..d99fa8f3 100644 --- a/ja/ebook/11.0.md +++ b/ja/ebook/11.0.md @@ -15,5 +15,5 @@ Webアプリケーションを開発するにあたって、エラーは避け ## links * [目次]() - * 前へ: [第十章概要](<10.4.md>) + * 前へ: [第十章まとめ](<10.4.md>) * 次へ: [エラー処理](<11.1.md>) diff --git a/ja/ebook/11.1.md b/ja/ebook/11.1.md index f1bd07ae..3ac48715 100644 --- a/ja/ebook/11.1.md +++ b/ja/ebook/11.1.md @@ -191,7 +191,7 @@ Goはエラー処理においてCに似た戻り値を検査する方法を採 上で示したとおり、viewにアクセスした際異なる状況によって異なるエラーコードとエラー情報を取得することができます。これははじめのバージョンに比べてコード量にさほど変化はありませんが、これが表示するエラーはよりわかりやすくなっています。提示されるエラー情報のユーザビリティが高められ、拡張性もはじめのものに比べてよくなっています。 -## 概要 +## まとめ プログラムの設計において障害の許容は重要な仕事の一部です。Goではエラー処理によってこれを実現します。errorはひとつのインターフェースに過ぎませんが、多くに変化させることができます。自分の需要に合わせて異なる処理を実装することができます。最後にご紹介したエラー処理の方法で、皆様によりよいWebエラーの処理の方法を設計するにあたってご助力になれば幸いです。 ## links diff --git a/ja/ebook/11.2.md b/ja/ebook/11.2.md index 1c6c1728..42c06e9d 100644 --- a/ja/ebook/11.2.md +++ b/ja/ebook/11.2.md @@ -240,7 +240,7 @@ GDBが実行している現在のプログラムの環境ではいくつかの goroutinesのコマンドを確認することでgoroutineの内部がどのように実行されているのか詳しく理解することができます。各関数のコールされる順番はすでにはっきり表示されています。 -## 概要 +## まとめ この章ではGDBデバッグにおけるGoプログラムの基本コマンドのいくつかをご紹介しました。`run`、`print`、`info`、`set variable`、`continue`、`list`、`break`といったよく使われるデバッグコマンドを含め、上のデモで行ったように、読者はすでにGoプログラムに対してGDBを使ったデバッグを基本的に理解したものと信じています。もしより多くのデバッグテクニックを知りたければオフィシャルのページのGDBデバッグの項目をご参照ください。 ## links diff --git a/ja/ebook/11.3.md b/ja/ebook/11.3.md index f5fe232a..b068a0f8 100644 --- a/ja/ebook/11.3.md +++ b/ja/ebook/11.3.md @@ -139,11 +139,11 @@ Go言語はあらかじめ用意されている軽量なテストフレームワ 上の結果は我々がどのような`TestXXX`なユニットテスト関数も実行していないことを示しています。表示される結果は耐久テスト関数のみを実行しただけです。第一行には`Benchmark_Division`が500000000回実行され示し、毎回の実行が平均で7.76ミリ秒であったことを示しています。第二行は`Benchmark_TimeConsumingFunctin`が500000000回実行され、毎回の平均実行時間が7.80ミリ秒であったことを示しています。最後の1行は全体の実行時間を示しています。 -## 概要  +## まとめ  上のユニットテストと耐久テストの学習を通じて、`testing`パッケージが非常に軽量で、ユニットテストと耐久テストを書くのは非常に簡単であるとわかりました。ビルトインの`go test`コマンドを組み合わせることで、非常に便利にテストを行うことができます。このように我々が毎回コードを修正し終わる度に、go testを実行するだけで簡単に回帰テストを行うことができます。 ## links * [目次]() * 前へ: [GDBを使用したデバッグ](<11.2.md>) - * 次へ: [概要](<11.4.md>) + * 次へ: [まとめ](<11.4.md>) diff --git a/ja/ebook/12.0.md b/ja/ebook/12.0.md index 34948d50..f05a1536 100644 --- a/ja/ebook/12.0.md +++ b/ja/ebook/12.0.md @@ -7,5 +7,5 @@ ## links * [目次]() - * 前へ: [第十一章概要](<11.4.md>) + * 前へ: [第十一章まとめ](<11.4.md>) * 次へ: [アプリケーションログ](<12.1.md>) diff --git a/ja/ebook/12.1.md b/ja/ebook/12.1.md index c15adc72..7dda8e08 100644 --- a/ja/ebook/12.1.md +++ b/ja/ebook/12.1.md @@ -157,7 +157,7 @@ seelogはカスタムなログ処理の定義をサポートしています。 このような方法によって簡単に対応する情報を探し出すことができます。これにはアプリケーションログに対して統計と分析を行えるという利点があります。また、ログのサイズを考慮する必要もあります。高トラフィックのWebアプリケーションにとって、ログの増加は恐るべきものです。そのため、seelogの設定ファイルでlogrotateを設定することで、ログファイルが絶え間なく増大し我々のディスクスペースが足りなくなるといった問題を引き起こさないよう保証することができます。 -## 概要 +## まとめ 上のseelogシステムとこれに基づいてどのようにログシステムを定義するかを学ぶことによって、非常に気軽に強力で適切な機能を持つログシステムを作成できることができました。ログシステムはデータ分析に信用できるデータソースを提供します。例えばログの分析を通して、システムをより一歩改善することができますし、アプリケーションに問題が発生した時に問題の位置を特定しやすくなります。また、seelogはログのレベル分け機能もサポートしています。minlevelの設定によって簡単にテストや配布版の出力情報のレベルを設定することができます。 ## links diff --git a/ja/ebook/12.2.md b/ja/ebook/12.2.md index 6ba2539d..3e1c0d05 100644 --- a/ja/ebook/12.2.md +++ b/ja/ebook/12.2.md @@ -116,7 +116,7 @@ 上ではエラーと例外の区別をご紹介しました。我々がプログラムを開発する時はどのように設計すべきでしょうか?ルールは非常に簡単です:もしあなたが定義した関数が失敗する可能性があるなら、エラーを返さなければなりません。他のpackageの関数をコールする時、もしこの関数の実装がとてもよい場合、panicの心配をする必要もありません。本当に例外を発生させなければならない状況ではないのに発生させてしまっているにしても、私がこれを処理するいわれはないはずです。panicとrecoverは自分が開発したpackageで実装されたロジックや、特殊な状況に対して設計されます。 -## 概要 +## まとめ この節では我々のWebアプリケーションをデプロイした後どのようにして各種のエラーを処理するかについてまとめました:ネットワークエラー、データベースエラー、オペレーティングシステムのエラー等、エラーが発生した際、我々のプログラムはどのようにして正しく処理するのでしょうか:ユーザフレンドリーなエラーインターフェースを表示し、操作をロールバックし、ログを記録し、管理者に通知するといった操作を行います。最後にどのようにしてエラーと例外を正しく処理するかについてご紹介しました。一般的なプログラムにおいてはエラーと例外はよく混同されます。しかし、Goではエラーと例外は常に明確な区別がなされます。そのため、我々がプログラムを設計するにあたってエラーと例外を処理する際はどのような原則に従うべきかについてご紹介しました。 ## links * [目次]() diff --git a/ja/ebook/12.3.md b/ja/ebook/12.3.md index 241a0dd4..a3cb3107 100644 --- a/ja/ebook/12.3.md +++ b/ja/ebook/12.3.md @@ -171,7 +171,7 @@ Supervisordをインストールするとsupervisorとsupervisorctlという2つ - supervisorctl stop all、すべてのプロセスを停止します。注:start、restart、stopは最新の設定ファイルを読み込みません。 - supervisorctl reload、最新の設定ファイルを読み込み、新しい設定に沿ってすべてのプロセスを起動、管理します。 -## 概要 +## まとめ この節ではGoがどのようにdaemon化を実現しているのかについてご紹介しました。ただ現在Goのdaemon実装は不足しており、サードパーティのツールによるアプリケーションプログラムのdaemon管理を行う方法に頼る必要があります。そのためここではpythonで書かれたプロセス管理ツールSupervisordをご紹介しました。Supervisordを使って簡単にGoアプリケーションプログラムを管理することができます。 diff --git a/ja/ebook/12.4.md b/ja/ebook/12.4.md index 4387a314..c9d3c770 100644 --- a/ja/ebook/12.4.md +++ b/ja/ebook/12.4.md @@ -165,10 +165,10 @@ redisのリストアはホットバックアップとコールドバックアッ しかし時にはコールドバックアップによってデータをリストアする必要もあります。redisのコールドバックアップは実は保存されたデータベースファイルをredisのワーキングディレクトリにコピーするだけです。その後redisを起動すればOKです。redisは起動している間自動的にデータベースファイルをメモリにロードします。起動の速度はデータベースのファイルの大小によって決定します。 -## 概要 +## まとめ この節ではアプリケーションのバックアップとリストアについてご紹介しました。ファイルのバックアップからデータベースのバックアップまで、どのように災害に対応するかです。また、rsyncを使った異なるシステムでのファイルの同期についてもご紹介しました。MySQLデータベースとredisデータベースのバックアップとリストアです。この節の紹介を通して開発された本番プロダクトの障害に対するひとつの参考になれば幸いです。 ## links * [目次]() * 前へ: [アプリケーションのデプロイ](<12.3.md>) - * 次へ: [概要](<12.5.md>) + * 次へ: [まとめ](<12.5.md>) diff --git a/ja/ebook/13.0.md b/ja/ebook/13.0.md index 18595666..415d9fbf 100644 --- a/ja/ebook/13.0.md +++ b/ja/ebook/13.0.md @@ -8,5 +8,5 @@ ## links * [目次]() - * 前へ: [第12章概要](<12.5.md>) + * 前へ: [第12章まとめ](<12.5.md>) * 次へ: [プロジェクトのプラン](<13.1.md>) diff --git a/ja/ebook/13.1.md b/ja/ebook/13.1.md index 5d157fed..e26589c6 100644 --- a/ja/ebook/13.1.md +++ b/ja/ebook/13.1.md @@ -45,7 +45,7 @@ ## フレームワーク設計 ブログの迅速な作成を実現するため、上のプロセス設計に従って最小化されたフレームワークを開発します。フレームワークにはルーティング機能、RESTをサポートしたコントローラ、自動化とテンプレートの適用、ログシステム、設定管理等が含まれます。 -## 概要 +## まとめ この節ではブログシステムにおいてGOPATHを設定するところからディレクトリの作成といった基礎情報までをご紹介しました。フレームワークの構造がMVCモードを採用することや、ブログシステムのデータフローの実行プロセスについても簡単にご紹介しました。最後にこれらのプロセスを通じてブログシステムのディレクトリ構造を設計しました。ここまでで、フレームワークの基本的な作成が完了しました。以降のいくつかの節ではひとつひとつ実装していきます。 ## links * [目次]() diff --git a/ja/ebook/13.5.md b/ja/ebook/13.5.md index fb4f320a..4cd8546b 100644 --- a/ja/ebook/13.5.md +++ b/ja/ebook/13.5.md @@ -255,4 +255,4 @@ edit.tpl ## links * [目次]() * 前へ: [ログとコンフィグ設計](<13.4.md>) - * 次へ: [概要](<13.6.md>) + * 次へ: [まとめ](<13.6.md>) diff --git a/ja/ebook/14.0.md b/ja/ebook/14.0.md index 737e2d90..a51323ec 100644 --- a/ja/ebook/14.0.md +++ b/ja/ebook/14.0.md @@ -8,5 +8,5 @@ ## links * [目次]() - * 前へ: [第13章概要](<13.6.md>) + * 前へ: [第13章まとめ](<13.6.md>) * 次へ: [静的なファイルのサポート](<14.1.md>) diff --git a/ja/ebook/14.6.md b/ja/ebook/14.6.md index af2d94bd..b5cb0820 100644 --- a/ja/ebook/14.6.md +++ b/ja/ebook/14.6.md @@ -102,4 +102,4 @@ goroutineをクリックすると詳細な情報を得ることができます ## links * [目次]() * 前へ: [多言語サポート](<14.5.md>) - * 次へ: [概要](<14.7.md>) + * 次へ: [まとめ](<14.7.md>) diff --git a/ja/ebook/preface.md b/ja/ebook/preface.md index 9ef1d440..275b0665 100644 --- a/ja/ebook/preface.md +++ b/ja/ebook/preface.md @@ -3,7 +3,7 @@ - 1.2. [GOPATHとワーキングディレクトリ](01.2.md) - 1.3. [Goのコマンド](01.3.md) - 1.4. [Goの開発ツール](01.4.md) - - 1.5. [概要](01.5.md) + - 1.5. [まとめ](01.5.md) * 2.[Go言語の基礎](02.0.md) - 2.1. [こんにちは、Go](02.1.md) - 2.2. [Goの基礎](02.2.md) @@ -12,20 +12,20 @@ - 2.5. [オブジェクト指向](02.5.md) - 2.6. [interface](02.6.md) - 2.7. [マルチスレッド](02.7.md) - - 2.8. [概要](02.8.md) + - 2.8. [まとめ](02.8.md) * 3.[Webの基礎](03.0.md) - 3.1 [webでの作業方法](03.1.md) - 3.2 [Goで簡単なwebサーバを立てる](03.2.md) - 3.3 [Goはどのようにしてweb作業を行うか](03.3.md) - 3.4 [Goのhttpパッケージ詳細](03.4.md) - - 3.5 [概要](03.5.md) + - 3.5 [まとめ](03.5.md) * 4.[フォーム](04.0.md) - 4.1 [フォームの入力を処理する](04.1.md) - 4.2 [フォームに入力された内容の検証](04.2.md) - 4.3 [クロスサイトスクリプティングの予防](04.3.md) - 4.4 [フォームの複数回送信の防止](04.4.md) - 4.5 [ファイルのアップロード処理](04.5.md) - - 4.6 [概要](04.6.md) + - 4.6 [まとめ](04.6.md) * 5.[データベースへのアクセス](05.0.md) - 5.1 [database/sqlインターフェース](05.1.md) - 5.2 [MySQL データベースの使用](05.2.md) @@ -33,13 +33,13 @@ - 5.4 [PostgreSQLデータベースの使用](05.4.md) - 5.5 [beedbライブラリを使用してORM開発を行う](05.5.md) - 5.6 [NOSQLデータベースの操作](05.6.md) - - 5.7 [概要](05.7.md) + - 5.7 [まとめ](05.7.md) * 6.[sessionとデータの保存](06.0.md) - 6.1 [sessionとcookie](06.1.md) - 6.2 [Goはどのようにしてsessionを使用するか](06.2.md) - 6.3 [sessionストレージ](06.3.md) - 6.4 [sessionハイジャックの予防](06.4.md) - - 6.5 [概要](06.5.md) + - 6.5 [まとめ](06.5.md) * 7.[テキスト処理](07.0.md) - 7.1 [XMLの処理](07.1.md) - 7.2 [JSONの処理](07.2.md) @@ -47,13 +47,13 @@ - 7.4 [テンプレートの処理](07.4.md) - 7.5 [ファイルの操作](07.5.md) - 7.6 [文字列の処理](07.6.md) - - 7.7 [概要](07.7.md) + - 7.7 [まとめ](07.7.md) * 8.[Webサービス](08.0.md) - 8.1 [Socketプログラミング](08.1.md) - 8.2 [WebSocket](08.2.md) - 8.3 [REST](08.3.md) - 8.4 [RPC](08.4.md) - - 8.5 [概要](08.5.md) + - 8.5 [まとめ](08.5.md) * 9.[セキュリティと暗号化](09.0.md) - 9.1 [CSRF攻撃の予防](09.1.md) - 9.2 [入力フィルタリングの確保](09.2.md) @@ -61,30 +61,30 @@ - 9.4 [SQLインジェクションの回避](09.4.md) - 9.5 [パスワードの保存](09.5.md) - 9.6 [データを暗号化/復元する](09.6.md) - - 9.7 [概要](09.7.md) + - 9.7 [まとめ](09.7.md) * 10.[国際化とローカライズ](10.0.md) - 10.1 [デフォルトロケールの設定](10.1.md) - 10.2 [ローカライズリソース](10.2.md) - 10.3 [国際化サイト](10.3.md) - - 10.4 [概要](10.4.md) + - 10.4 [まとめ](10.4.md) * 11.[エラー処理、デバッグとテスト](11.0.md) - 11.1 [エラー処理](11.1.md) - 11.2 [GDBを使用したデバッグ](11.2.md) - 11.3 [Goによるテスト例](11.3.md) - - 11.4 [概要](11.4.md) + - 11.4 [まとめ](11.4.md) * 12.[デプロイとメンテナンス](12.0.md) - 12.1 [アプリケーションログ](12.1.md) - 12.2 [サイトのエラー処理](12.2.md) - 12.3 [アプリケーションのデプロイ](12.3.md) - 12.4 [バックアップとリストア](12.4.md) - - 12.5 [概要](12.5.md) + - 12.5 [まとめ](12.5.md) * 13.[どのようにしてWebフレームワークを設計するか](13.0.md)  - 13.1 [プロジェクトプラン](13.1.md)  - 13.2 [カスタムルータの設計](13.2.md) - 13.3 [controllerの設計](13.3.md) - 13.4 [ログとデプロイ設計](13.4.md) - 13.5 [ブログの追加/削除/修正の実装](13.5.md) - - 13.6 [概要](13.6.md)  + - 13.6 [まとめ](13.6.md)  * 14.[Webフレームワークの拡張](14.0.md) - 14.1 [静的ファイルのサポート](14.1.md) - 14.2 [Sessionのサポート](14.2.md) @@ -92,5 +92,5 @@ - 14.4 [ユーザ認証](14.4.md) - 14.5 [多言語サポート](14.5.md) - 14.6 [pprofのサポート](14.6.md) - - 14.7 [概要](14.7.md) + - 14.7 [まとめ](14.7.md) * 付録A [参考資料](ref.md)