@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Backbone.View の submit form イベントとイベントハンドラのテストを書くときの注意点

スタブ/モックに sinon.js を使っているとする。

  • "events" のテストをしたいときは View.prototype.handlerName を stub して stub のコールバック関数で (ev) -> ev.preventDefault() を呼ぶこと。でないとテストが走ったとき実際に form submit されてしまい、ブラウザ上でテストページを開くと延々フォーム送信し続けてしまう
  • イベントハンドラのテストをしたいときは↑の stub が有効なスコープ内だと当然 stub されててイベントハンドラは実際には呼ばれないので注意すること(よく忘れて悩むので)
  • あと view.$el.find('form').trigger('submit') なり .submit() なりでフォーム送信イベントを発火させる前に view.render() を呼んでおかないとフォームの HTML が DOM に存在せずフォーム送信されないので忘れずに

iOS Swift の勉強 (2)

iBooks で読める英語のマニュアルっぽい本(短いほう)を少し読んだがさっぱり意味がわからないので「絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】」という本の Kindle 版を買って読み進めている。

冒頭の「知識は必要になったときに学ばないと身につかない」という考え方には大いに同意する。「だから最初に座学でいろいろ教えても身につかないので、まずわかってなくていいからとにかく手を動かしてやってみて、それから詳しい説明で理屈を学ぶ」というアプローチはすごくいいと思う。なのに最初のほうの章で Map アプリを作ってみて以後は Swift の文法の説明がずっと続いていて話が違うじゃないかさっさと iPhone アプリを作らせろ、という気持ちになってきている。

あとこの本には全く落ち度がないのだが、配列の要素の数字を足し合わせるという演習問題をやってちょっと寄り道して reduce とかあるのかな?と思い試してみたら、 reduce あるのだが関数のシグネチャ?の読み方がわからなくて調べても combine: ってなんだよとかそういう部分の説明がないままに Xcode の補完でいきなり登場して、「意味不明だし検索でも正解にたどり着けない疑問」に遭遇してしまって、寄り道のせいで挫折しそう。

f:id:a666666:20150514025550p:plain

フォーカスがあたってハイライトされてる initial: U の部分はどうやら initial: は実際のコードを書く際には不要で 0 とか数字のみで ok なのに、その後ろの combine: は無いとダメっぽいのは何故??とか(しかもぐぐってでてくるブログとか Qiita とかの記事では combine: 無しのサンプルコードのほうが多いのだが combine: の有無がどう違うのかも、どこにリファレンスドキュメントがあるのか探せず調べられない)、その後ろの薄くハイライトされている (U, T) -> U の部分は実際にはどういうコードで穴埋めするのが正解なのか(カッコや -> は必要なのか、とか)ぐぐってもこれだ!という例を探し当てられなくてストレスがたまる。

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

Be Kind そのためにできること

Be Kind

Digg Deeper より。いい話だった。同意できる。

Kind であろうとするために自分がこれまでのところ実践していることは、

  • 聞かれたことに丁寧に答える(口頭であれチャットであれ)
  • 面倒くさいレビューを避けずに取り組む(これはまだかなりムラがある)
  • 広く意見を求められている議論にはちゃんとレスする
  • 仕事や知識を独占しない(ひとりで抱え込まない、適時誰かに意見を求める、など、取り組んでることを「見える化」する)
くらいで、特筆できることはなかった。

ではさらに何ができるだろうか。

積極的に絡んでいって「何か困ってることない?手伝えることある?」というのは、そういうロール(役割)でないのであれば、お節介すぎる気がする。本来の自分の仕事に時間を割くべきだし、時間が余ってるなら自由研究とかすればよい。

最近社内で技術トピックの Webinar が流行ってて、そういう形でノウハウをシェアするのはよさそう。ただ、英語でスピーチする大変さは去年思い知ったし、質疑応答はもっとこわい。質問の英語を聞き取れなかったり意味がわからなかったりすると詰む。

いまのところネガティブなフィードバックをもらわずにすんでいるので(ポジティブなフィードバックも少ないけど。そもそもそういうフィードバックのプロセスが公式に組み込まれていない)、実践していることを見直しながら継続しつつ、さらに上を目指すための何かを模索する、くらいでいいのかもしれない。

Duolingo継続30+日

毎日メールで「継続何日目です!今日も頑張りましょう(このトピックを勉強しなさい)」みたいなお知らせが届くが、それに貼ってある継続日数の画像のカウンタは30+で打ち止めのようだ。数字の積み上げ自体にはあまりこだわりがないので昨日は一回休みにして、今後はノルマ達成を意識しすぎずのんびりやっていこうと思う。

f:id:a666666:20150514224330p:image
f:id:a666666:20150514224337p:image
f:id:a666666:20150514224352p:image