前回の記事からだいぶ時間が経ってしまいました。実は6月中は、幕の内を使用したある案件でとても忙しい状況だったのですが、この案件の成果によって、幕の内の幅をよりいっそう広げることができそうです。これについてはまた次回書きたいと思います。
前振り
弊社も4月から新しいメンバーを何名か迎え入れました。一部のメンバーのみでひっそりと行われた第1回でしたが、新社員も含めて声をかける範囲をちょっと広げてみたところ、今回は参加者13人になりました。
勉強会の内容
JavaScriptって何?
- Webブラウザ上で動くプログラミング言語
- HTMLやCSSだけでは実現できない表現や動きをWebページに与えられる。
生い立ち
- 90年代に起きたInternet ExplorerとNetscape Navigatorの猛烈なシェア争いの中で生れた。
- 1996年3月 Netscape 2の目玉機能としてJavaScript1.0がリリース
- 1996年8月 負けじとIE 3.0でJScript1.0がリリース
- そもそもJavaScriptは、他ブラウザとの差別化のために作られた機能なので、JavaScriptとJScriptは互換性はとても低かった。
- NetscapeとMSの協定で、JavaScriptとJScriptの共通部分を元にしたECMAScript言語仕様が作られた。
- 1998年6月 ECMAScript v1言語仕様が策定
- 非互換な部分は下位互換性を保つために今も残ってる。
他のWeb技術との比較
- JavaApplet, Flash
- ブラウザにプラグインをインストールする必要がある
- JavaScriptはブラウザ組込み。
- HTML, CSS
- HTMLやCSSは「何をどう表示するか」を指定する
- JavaScriptは「何がどうなったらどうする」という流れを指示する
良いところ
- HTMLやCSSとの親和性が高い
- ハードルが低く、簡単に動かせる
悪いところ
- IEとNetscapeで非互換な部分がある
- パフォーマンスがユーザの環境に依存する
- 適当に書いても動いちゃう
使い方
CSSと同じ感覚でページに組込める
外部ファイル読み込み
html
<script type="text/javascript" src="hoge.js"></script>hoge.js
alert('hello');
インライン:
<script type= "text/javascript">alert('hello');</script>属性値に埋め込み:
<div onclick="alert('hello')">Click Me!</div>URL記述:
<a href="javascript:alert('hello')">Click Me! </a>
なんで最近流行ってるの?
- ほとんどの一般的なブラウザでJavaScriptが動くようになった
- 互換性が高くなった
- 非互換性部分を吸収するJavaScriptライブラリが出てきた
- クライアントPCの性能向上でJavaScriptでもパフォーマンスが出るようになった
- Google Mapとかに触発されてAjaxが一人歩きしてる
- Webアプリケーションが高機能化してきた
- ユーザのUIに対する要求が高くなってきた
どう学ぶか
- HTML 4.01仕様 … 773KB
- CSS2 仕様 … 608KB
- ECMAScript v3 仕様 … 421KB
- DOM Level 1 仕様 … 325KB
- DOM Level 2 仕様 … 223KB
- 合計 … 969KB
JavaScriptでできる事の全体を把握した上で、仕様に従った正しい書き方で書く。
Keep/Problem/Try
- Keep
- この勉強会
- 新しい技術の伝達
- デモのように例を提示して具体的にこんな事ができますと説明するのはとてもわかりやすくて良い(同意見7人)
- 質問をどんどん受けつけてくれる所
- 資料がわかりやすかったです
- Problem
- スライドの印刷物など資料を事前に配布してほしい
- 文字を大きくしてほしい
- 参加する人数が増えたこと
- 話の内容以前に言葉の意味がわからないものが多かった
- もう少し参加する人達のレベルを合わせた方が良い
- もう少し少人数制でやった方が良いのかもしれません
- レベルに格差があるので質問しづらい
- Try
- 説明に仕様されたコード、サンプル、URIなどの提供
- 濃い人と普通の人を分けた方がよいのでは…?
- 具体例を提示するのをもう少し増やす
- 面白いライブラリを使った例を出して欲しい
- アジャイルな会議(話を簡潔にしたり)
- ソースコードを見ながら、この部分の記述でこういう動きをする…等の、実際に記述する際に役立つ情報
- 人数も少ないので途中で意見を求めたりしたり
- 実務上の注意点なども含めるといいのでは
勉強会で取り扱って欲しいネタ
- JavaScript
- プログラム内容
- DOM
- ウェブサイトで使える(流行ってる?)JavaScript&ソースコード
- 言語
- Perl
- Python
- XML, XHTML
- 正規表現
- コンパイラ
- Web表示
- アクセシビリティ
- 現在の旬のウェブサイト
- レイアウト
- Web開発
- Ajaxのもっとつっこんだネタ
- Webセキュリティー
- WebのAPI
- Flash
- HTTP通信の基礎について
- ツール系
- 参考にできるサイトetcの紹介
次回は上記の中から選んで実施したいと思います。