ES2015の配列のパラメータハンドリングが便利だった
ES2015の分割代入やパラメータハンドリング、便利そうではあるんだけど、他人がそれを使ったコードを読むと一見なにをやっているのか分からなくて(単純に慣れていないだけな気もする)、これまでの惰性もあって多用するのを避けていた。
で、今日、コードを書いていて、多値を配列として扱ってPromiseを解決した場合に、次のPromiseでそれを受け取る時に便利なことに気づいた。こんなかんじ。
someFn().then(([alpha, beta]) => { // ... });
以前までは、results みたいなイマイチな名前の変数で受け、適切な名前の変数に再代入することを行っていた。
someFn().then((results) => { const alpha = results[0]; const beta = results[1]; // ... });
Vuex のドキュメントを翻訳した
Vuex は、Redux インスパイアの Vue.js の周辺ライブラリ。各言語の翻訳があるんですが ( http://vuex.vuejs.org/ )、日本語のドキュメントが v0.8 から更新されていなかったので、v1.0.0-rc.2 を対象に @ktsn さんとドキュメントを翻訳し直しました。読みづらいところや誤りがあるかもしれませんが、見つけたら教えてください。
Vuex について、今回の翻訳とドキュメントを読みながらサンプルアプリケーションを書いた程度の印象ですが、Redux の影響を受けつつも、Vue.js 本体の状態の変更を追跡する仕組みを活かして(逆に依存しているともいえますが)、より単純で扱いやすくなっているように見受けられます。作者の設計の意図がドキュメントに丁寧、かつ明確に書かれており、興味深く翻訳させていただきました。仮に Vuex を使わないとしても、中規模~大規模のアプリケーションを自身で構築する場合の設計の一つの例として参考になるはずです。
次は、正式版のリリースが近づいている Vue.js 2.0 か、Vuex 2.0 のドキュメントの翻訳に関わることができればと思います。
knex.js: NodeのSQL Query Builder
最近、趣味と仕事両方で使うNodeで動くちょっとしたウェブアプリを書いている。
おそらくRailsの方が素早くできそう、あるいは普段書かないPythonとかGoみたいな言語で書いてみたかったんだけど、仕事で同じ部署の人に使ったり、手を入れてもらうことを考えると、JSを書いてNodeで動かすのがよかろうと判断した。
で、SQL Query Builderが欲しくなって、色々探したら、インターフェイスがPromiseなのと(Streamもある)、開発が活発というところで knex.js というのがよさそうだった。ドキュメント( Knex.js - A SQL Query Builder for Javascript )がしっかり書かれているので、細かい使い方とかは書きません。
あと、Query Builderに加えて、おそらくRailsインスパイアのMigrations機能があって、これも必要になったら使うと良さそう。 knex.jsと同じ作者の関連プロジェクトに bookshelf.js というORマッパーライブラリがあるが、今つくっているものに対してやりすぎな気がするのでスルー。
Gitのローカルブランチを更新日時順に表示する
この間、GitHubのトレンドのリポジトリを適当に眺めたり、ソースをだらだら読んでいたら、これをみつけた。
Gitで最近更新があったブランチをおしゃれに表示してくれるやつ。ソースを読んだら、git for-each-ref っていうサブコマンドを使っていた。 こんなかんじで、更新日とブランチ名のペアの最新10件を表示できる。
git for-each-ref \ --sort=-committerdate \ --format="%(committerdate:short),%(refname:short)" \ "refs/heads" | head -n 10
と、書いてたんだけど、手元のpecoまわりの設定見たら同じようなことをやっていて、多分、昔調べたことあるな...と思った。
npm installのときのプログレスバーを非表示にする
表示が崩れたり(既に修正はされている npm@3のプログレスバーの表示崩れについて - Qiita)、非表示にすると早くなるというissueを見かけたので( https://github.com/npm/npm/issues/11283 )、非表示にするようにした。
プロジェクトレベルで設定をおこなう場合は、プロジェクトの直下の.npmrc
に、全体に適当する場合はホームディレクトリの.npmrc
にprogress=false
という行を追加すればよろしい。
話ずれるんですけど、Progress bar noticeably slows down npm install · Issue #11283 · npm/npm · GitHub のJavaScriptのプロファイリングのやりとり、面白そうですね。時間あるときにじっくり読んでみよう。
最近読んだ漫画
雑な感想を一言ずつ
- 作者: 平野耕太
- 出版社/メーカー: 少年画報社
- 発売日: 2016/06/06
- メディア: コミック
- この商品を含むブログ (26件) を見る
佳境に向かっている。後半、地形図を見た時に「なるほどねー」と思った歴史ファンは少なくないはず。
- 作者: 藤崎竜,田中芳樹
- 出版社/メーカー: 集英社
- 発売日: 2016/05/19
- メディア: コミック
- この商品を含むブログ (7件) を見る
ヤンとユリアン登場回。ヤンが原作の設定に忠実に「見る人が見ればハンサム」という描かれ方をしていてよかった。
- 作者: ウォルター・アイザックソン,ヤマザキマリ
- 出版社/メーカー: 講談社
- 発売日: 2016/08/12
- メディア: Kindle版
- この商品を含むブログを見る
ジョブズがアップルに復帰して、アップルが復活していこうとしている。読んでいて気持ちが高揚する巻。途中、ビル・ゲイツが出てきて、昔と今(インタビューに答えているとき)で言っていることが正反対なのが面白かった。
ダンジョン飯 3巻<ダンジョン飯> (ビームコミックス(ハルタ))
- 作者: 九井諒子
- 出版社/メーカー: KADOKAWA / エンターブレイン
- 発売日: 2016/08/12
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
1、2巻に引き続き面白かった。なんとなく、今後の展開が読めてしまったので、多分、この漫画は5巻で完結するのだろうな、という気持ち。
Visual Studio Codeの統合ターミナルのシェルをzshに変える
最近、Visual Studio Codeを試していて、今日、パネルをターミナルとして利用できる統合ターミナル機能を知った。ちょっとしたコマンド操作がしたいときにいちいちVisual Studio CodeとiTermを行ったり来たりしなくて便利。
で、これ、デフォルトのシェルがbashになっているんですが、普段、zshを使っているので変えたくなった。
設定で以下のように指定すればよろしい。プロパティ名から察することができるが、OS毎にプロパティ名が決められているので、注意。
{ "terminal.integrated.shell.osx": "/usr/local/bin/zsh" }