Skip to content

Commit

Permalink
Merge pull request #271 from azu/fix-feedback
Browse files Browse the repository at this point in the history
style: フィードバックにもとづく表記揺れの修正
  • Loading branch information
azu authored Aug 12, 2016
2 parents 7fdb049 + 0f89260 commit 6b29251
Show file tree
Hide file tree
Showing 41 changed files with 396 additions and 215 deletions.
13 changes: 13 additions & 0 deletions .textlintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"plugins": [
"asciidoc-loose"
],
"filters": {},
"rules": {
"prh": {
"rulePaths": [
"./prh.yml"
]
}
}
}
11 changes: 11 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
os:
- linux
sudo: false
language: node_js
rvm:
- "2.2.0"
node_js:
- "stable"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
cache:
directories:
- node_modules
Expand All @@ -12,8 +20,11 @@ before_install:
- java -version
- ruby --version
- gem --version
install:
- export CXX=g++-4.8
- gem install asciidoctor
- gem install coderay
- npm install
script:
- make test
after_success:
Expand Down
4 changes: 2 additions & 2 deletions Appendix-Glossary/about-author.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ http://efcl.info/[Web Scratch] や http://jser.info/[JSer.info] といったサ

- image:../public/img/gumroad-green.svg[おまけをダウンロード, link="https://gumroad.com/l/javascript-promise"] https://gumroad.com/l/javascript-promise[JavaScript Promiseの本のおまけ]

Gumroadから無料 または 好きな値段でダウンロードすることが出来ます
Gumroadから無料 または 好きな値段でダウンロードすることができます

ダウンロードする際に作者へのメッセージも書けるので、
メッセージを残すついでにダウンロードして行ってください。

問題の指摘などがありましたら、GitHubやGitterに書いてくださると解決出来ます
問題の指摘などがありましたら、GitHubやGitterに書いてくださると解決できます

* https://github.com/azu/promises-book/issues?state=open[Issues · azu/promises-book]
* https://gitter.im/azu/promises-book[azu/promises-book - Gitter]
8 changes: 4 additions & 4 deletions Appendix-Glossary/glossary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
Promises::
プロミスという仕様そのもの
promiseオブジェクト::
プロミスオブジェクト、`Promise` のインスタンスオブジェクトの事
プロミスオブジェクト、`Promise` のインスタンスオブジェクトのこと
[[es6-promises]]
ES6 Promises::
http://www.ecma-international.org/ecma-262/6.0/index.html[ECMAScript 6th Edition(ECMAScript 2015)] を明示的に示す場合にprefixとして _ES6_ をつける
[[promises-aplus]]
Promises/A+::
http://promises-aplus.github.io/promises-spec/[Promises/A+]の事
http://promises-aplus.github.io/promises-spec/[Promises/A+]のこと
ES6 Promisesの前身となったコミュニティベースの仕様であり、ES6 Promisesとは多くの部分が共通している。
[[Thenable]]
Thenable::
Promiseライクなオブジェクトの事
`.then` というメソッドを持つオブジェクト
Promiseライクなオブジェクトのこと
`.then` というメソッドをもつオブジェクト
[[promise-chain]]
promise chain::
promiseオブジェクトを `then` や `catch` のメソッドチェーンでつなげたもの。
Expand Down
16 changes: 8 additions & 8 deletions Appendix-Note/beginning-story.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
== 書籍の始まり

この書籍を書くことにしたのは、私自身が運営する JSer.info にて、
http://jser.info/post/77696682011/es6-promises[あなたが読むべきJavaScript Promises | JSer.info] という記事を書いた事が始まりです
http://jser.info/post/77696682011/es6-promises[あなたが読むべきJavaScript Promises | JSer.info] という記事を書いたことが始まりです

この記事を書く際にECMAScript 6 Promisesについて色々調べながら書いていましたが、
最終的に扱いきれてない情報もありました。

- https://github.com/azu/jser.info/pull/17[あなたが読むべきPromises by azu · Pull Request #17 · azu/jser.info]

またこの時、電子書籍はどのようなワークフローで書かれているんだろう?ということに興味を持っていて、
またこのとき、電子書籍はどのようなワークフローで書かれているんだろう?ということに興味を持っていて、
それを学ぶには実際に電子書籍を書いてみるのが早いと思ったのも書き始めた理由の一つです。

一番最初に自分用の今後やりたいTodoを書いているリポジトリにIssueを立てることから始めました。
Expand All @@ -27,7 +27,7 @@ Sphinx(reStructuredText)を使って書いていたため、今回は別の方
The little book of Buster.JS を書いた時からサンプルコードにテストを書くことにしていたので、
外部ファイルを読み込む機能は必要なものでした。

拡張したMarkdownフォーマットを利用するのも良いですが、その時にAsciiDocというOreillyも使っているフォーマットがあることを思い出しました
拡張したMarkdownフォーマットを利用するのもよいですが、そのときにAsciiDocというOreillyも使っているフォーマットがあることを思い出しました
また、Asciidocのモダンな処理エンジンとして http://asciidoctor.org/[Asciidoctor] という実装があることを知り、
これを使ってみようと思いました。

Expand All @@ -37,7 +37,7 @@ The little book of Buster.JS を書いた時からサンプルコードにテス
== 書き始めのワークフロー

おおまかに書く内容と形式を決めましたが、
私は形から入るタイプなので、Asciidocで書くときにどのようなプロジェクト構造が良いのか悩んでいた記憶があります
私は形から入るタイプなので、Asciidocで書くときにどのようなプロジェクト構造がよいのか悩んでいた記憶があります

そのため、一番最初に書いたのは https://github.com/azu/promises-book/commit/bbf23086c5bbaf60bd9991b5b1a4229ce54dfb30[CONTRIBUTE.md] で、
コントリビュートガイドを書くという形でプロジェクトの構造がどうあるべきかについて決めていきました。
Expand Down Expand Up @@ -118,10 +118,10 @@ http://azu.github.io/slide/udonjs/github-issue.html[一人で使えるGithub Iss

== 文章のレビュー

物理的な書籍と違っていつでも更新出来るとはいえ
最低限おかしなところは直さないと行けないため、文章をひと通り書き終わってから誤字などチェックを始めました
物理的な書籍と違っていつでも更新できるとはいえ
最低限おかしなところは直さないと行けないため、文章をひととおり書き終わってから誤字などチェックを始めました

また、最初に好き勝手書いてた影響もあり、セクションの順番を変えたほうが良い箇所もあるなど
また、最初に好き勝手書いてた影響もあり、セクションの順番を変えたほうがよい箇所もあるなど
全体的な流れを直す作業もレビューと一緒にやっていました。

全体的な流れを見るために、あるセクションがどのセクションに依存してるか、
Expand All @@ -133,7 +133,7 @@ http://azu.github.io/slide/udonjs/github-issue.html[一人で使えるGithub Iss
誤字脱字などは https://github.com/vzvu3k6k[@vzvu3k6k] さんにたくさんのpull-requestを送ってもらったり、
自分もiPhone等のモバイル端末から直接GitHub Issueを立てられるようにして一文字のtypoのIssue等を大量に立ててチェックしていきました。

HTMLで見られるようにするとモバイルでも十分文章のレビューは出来るので
HTMLで見られるようにするとモバイルでも十分文章のレビューはできるので
作っておいたIssueをTiDD(チケット駆動開発)の要領で処理していくと文章の修正もテンポよく進められました。

ここでもGitHub Issueを活用していましたが、typoのような小さな修正と新規セクションを書くような大きな変更では、
Expand Down
16 changes: 8 additions & 8 deletions Appendix-Note/tooling-ci.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ CodeMirrorをベースにコードの実行機能を付加するモジュール
- https://github.com/azu/codemirror-console[azu/codemirror-console]
- https://github.com/azu/codemirror-console-ui[azu/codemirror-console-ui]

__codemirror-console__ はCodeMirrorに書かれているコードを実行出来るモジュール
__codemirror-console__ はCodeMirrorに書かれているコードを実行できるモジュール
単純にコードをevalするだけでは、グロールスコープを汚染してしまうため、
コードを実行する時にiframeを作り、その中でコードを実行している。

http://nodejs.org/api/vm.html[Nodeのvmモジュール]と似た考え方を持つ https://github.com/amasad/context-eval/[context-eval]を利用した。
http://nodejs.org/api/vm.html[Nodeのvmモジュール]と似た考え方をもつ https://github.com/amasad/context-eval/[context-eval]を利用した。
これにより単純に実行するだけではなく、`console` を独自のものとすり替えて実行することができるようになっている。

__codemirror-console-ui__は__codemirror-console__のUIを提供するモジュール。
Expand All @@ -76,9 +76,9 @@ image::img/javascript-console-editor.png[コンソールエディタの図]

しかし一部を除いて、表示用コードはブラウザでの表示と実行を前提としている。
サンプルコードから表示用コードを自動的に生成しているが、
これはモジュールに関する事のみを解決するため、サンプルコードはどちらの環境でも動く書き方が必要となった。
これはモジュールに関することのみを解決するため、サンプルコードはどちらの環境でも動く書き方が必要となった。

Node.js上でもブラウザと同様の機能がテスト出来るようにするためのPolyfillやモックが必要となった
Node.js上でもブラウザと同様の機能がテストできるようにするためのPolyfillやモックが必要となった
DOM APIが中心となり、具体的には `XMLHttpRequest` や `Notification` 等が該当する。

===== XHR
Expand Down Expand Up @@ -118,7 +118,7 @@ global.XMLHttpRequest = require('w3c-xmlhttprequest').XMLHttpRequest;

===== Web Notifications API

テスト出来るようにすることが目的であるため、機能まで持ってくる必要性はなかった。
テストできるようにすることが目的であるため、機能まで持ってくる必要性はなかった。
そのため、Web Notifications APIではNoticationのモックオブジェクトを作成し、テストを行った。

- https://github.com/azu/promises-book/blob/master/Ch4_AdvancedPromises/test/mock/mock-notification.js[mock-notification.js]
Expand All @@ -143,7 +143,7 @@ Asciidocでは `<<id>>` という記法で内部リンクを貼ることがで
インラインコードは直接書くため実行して確認せず間違ったコードを書いてしまいがちだった。

そのため、Asciidocのファイルをパースして、インラインコードを抽出し、
そのコードが http://esprima.org/[Esprima]といったJavaScriptパーサでパース出来るかを検証できるようにした
そのコードが http://esprima.org/[Esprima]といったJavaScriptパーサでパースできるかを検証できるようにした

これによりJavaScriptの文法として間違っているものはパースエラーとなるため、
インラインに書いたコードのミスを検出するのに役立った。
Expand All @@ -169,7 +169,7 @@ masterへマージされたものは、Travis CIで自動的にビルドして `

pull-requestsのコミットに対しては、そのコミットごとに `preview-html` ブランチに生成済みのHTMLがpushされる。

pushされた一時プレビュー用のURLをGitterに対して通知して、pull-request時のHTMLがプレビュー出来るようになっている
pushされた一時プレビュー用のURLをGitterに対して通知して、pull-request時のHTMLがプレビューできるようになっている

image::img/preview-html.png[preview-html.png]

Expand All @@ -179,7 +179,7 @@ image::img/preview-html.png[preview-html.png]

- https://github.com/azu/visualize-promises-book[azu/visualize-promises-book]

セクション毎にテーマを分けてる事が多いが、それを俯瞰的にどうやってみるかを模索するために、
セクション毎にテーマを分けてることが多いが、それを俯瞰的にどうやってみるかを模索するために、
セクション同士の依存関係を可視化するものを作成した。

=== Lint
Expand Down
4 changes: 2 additions & 2 deletions Appendix-Reference/readme.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ promise.then(function (value) {
});
----

`promise.then(undefined, onRejected)` と同等の意味を持つシンタックスシュガー
`promise.then(undefined, onRejected)` と同等の意味をもつシンタックスシュガー

[[Promise.resolve]]
== Promise.resolve
Expand Down Expand Up @@ -85,7 +85,7 @@ function asyncTask(name){
promiseオブジェクトを受け取った場合::
受け取ったpromiseオブジェクトをそのまま返す
thenableなオブジェクトを受け取った場合::
`then` を持つオブジェクトを新たなpromiseオブジェクトにして返す
`then` をもつオブジェクトを新たなpromiseオブジェクトにして返す
その他の値(オブジェクトやnull等も含む)を受け取った場合::
その値でresolveされる新たなpromiseオブジェクトを作り返す

Expand Down
22 changes: 11 additions & 11 deletions Ch0_Introduction/readme.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
この書籍はJavaScript標準仕様の<<es6-promises,ECMAScript 6 Promises>>という仕様を中心にし、
JavaScriptにおけるPromiseについて学ぶことを目的とした書籍です。

この書籍を読むことで学べる事として次の3つを目標としています
この書籍を読むことで学べることとして次の3つを目標としています

- Promiseについて学び、パターンやテストを扱えるようになる事
- Promiseの向き不向きについて学び、何でもPromiseで解決するべきではないと知る事
- ES6 Promisesを元に基本をよく学び、より発展した形を自分で形成できるようになる事
- Promiseについて学び、パターンやテストを扱えるようになること
- Promiseの向き不向きについて学び、何でもPromiseで解決するべきではないと知ること
- ES6 Promisesを元に基本をよく学び、より発展した形を自分で形成できるようになること

この書籍では、先程も述べたように<<es6-promises,ES6 Promises>>、
つまりJavaScriptの標準仕様(ECMAScript)をベースとしたPromiseについて書かれています。
Expand All @@ -23,15 +23,15 @@ JavaScriptにおけるPromiseについて学ぶことを目的とした書籍で

== 本書を読むにあたって

この書籍ではJavaScriptの基本的な機能について既に学習していることを前提にしています
この書籍ではJavaScriptの基本的な機能についてすでに学習していることを前提にしています

- http://www.oreilly.co.jp/books/9784873113913/[JavaScript: The Good Parts]
- http://www.oreilly.co.jp/books/9784873114880/[JavaScriptパターン]
- http://www.oreilly.co.jp/books/9784873115733/[JavaScript 第6版]
- http://gihyo.jp/book/2011/978-4-7741-4813-7[パーフェクトJavaScript]
- http://www.shoeisha.co.jp/book/detail/9784798131115[Effective JavaScript]

のいずれかの書籍を読んだ事があれば十分読み解くことが出来る内容だと思います
のいずれかの書籍を読んだことがあれば十分読み解くことができる内容だと思います

または、JavaScriptでウェブアプリケーションを書いたことがある、
Node.js でコマンドラインアプリやサーバサイドを書いたことがあれば、
Expand All @@ -46,9 +46,9 @@ Node.js でコマンドラインアプリやサーバサイドを書いたこと
* Promiseに関する用語は<<promise-glossary,用語集>>を参照する。
** 大体、初回に出てきた際にはリンクを貼っています。
* インスタンスメソッドを instance#method という表記で示す。
** 例えば、`Promise#then` という表記は、Promiseのインスタンスオブジェクトの `then` というメソッドを示しています。
** たとえば、`Promise#then` という表記は、Promiseのインスタンスオブジェクトの `then` というメソッドを示しています。
* オブジェクトメソッドを object.method という表記で示す。
** これはJavaScriptの意味そのままで、`Promise.all` なら静的メソッドの事を示しています
** これはJavaScriptの意味そのままで、`Promise.all` なら静的メソッドのことを示しています

[NOTE]
この部分には文章についての補足が書かれています。
Expand All @@ -71,9 +71,9 @@ endif::[]
== サンプルコードの実行

このサイトでは、Promiseの<<promise-polyfill,Polyfillライブラリ>>を読み込んでいるため、
Promiseをサポートしていないブラウザでもサンプルコードを実行することが出来ます
Promiseをサポートしていないブラウザでもサンプルコードを実行することができます

また、以下のように実行出来るサンプルコードには実行ボタンが表示されています
また、以下のように実行できるサンプルコードには実行ボタンが表示されています

[role="executable"]
[source,javascript]
Expand Down Expand Up @@ -115,7 +115,7 @@ endif::[]

== 意見や疑問点

意見や疑問点がある場合はGitHubに直接Issueとして立てる事が出来ます
意見や疑問点がある場合はGitHubに直接Issueとして立てることができます

* https://github.com/azu/promises-book/issues?state=open[Issues · azu/promises-book]

Expand Down
Loading

0 comments on commit 6b29251

Please sign in to comment.