Week 27 - 2018
The weeknote for 7/2 - 7/8.
OSS
ry/deno
- リファクタ
- pull #330
c3js/c3
- pull #2401
- アークチャートの背景がなくなっているというバグの修正. 多分 D3 v4 対応時に入ったリグレッションと思われる. selection 周りの API が非破壊的になったせいで副作用を期待して動いていた部分が動かなくなったと思われる. v0.6.3 としてリリース.
Leko/hothouse
- Leko さんが hothouse という OSS を作られた. 自家製 greenkeeper のようなものぽい. 使ってみたい.
gn
- https://github.com/o-lim/generate-ninja
- deno が使っているビルドシステム. 独自 DSL (結構綺麗) で語彙がかなり多い. ninja ファイルが出力される.
- このスライドがわかりやすい.
ninja
- https://github.com/ninja-build/ninja
- gn で設定をビルドした結果は ninja として出力される. ninja は手でかく想定はされていない, とにかく速さに特化されたビルドシステム. 公式ドキュメントが非常に丁寧.
仕事
アンチパターン
- モーダルが必要なので, まず modal.js を作る. モーダルの機能が増えたので modal.js に機能をたす. ある種のモーダルだけ特殊な動きをする必要があるので, その機能を表すフラグを追加して, if 文で分岐して機能をたす. 同様のフラグ追加を無数に繰り返す. というプロセスを経た結果, 誰にも修正することが不可能な modal.js が生まれるというパターンが複数のプロジェクトで観測された (ように見えた). おそらく jquery で複雑なモーダルが出る UI を作っているほとんどのプロジェクトで起きている現象ではないかと思われる. 簡単にこの種のカタストロフを避ける方法があって, それはちょっと違う動きをするモーダルを全て別コンポーネントとみて, 異なるファイルをそれぞれ用意して, 別のものとして管理する方法で解決できる. 全然違うものを, 似たようなものの亜種と無理やり思い込もうとするところに失敗の原因がある.
- 非常に似た失敗で API リクエストの前処理/後処理/リクエスト自体をまとめるというアンチパターンがある. 似たようなコードのパターンが繰り返し出てくるので, それをまとめれば良いという判断をするのだろうけど, リクエストの仕方がちょっと違うパターンとか, 前処理/後処理がちょっと違うパターンなどが大量に発生して大体破綻する. 共通メソッド化するのであれば, リクエスト出す部分だけ (結果のハンドリングは含まない) とか、ある種の前処理だけとか後処理だけで共通化して, それらを組み合わせて使うという考え方をするべき. 前処理 + リエクスト + 後処理で共通化すると必ずフラグだらけになって破綻する.
イベント
数理ナイトスペシャル
- https://event.nnear.jp/events/468599
- 各種の数の定義 (公理) とか, 集合論を使って各種の数を構成できるという話. 自分が学生の頃読んだ本の「数」(足立恒雄)をそのままなぞるような内容だったため, 本質的に新情報は無かったけれど, 久しくペアノ公理に言及しているような人を見ていなかったので, 久しぶりに数学的な世界を覗けて, 非常に良い気分転換になった.