Week 8 - 2019
The weeknote for 2/18 - 2/24.
OSS
deno
🦕 Deno は新しい JavaScript 処理系.
- コントリビューション
- https://github.com/denoland/deno/pull/1788
- 以前 typescript 用の V8 isolate を本体と別にした影響で typescript のバージョン番号が本体で取れなくなっていた問題を修正. rollup.config.js 内でバージョン番号をとって, rollup-plugin-replace で入れるというテクニックを使用. rollup-plugin-replace は react が
__DEV__
という変数を true / false に置き換える用途で使っているのを見て知っていたのが役に立った.
- 以前 typescript 用の V8 isolate を本体と別にした影響で typescript のバージョン番号が本体で取れなくなっていた問題を修正. rollup.config.js 内でバージョン番号をとって, rollup-plugin-replace で入れるというテクニックを使用. rollup-plugin-replace は react が
- https://github.com/denoland/deno/pull/1804
//js/console.ts
の中のany
をunknown
(等)で置き換えるという対応.any
は何をやっても良い型で, これを使うと型チェックをしていないのと同じになる.unknown
は何をやってもダメな型で, きちんと typeof / instanceof を使って, 何型か調べてから扱わないといけなくなる.any
をunknown
にすることで, 何か分からないものは型チェックしてからしか使えないという状態になるため, 型に関するバグが出にくい状態にすることが出来る.- console.ts は一番多く any を持っていたので, とりあえずこれを潰してみようと思って着手した. やってみると, console.table を実装するためのメソッドが本当に any だらけな上に, 単純に any -> unknown というだけではなく, any -> unknown[] だったり, any -> string[] が正解になるような箇所がいくつかあって, 元の実装者が何をやりたかったのかを色々推しはかる必要があったため, 結構大変だった.
- https://github.com/denoland/deno/pull/1813
- window object を取得するのに
globalEval('this')
という怪しげな表現を使っていたのをやめて, 普通に window object を import して使えるようにする変更.
- window object を取得するのに
- https://github.com/denoland/deno/pull/1788
c3js/c3
- https://github.com/kt3k/c3-code-reading
- c3 のコードリーディングを進めた.
//src/size.js
というところで問題 ( https://github.com/c3js/c3/issues/2567 ) が起きていて, その周辺を読み進めた. issue #2567 の原因自体は, svg とその 1枚上の div の高さが違う場合に, redraw 毎に svg のサイズが div と同じになってしまう (その結果 svg が微妙に大きくなってしまう) ということが問題になっている模様. これが起こる場合と起こらない場合があって, 状況の差分が不明で調査が難航中. 一旦 revert するという手もありそう.
- c3 のコードリーディングを進めた.
MyProject
kt3k/moneybit-app
💰 Moneybit はオープンソースのモバイル経理アプリ
- 科目設定画面周りの仕様の整理, ページ名の一部付け直し, マイルストーンの切り直しなどを行なった. 切り直しの結果 5末に Android 版がリリースされるスケジュールになった.
本
yuzutas0 さんの本
- yuzutas0 さんの本に, 以前作った🌱ボタンズの話を書く予定だったのだけど, 風邪とか, 仕事を変わったりとか各種都合で忙しくなってしまった為, キャンセルさせてもらった. ごめんなさい.