miyohideの日記

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

2020年4月16日(木)

今年1月から取り組んでいたオンライン英会話レッスン。3ヶ月間やって予定していたノルマをクリアしたのでざっくり感想をまとめてみます。

きっかけ

昨年末に会社から指定された英会話教室に行くなら補助金出すよという案内を受け、思い切って申し込み。物理的な教室に通うのは気が乗らなかったのと、安かったのでオンライン英会話教室であるBizmatesを受けることにしました。

www.bizmates.jp

内容

Bizmates では最初にレベル判定レッスンを受けます。判定の結果はLevel 1 のRank A。平たく言うと初歩の初歩。簡単な文法からおさらいしながら英会話に慣れていく感じです。

レッスンは1回25分。Skypeを使います。短いようで長い25分間。慣れるとあっという間に終わりますが、最初の頃はただひたすら長く感じました。

講師はたくさんいるので人を選ばなければ受講できないってことはありません。ですが、自分に合う講師を探すのが苦労しました。とりあえず毎日いろんな講師を選んでレッスンを受けてお気に入りの講師を何名か見つけるのに一ヶ月間ぐらいはかかった気がします。

成果

3ヶ月間、ほぼ毎日やってみました。最初は講師の言うことも分かったりわからなかったりで、返答も文章ではなく単語で答える感じでしたが、徐々に文章で答えられるようになりました。まあ、学べば学ぶほど「俺って全然英語ができない」って感じを強くしますが。

成果測定のためにTOEICを受けるよう言われているので、その結果を見て判断してみようかなと思います。リスニングの点数ぐらいは上がってほしいなあ。

2020年4月14日(火)

WEB+DB PRESS Vol.115に載っていたJavaScriptプログラムにテストを書いてみた

WEB+DB PRESS Vol.115には「特集3 小一時間でゲームを作る」という特集があり、JavaScriptで簡単なゲームを実装する方法が掲載されています。

このサンプルにはテストが書かれていなかったので、勉強ついでにテストを書くことにしました。

リポジトリは以下のもの。

github.com

カバレッジが95%を超えたのでまあ、大抵のテストを書くことはできたかなという感じ。

戦略は、

  • ひとつのJavaScriptファイルで作られていたのを細かい単位に分割
    • その分割した単位でテストを細々と書いていく
  • ある程度分割できたら、実際にブラウザで行う操作と同じ処理をテストで実装するようにする

と言った感じで王道中の王道です。

テスティングフレームワークはJestを使いました。

jestjs.io

ブラウザで行う操作と同じ処理をテストで実装する方法については、JestのDOM Manipulationの説明を参考に。

jestjs.io

document.body.innerHTML = '<div></div>'

JavaScriptを動かすHTMLページを作っておいて

main = require('../lib/main')

と書くとlib/main.jsに書かれた処理が実行されるので、後は

const wDown = new window.KeyboardEvent('keydown', { key: 'w' })
main.onKeyDown(wDown)

としてキーボードイベントをlib/main.jsに書いたonKeyDown関数に流しています。これでいいかどうかはよく分かりませんが、まあ動いているのでOKかなと。

2020年4月6日(月)

Codecovを試してみた

カバレッジを表示させるために、ちょっと検索して見つけたCodecovというサービス。とりあえず試してみるかとユーザ登録してみたんだけど、どうにもこうにもうまく動かない。

https://codecov.io

Codecovのトークン取得がどうしても出来ないので、今日はふて寝。

2020年4月5日(日)

Jestでカバレッジを取得する

Jestでカバレッジを取得するには--coverageオプションを指定してあげればよい。

jestjs.io

こんな感じで出力されます。

/usr/local/bin/node /usr/local/Cellar/yarn/1.22.1/libexec/bin/yarn.js test
yarn run v1.22.1
$ jest --coverage
 PASS  __tests__/board.test.js
 PASS  __tests__/game.test.js
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |   99.04 |    97.83 |     100 |   98.92 |                   
 board.js |   98.53 |    96.88 |     100 |   98.31 | 60                
 const.js |     100 |      100 |     100 |     100 |                   
 game.js  |     100 |      100 |     100 |     100 |                   
 vec2.js  |     100 |      100 |     100 |     100 |                   
----------|---------|----------|---------|---------|-------------------

Test Suites: 2 passed, 2 total
Tests:       25 passed, 25 total
Snapshots:   0 total
Time:        1.605s
Ran all test suites.
✨  Done in 2.70s.

Process finished with exit code 0

あとはこれをGitHub Actionsと組み合わせていい感じに表示されるようにしたいなあ。

2020年4月4日(土)

GitToolBox

Twitterでお勧めされていたので、インストールしてみた。JetBrains製IDE向け(IntelliJ IDEAとかRubyMineとか)のプラグインであるGitToolBox。

plugins.jetbrains.com

とりあえず各行にコミットメッセージが出るようになった。

f:id:miyohide:20200404181158p:plain

ゆっくり試していこう。

2020年4月3日(金)

在宅勤務、なんとなく辛い。

Easy Bash PS1 Generator

端末のシェルはなんとなくbashにしているのですが、時たまプロンプトのカスタマイズをやりたい病が出てきます。マニュアルを見ればできるというのは分かっているのですが、色のセッティングとかGitのステータスを出すとなるとちょっと面倒くさいのでbash itを使っています。ですが、細かいところが気に食わない...

で、今日またプロンプトのカスタマイズをやりたい病が発症したのでちょっと調べると簡単にBashのプロンプトのカスタマイズができるサイトを見つけました。それがEash Bash PS1 Generator。

ezprompt.net

何も生産性を上げないのは分かっているですが、また色々と凝って時間を浪費しちゃいそう。