miyohideの日記

技術的なメモなどを記しています

2019年7月18日(木)

Babel 7.5について調べたこと

あまり勉強ができなかった。前回の続き。

JavaScriptclass構文など新しい文法を使いたいが古いブラウザ(例えばIEなど)に対応する必要がある場合、ソースコードを変換する仕組みを導入することで対応できるみたい。その変換を「トランスパイル」といい、トランスパイルするツールの一つがBabel

ココらへんは「JavaScriptコードレシピ集」のサポートページに書かれているので、合わせて読むとよいかと。

JavaScript コードレシピ集

JavaScript コードレシピ集

で、サポートページを読んでいくと出てきたpolyfillというもの。Babelは文法の変換のみで、機能(新しく定義されたメソッドやオブジェクト)の変換までには対応していない。それを埋めるのがpolyfill。

更に調べていくと、polyfillもターゲットブラウザによって必要な場合は何もせずにネイティブな実装を使い、必要な場合のみ変換することができるとのこと。それを実現するのが@babel/preset-env

というわけで、Babelインストール時は

npm install --save-dev @babel/core @babel/cli @babel/preset-env

という感じで@babel/preset-envもインストールしておくと良さそう。

その後、設定ファイルである.babelrcにて@babel/preset-envを使うことを宣言。

{
  "presets": ["@babel/preset-env"]
}

2019年7月11日(木)

黙々とJavaScriptテスト

Jestを使ってみる

簡単なものから始めようということで、とりあえずJestを使ってテストを書いてみる。

「Getting Started」という入門編的なページがあるので、それを参考に。

jestjs.io

npm initpackage.jsonを作り、後は示されたソースを書くのみ。書いてyarn testを実行すると次のような画面になって成功。

f:id:miyohide:20190711230349p:plain

最近はカラフルに画面が表示されて大変わかりやすい。

次はBabelかな。モダンなJavaScriptの構文が使えるらしい。IE対応だと必須っぽい。

2019年7月6日(土)

JavaScriptのテスト

今週は社外の研修にてJavaScriptのテストについて真面目に学んだ。高々1日の研修で身につくとは思っていないので、これは訓練だと思い、自分でもやってみることに。

研修ではReactとJasmineという環境。JavaScript、めっちゃ色々できることを実感。

jasmine.github.io

今のトレンドはjestらしい。

jestjs.io

色々と目移りするけれども、とりあえずはやり遂げよう。

2019年6月29日(土)

ようやく梅雨らしくなってきた。雨は嫌だけど水不足はもっといや。

SQLアンチパターンもりもりDBを設計しよう!

SQLアンチパターンは度々見返しているんだけれども、実践するのはなかなか難しい。特に削除フラグとか。

SQLアンチパターン

SQLアンチパターン

そんな中、具体例を見せてER図を示されている素敵なエントリ。

qiita.com

ナイーブツリー対策が自分では思い浮かばなかった。もっと勉強しよう。

ちなみに勉強のために、「失敗から学ぶRDBの正しい歩き方」を買った。

失敗から学ぶRDBの正しい歩き方 (Software Design plus)

失敗から学ぶRDBの正しい歩き方 (Software Design plus)

2019年6月22日(土)

『できる逆引き Googleアナリティクス Web解析の現場で使える実践ワザ』全文公開

わーい。『できる逆引き Googleアナリティクス』が全文公開だそうです。

dekiru.net

たぶん、できることはたくさんあるんだろうけれども単なるアクセスカウンターみたいな機能しか使っていないので、ちゃんと読んで活用したい。

2019年6月15日(土)

梅雨入りしてから妙に寒くなってきた。

コードレビューのベストプラクティス

古い記事だけど、なぜかはてぶに上がってきた記事。一度読んかもと思いつつ、再度読んでみた。

postd.cc

個人的には、限界境界試験が正しいかどうか、効率の点を気にします。

コードフォーマットなど些細なものに気を取られたくないので、コードフォーマッタは導入するし、静的解析ツールをプロジェクトの初めの時点で導入します。

2019年6月8日(土)

Azure Pipelines

ちょっと試してみているAzure Pipelines

Rubyの例がドキュメントとして書かれているので、これをベースにやってみている。

で、Ruby 2.6系を指定したら「Version spec >= 2.6 for architecture %s did not match any version in Agent.ToolsDirectory.」と出てうまく動かない。

f:id:miyohide:20190608151012p:plain

早々にRubyで試すのは諦めて、Docker image化したRailsアプリをテストするようにしている。Dockerの例もドキュメント化されている。はてさてどうなることやら。