[JavaScript][Git][イベント]BPStudy#41に参加しました
ATNDなどでBPStudyの存在は知っていたのですが、今回初参加。
分散SCMを勉強しようと思って最近Gitを使いはじめたのですが、リアル周りに使っている人がいないので知識共有ができず……。他の人はどうやって使っているのかなーと思っているところに神速さんがGitの発表をすると聞いたので、自重せずに参加しました。
以下メモ。前半戦のjsも、聞けばわかるかなーとか思っていたら甘かった……jsは勉強不足でした。もう少し使えないと話にもついていけない……。
JavaScript @[http://twitter.com/monjudoh:title=monjudoh]さん
RequireJS実践編
- RequireJSって何?
- jsの依存性解決をしてくれるライブラリ
- モジュール内で他のモジュールを再帰的に読み込みを行いたい場合…define関数を使用して読み込んでいく
- require関数を使うと逆に読み込んでいく
- RequireJS読み込みの前にrequireなんたらという名前が付いているグローバル変数がある場合、設定ファイルとして使ってくれる
- モジュールjsのあるディレクトリが深い場合呼び出しがめんどい
- baseUrlを指定してjsがあるパスを基底のパスにすると楽になる
- パスの上書きもできる
- スタブモジュールと置き換える事もできる
- キャッシュされた古いJavaScriptを読みこまないようにもできる
- クエリパラメータにデプロイ日時を入れる
jQuery custom event 応用編
- custom eventって何?
- ブラウザがサポートしてないイベント[1]を定義する独自のイベント
- 普通のプログラムのような事もcustom eventでできる
- 関数呼び出し
- 引数付き呼び出し
- インスタンス変数へのアクセス
- クラス作成のような事
- mixin
- callback
- mixout
- 同名のn(≧0)個の関数呼び出し
疎結合なUIコンポーネントの作成について
- 複数画面で使えるAjaxformダイアログのコンポーネントを作りたい
- 例えば、Googleカレンダーのように日付セルをクリックしたらスケジュール登録ダイアログが出るように
- 仕様変更
- セルをクリックしたらアクティブ、アクティブをクリックしたらスケジュール登録ダイアログが出るように
- ダイアログを開く→custom eventにして「開く」と「ユーザアクションの検知」を別に
- 仕様変更
- スケジュール一覧画面を作る、画面に新規追加ボタンもあり、カレンダーのセルをクリックしたときと同じダイアログをだす
- ユーザアクション検知のモジュールをカレンダー画面とスケジュール表示画面に分ける
- callback処理も分ける
- 本体の再利用性も高いし、挿し込むパーツも機能が明確なので再利用性が高くなる
マスタリング非同期読み込み @[http://twitter.com/os0x:title=os0x]さん
最近非同期読み込みが流行っているらしい…
- Node.jsなどが有名
- JavaScriptは他のリソースの読み込みをブロックするので非同期で行いたい
- 新UIになったTwitterでも使われている
- けど、あまりはやくなってない?
- 本文が最後に表示されるから(先に読み込もうとしているけど表示に時間がかかっている)
ライブラリ
- LAB.js
- ロード処理をjsで実装。Twitterでも使われている
- ControlJS
- scriptタグのtypeをtext/javascript→text/cjsにしてあとでcjsとして評価する
- RequireJS
- document.createElement(‘script’)してinsertで使える
- が、依存がネストすると非同期にならない→先に読み込んでおく
gitの歴史改変について @[http://twitter.com/sinsoku_listy:title=sinsoku_listy]さん
分散SCMの利点について
- 各操作が早い
- 他リポジトリに影響を与えない
今回のGitコマンド
- git add -p
- 部分変更を記録するコミット
- git rebase -i
- 歴史を書き換えるコマンド
- コミットの変更、コミットメッセージの変更などができる
- 歴史を書き換えるコマンド
デモ
- pep8規約違反を起こしたコードを改変する
- bisect(テストの失敗したコミットを二分探索でさがす)で探して改変
- rebaseでコミットの修正
まとめ
- 詳しくは「入門Git」で!
- 他人が作ったコミット、他人に渡したコミットは改変してはいけない
- …が、実際はプロジェクトの方針によってまちまち
発表後
ATNDに登録していなかったのですが、無理を言って懇親会に参加させていただきました。懇親会の場で話題にあがった、先のない技術の維持をダラダラ続けているのは守りの姿勢、それならニートでいる方がよっぽど攻めている。自分が本当に突き詰めたいものをもって外に攻め出たほうがいい。という言葉がちょっと考えさせられました。本当にこのままでいいのだろうかという……。とりあえず少しずつ。Gitを使いこなす所から始めよう。
最後に
主催者の@haru860さん、発表者の@monjudohさん、@os0xさん、@sinsoku_listyさん、受付をしてくださった皆さん今回はありがとうございました!
[1] 普通はユーザがクリックするとか、ページが読み込み終わるとイベントが始まるけど、jQueryはtriggerHandlerメソッドで(ユーザに関係なく)始まる