Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

本書の目的 #103

Closed
azu opened this issue Jul 24, 2016 · 8 comments · Fixed by #714
Closed

本書の目的 #103

azu opened this issue Jul 24, 2016 · 8 comments · Fixed by #714

Comments

@azu
Copy link
Collaborator

azu commented Jul 24, 2016

この本の目的をはっきりさせるというIssue。

  • 本書がやること
  • 本書がやらないこと
  • 本書の目的
  • 本書の読者対象

などざっくりでもいいので書いてまとめて置きたい。
長期間書いてると書いてる時にブレが出てくるので、チートシート的に箇条書きしておきたい。

こういう文章はいるのか?とかそういう判断材料になる部分を箇条書きしていく感じで、どちらかというと読む人より書く人向けの基準を並べておく形でも良さそう。
(CONTRIBUTING.mdにあってもいい感じ)

過去のミーティングでもある程度、この辺の話は出てきていると思うのでそれをまとめて置く形。

将来的には "はじめに" あたりにこれを反映させる目的。

現状の目的は、以下に書かれている形

@azu
Copy link
Collaborator Author

azu commented Jul 24, 2016

開眼! JavaScriptの例

  • なぜ本書を書いたのか?
    • 自分のため
  • 誰が本書を読むべきか?
    • 言語理解を深めたい人
    • JavaScript ベテラン
    • not JavaScript初心者
  • なぜ JavaScript 1.5、ECMA-262 Edition 3 なのか?
    • 現時点でどのブラウザも実装してるバージョンだから
  • より少ない言葉、より多いコード
    • "本文はコードの補助と位置づけて、サンプルコードをよく読んでください。サンプルコードは千の言葉よりも価値があると信じています"
    • "良いリファレンスへのアクセスさえあればどのようなコードでも書けるレベルの技術を身につけてください"
  • なぜ Date()、Error()、RegExp() を 本書に含めなかったのか?
    • "本書は JavaScript のリファレンスガイドではありません。そ れよりも、JavaScript 言語を理解するため、オブジェクトを理解することを中心に構成しています"
  • サンプルコードについて
    • jsFiddle + firebug-lite-dev
    • windowと明示してるものはブラウザ以外では動かないかも

こういう感じの簡単にまとめておきたい。
主に"本書がやらないこと"というのをはっきりさせておくとよさそう。

@azu
Copy link
Collaborator Author

azu commented Jul 24, 2016

自分のイメージ(後で分別する)
やることがイマイチはっきりしてないのかなと思った。

  • 本書がやらないこと
    • 文法をまとめるのが目的ではない
    • DOMについて学ぶのは目的ではない
    • Node.jsの使い方をマスターするのが目的ではない
    • JavaScriptのリファレンスを目指すものではない(MDNを参照すればよい)
    • JavaScriptのライブラリを書くのが目的ではない
    • JavaScriptのライブラリの使い方を学ぶのが目的ではない
    • 何かを作ろうというゴールではない
    • これを読んだから何か書けるというゴールがあるワケではない
  • 本書の目的
    • 実際にどのようなケースで使われてるのかを知ること
    • 文法とともにそれが実際どう使われるのかのイメージを掴めるようにする
    • 必要なものを必要なだけ学びJavaScriptを読み書きできるようになることが目的
    • 過去にGood Partsと呼ばれていたものが良くないものとなっていることがあり、変化があるJavaScriptに対応できるようになるのが目的
  • 本書の読者対象
    • JavaScript以外の言語をやったことがある人
    • JavaScriptを少し触ったことがある人
    • 完全なプログラミング初心者は対象ではない
    • 古いJavaScriptをしってるいるが、今のJavaScriptはよくわからない人も対象
  • その他
    • JavaScriptの変化に対して対応できる基礎をつけていくの目的
      • JavaScript/ECMAScriptは歴史の積み重ねできるできている
      • JavaScriptの歴史は長い
      • その中でJavaScriptも色々変化している
      • ES2015で言語としての基盤が大きく改善した
      • classのような書き方が色々あったがclassそのものが入った
      • JavaScriptはまだまだ未完成な言語
      • ES2015はこれから発展するための土台を決めたにすぎない
      • これからも需要や目的に合わせて変化していことが予想できる
    • JavaScriptという言語
      • JavaScriptはprototype言語
      • selfを参考
      • ES2015より前はclassがなかったためfunctionalな文化も同時に存在している
      • 世界一使われているプログラミング言語
      • 色んな言語のパラダイムが混ざったり、流行ったりする
      • 単純に利用者が多いため
      • 後方互換性に対してはかなり慎重
      • 標準ライブラリがあるわけではない
      • 基本文法で学んだことが使えなくなることは殆どない
      • 実行環境が多種多様で
      • 一つの企業がコントロールしているわけではない
      • 標準をとても大事にするのは過去の失敗があるから
      • 独断先行が仕様にのこった歴史がある
      • 独断先行はフラグ管理
    • これを読んだから、コードを読めるはありえる
    • 調べ方を知ること
      • この機能がなぜ使われるのかを知ること
      • この機能がなぜ使われないのかを知ること
      • 機能がなんなのかを確かめる方法を知ること
      • 学び方を学べるようにしたい
      • JavaScriptで書かれたものを見た時に、これどっかで見たことあるを身につける

@azu
Copy link
Collaborator Author

azu commented Jul 26, 2016

基本文法を書いててEffective JavaScriptが結構近い事を言ってるんだなという感覚がでてきた。
仕様レベルのことが砕いて解説されてて、さすがDave Hermanという感じになった。
JavaScriptのレベル別書籍のまとめでも書いてたけど、Effective JavaScriptはさすがにJavaScript初心者が読むのは難しいので、この辺をJavaScript初心者でも拾えるようになるといいけど。

後、序文のBrendan Eichが書いていることと同じ事を思ってるので、大分近い印象がある。

JavaScriptは、癖を許さないとか制限がきついなどとは、まるで反対の立場だ、
だから効果的なプログラムを目指すJavaScript開発者は、ほかの大部分のプログラミング言語よりもずっと、より良いスタイル、適切な使い方、ベストプラクティスを学び、追求する必要がある。
何が効果的かを考えるとき、僕は極度な逆戻りをさけること、つまり硬直した、独断的なスタイルガイドを避ける事が一番だと信じている
-- Brendan Eich
https://books.google.co.jp/books?id=yg0fBAAAQBAJ&lpg=PR4&dq=Effective%20JavaScript%20JavaScript%E3%81%AF%E3%80%81%E7%99%96%E3%82%92%E8%A8%B1%E3%81%95%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8B%E5%88%B6%E9%99%90%E3%81%8C%E3%81%8D%E3%81%A4%E3%81%84%E3%81%AA%E3%81%A9%E3%81%A8%E3%81%AF&hl=ja&pg=PR4#v=onepage&q=Effective%20JavaScript%20JavaScript%E3%81%AF%E3%80%81%E7%99%96%E3%82%92%E8%A8%B1%E3%81%95%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8B%E5%88%B6%E9%99%90%E3%81%8C%E3%81%8D%E3%81%A4%E3%81%84%E3%81%AA%E3%81%A9%E3%81%A8%E3%81%AF&f=false

@azu
Copy link
Collaborator Author

azu commented Jul 29, 2016

ライブラリの中でしか使わないような構文や機能について学ぶのは目的ではない。

@azu
Copy link
Collaborator Author

azu commented Jul 30, 2016

@azu azu changed the title はじめに/本書の目的 本書の目的 Jul 30, 2016
@azu
Copy link
Collaborator Author

azu commented Sep 3, 2016

この書籍における「良い」と「悪い」の定義が必要だなと思った。
既に使わなくていいイディオム/文法 #108 とも関係しそう

  • 「良い」の定義
  • 「悪い」の定義

「〜したほうがよいでしょう」的な文章があった時に、
それはどういう意味でのよいなのかを定義しておいたほうが、
書く人 読む人 にとって良さそう。

ステークホルダーとユーザーに対して、何が「良い」のかを定義していないとき、私たちは言葉を有利に使えていません。何が良いことかを明確に理解していないと、どこからともなく悪い事態がやってくるかもしれません。
via 良さは見る人の目の中にある - 今日からはじめる情報設計 P40

@azu
Copy link
Collaborator Author

azu commented Oct 2, 2016

そもそも、ここにあるJavaの入門書を読むと何が作れるようになるんですか?
-- ASCII.jp:Java入門書、ベストな選び方の、その先へ|最強のJava入門書はどれか?(2016年秋)

この辺は何かが作れるわけじゃないというのは同じ感じ。
やらないことで同じゴールは書いてある

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant