たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

2021-02-01から1ヶ月間の記事一覧

抽象化とYAGNI/KISS

その抽象化、本当に必要ですか/YAGNI? 無駄に凝集度を下げてシンプルさを失ってませんか/KISS? 抽象化と疎結合 抽象への依存は疎結合を促進する。 origin 一体: AB step1 分離: A---B step2 抽象化: A-inter & inter-B => A.bind(B) 一体化してるやつを切…

ReduxToolkit/createSliceの哲学: KISS原則を大事に

Redux ToolkitのcreateSliceはちょっとReduxぽくない処理をしてる。その背景にある哲学は何か。 特徴: ActionとReducerの凝集/密結合 Reduxは「ActionとReducerはN:M対応、互いに疎結合」という哲学1,2. しかしRTK.createSliceはCaseReducerからAction/Actio…

宣言的になるまでの流れ

全体の一部を変えたい => 操作メソッドをcallして一部を差し替えよう => 差し替え前の状態を把握している必要がある (新しいElemをぶら下げたい => 何にぶら下げる?) => 操作列しかないので状態を頭の中に再構成するしかない (脳内で [procedure].reduce((…

状態管理

何を状態とするか、どこに状態を置くか、誰が状態へ変更するか、いつ状態を読み取るか Viewにも変数、モデルにも変数、コントローラーにも変数、みたいな. 誰でもread/write可、変数を直接触れる、フォーマッターメソッド経由で触ることもある. 状態の分割等…

イベント駆動のパターン

イベント駆動プログラミングの実装において、イベントやイベントループはしばしばプラットフォームから提供される(c.f. ウェブブラウザ). 一方でイベントハンドラの設計は規定されず実装者に一任される。イベント駆動プログラミングにはしばしば頻出するハ…

少女は太陽になる

ファンとアイドルの在り方の1つ. 成長を見守る物語 太陽に憧れる少女を支え、共に走る。 やがて少女は手が届かぬほど大きく、大きく成長してゆく。 かつて少女だった、燦然と輝く太陽を仰ぎ、私は微笑む。 どういうこと そういうこと。 成長が別れとイコール…

プログラミングにおける副作用

副作用(プログラミング)== 定められた範囲の外側に対して「値渡し」以外の作用を与えること. 関数の副作用: 関数外に対し、値を渡す以外の何かをすること. 副作用の問題点 副作用を意識して呼び出しをおこなわなければいけなくなる. 「この関数を呼び出し…

JavaScriptのNumber: 2進数表現の不思議

まとめ: Numberは適当に使うと痛い目にあうよ 変な振る舞い 入力した数値が勝手に変更される. console.log(1.01234567890123456789); // 1.0123456789012346 「ああ、有効数字(小数点の桁)の話?」と思いきや、もっと不思議な振る舞いをする. for (let i =…